package com.zw.spring;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import javax.sql.DataSource;
import com.zw.spring.dao.BookAddInterface;
public class BookAddImpl implements BookAddInterface {
private DataSource dataSource;
public Connection conn;
private Book book;
public Book getBook() {
return book;
}
public void setBook(Book book) {
this.book = book;
}
public DataSource getDataSource() {
return dataSource;
}
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}
public boolean addBook(Book book) {
// TODO Auto-generated method stub
System.out.println(book.getAuthor()+","+book.getBookname());
try {
conn=getDataSource().getConnection();
String sql="insert into dbo.book (bookname,price,author,press,pressdate) values (?,?,?,?,?)";
PreparedStatement ptmt=conn.prepareStatement(sql);
ptmt.setString(1,book.getBookname());
ptmt.setString(2, book.getPrice());
ptmt.setString(3, book.getAuthor());
ptmt.setString(4, book.getPress());
ptmt.setString(5,book.getPressdate());
boolean f=ptmt.execute();
if(f==false)
{
return true;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("失败了");
}
return false;
}
public boolean delete(String ids) {
// TODO Auto-generated method stub
try {
conn=getDataSource().getConnection();
System.out.println(ids);
String[] id=ids.split(",");
for(int i=1;i<id.length;i++)
{
String sql="delete from dbo.book where id="+id[i];
System.out.println(sql);
Statement stmt=conn.createStatement();
stmt.executeUpdate(sql);
}
return true;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
}
public ArrayList<Book> resultList(String bookname) {
// TODO Auto-generated method stub
ArrayList<Book> array=new ArrayList<Book>();
try {
conn=dataSource.getConnection();
String sql="select * from dbo.book where bookname like '%"+bookname+"%'";
java.sql.Statement stmt=conn.createStatement();
ResultSet result=stmt.executeQuery(sql);
while(result.next())
{
book=new Book();
book.setBookname(result.getString(1));
book.setPrice(result.getString(2));
book.setAuthor(result.getString(3));
book.setPress(result.getString(4));
book.setPressdate(result.getString(5));
book.setId(result.getInt(6));
array.add(book);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return array;
}
public ArrayList<Book> getAllBooks() {
// TODO Auto-generated method stub
ArrayList<Book> array=new ArrayList<Book>();
try {
conn=dataSource.getConnection();
String sql="select * from book";
java.sql.Statement stmt=conn.createStatement();
ResultSet result=stmt.executeQuery(sql);
while(result.next())
{
book=new Book();
book.setBookname(result.getString(1));
book.setPrice(result.getString(2));
book.setAuthor(result.getString(3));
book.setPress(result.getString(4));
book.setPressdate(result.getString(5));
book.setId(result.getInt(6));
array.add(book);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return array;
}
public boolean updateBook(Book book) {
// TODO Auto-generated method stub
try {
System.out.println(book.getId());
conn=dataSource.getConnection();
String sql="update book set bookname=?,price=?,author=?,press=?,pressdate=? where id=?";
PreparedStatement ptmt=conn.prepareStatement(sql);
ptmt.setString(1, book.getBookname());
ptmt.setString(2, book.getPrice());
ptmt.setString(3, book.getAuthor());
ptmt.setString(4, book.getPress());
ptmt.setString(5, book.getPressdate());
ptmt.setInt(6, book.getId());
int f=ptmt.executeUpdate();
System.out.println(f);
if(f==1)
{
return true;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
return false;
}
public Book getBook(int id) {
// TODO Auto-generated method stub
try {
conn=dataSource.getConnection();
Statement stmt=conn.createStatement();
String sql="select * from book where id="+id;
ResultSet result=stmt.executeQuery(sql);
while(result.next())
{
book.setBookname(result.getString(1));
book.setPrice(result.getString(2));
book.setAuthor(result.getString(3));
book.setPress(result.getString(4));
book.setPressdate(result.getString(5));
book.setId(result.getInt(6));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return book;
}
}
《Spring与Struts2整合构建图书管理系统》 在IT领域,Spring框架以其强大的依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)能力,以及丰富的模块支持,成为了Java企业级应用开发的首选。而Struts2作为经典的MVC(Model-View-Controller)框架,提供了良好的用户交互和业务逻辑处理机制。当这两个框架相结合,可以创建出高效、可维护性高的Web应用,例如我们的"图书管理系统"。 让我们深入理解Spring的核心概念。Spring框架的主要组成部分包括核心容器(Core Container)、数据访问/集成(Data Access/Integration)、Web、AOP和测试模块。其中,核心容器是Spring的基石,它包含Bean工厂(Bean Factory)和应用上下文(ApplicationContext),负责管理应用对象的生命周期和依赖关系。Spring JDBC模块则提供了数据库访问的抽象层,简化了数据库操作。 Struts2框架则是基于Action和Result的MVC设计模式,它通过拦截器(Interceptor)实现了业务逻辑和视图的解耦。它的核心组件包括Action类、配置文件(struts.xml)、拦截器栈以及结果映射。Struts2允许开发者使用OGNL(Object-Graph Navigation Language)表达式语言来实现数据绑定,提高了开发效率。 接下来,我们探讨如何将Spring与Struts2进行整合。整合的关键在于Spring的ApplicationContext能够作为全局的依赖注入容器,为Struts2的Action提供服务。这通常通过实现Spring的Web应用上下文监听器(ContextLoaderListener)并在web.xml中配置来实现。同时,我们需要在Struts2的配置文件中指定Spring的Action代理(Spring-Action-Proxy),这样,Struts2的Action实例将由Spring管理。 在图书管理系统中,我们可以定义一个Spring Bean来代表图书实体类,包含了如书名、作者、出版社等属性。然后,创建一个对应的Service接口和实现类,这个Service类可以注入到Struts2的Action中,用于处理用户的请求,如查询、添加、删除图书等操作。数据库操作则通过Spring JDBC模块来完成,可以编写 Dao(Data Access Object)层,使用JdbcTemplate或者NamedParameterJdbcTemplate进行SQL操作。 在实际开发中,我们还会涉及到异常处理、国际化、权限控制等方面。例如,Struts2的拦截器可以用来统一处理全局异常,提供友好的错误提示。对于多语言支持,可以通过配置资源文件实现。另外,可以利用Spring Security或Apache Shiro等安全框架来实现用户登录验证和权限控制。 "spring+struts2图书管理系统"是一个综合运用了Spring框架的DI和AOP,以及Struts2的MVC模式的项目。通过它们的集成,可以构建出高效且易于维护的Web应用。这个系统不仅涵盖了基本的图书管理功能,还涉及到了企业级应用开发中的常见技术,对学习和提升Java Web开发技能非常有帮助。


























































































































- 1

- #完美解决问题
- #运行顺畅
- #内容详尽
- #全网独家
- #注释完整
- Evi2013-09-27还行吧,初学
- xuezhimeng20102013-03-01不错的 初学者资料
- x5027139942013-11-26开始配置还好,问题是,配置好了后面还是有一堆问题
- 别怪我-太神经2017-10-30还没用不清楚
- GANLAN12342013-01-04挺好的 初学资料

- 粉丝: 20
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助



最新资源
- 智能交通与自动驾驶领域Prescan仿真的交通拥堵提醒与路径换道功能实现
- WebUI可视化:第一章:WebUI基础认知
- Comsol仿真技术解析石墨烯-金属强耦合拉比分裂现象及其应用
- flink-connector-oracle-cdc-3.0.0.jar
- 2×125MW+2×200MW大型火力发电厂继电保护设计:参数要求、短路电流计算与配置方案
- flink-cdc-common-3.0.0.jar
- 机器学习(深度学习):一个用于骨折分类的医学图像数据集
- 汽车内外饰模具设计规范详解:分型面、斜顶滑块及模架顶出系统的技术要点
- 深度强化学习在电力系统中的应用:多智能体自主电压控制框架的Python实现
- 电磁学中超表面实现线极化到圆极化转换的技术解析与应用
- 基于主从博弈的智能小区电动汽车动态定价与充放电优化策略
- 嵌入式开发中STM32F103步进电机S型加减速控制的实现与解析
- 基于CPLEX求解的柔性负荷综合能源低碳经济调度研究
- 操作系统实验3.zip
- 深度强化学习结合领域知识优化电力系统拓扑结构——基于Python平台的高效解决方案
- 能源领域中基于储能电站服务的冷热微网系统双层优化模型及其应用


