本文出自:http://www.blogjava.net/spring-wang/archive/2009/03/09/258693.html
这是经过我的项目实验后的可用方法:是用来实现添加、删除、修改操作的共用方法。分为两个方法,一个是设置PreparedStatement ps;对象参数的方法。一个是执行泛型PreparedStatement ps;对象的下面来看一下吧:
/*
* Author:spring
* Date :09-03-06 20:28
* 给PreparedStatement对象设置参数的方法
*/
private PreparedStatement setPreparedStatement(PreparedStatement ps,
List pars) throws SQLException {
try {
// 1.获取数组的长度这样能提高一点性能
int x = pars.size();
// 2.循环设置ps中需要的参数
for (int i = 0; i < x; i++) {
ps.setObject(i + 1, pars.get(i));
System.out.println(pars.get(i));
}
// 3.添加到缓冲区中
ps.addBatch();
// 4.设置完参数的ps返回
return ps;
} finally {
}
}
/*
* 执行PreparedStatement泛型列表的方法
*/
privateboolean exceurePreparedStatement(List<PreparedStatement> pss)
throws SQLException {
int x = 0;
try {
// 1.为手动提交
this.conn.setAutoCommit(false);
// 2.执行所有的PreparedStatement对象
x = pss.size();
for (int i = 0; i < x; i++) {
pss.get(i).executeBatch();
}
// 3.没有错误的话的就提交事务
this.conn.commit();
System.out.println("执行executeBatch()");
// 4.如果提交成功那就返回成功true
returntrue;
} catch (Exception e) {
// 出现异常回滚事务
e.printStackTrace();
System.out.println("执行批量时error");
this.conn.rollback();
//个性化异常
thrownew MyException("page.error.1000","1000 数据执行的批量出错.");
//throw new SQLException();
} finally {
// 最后把手动提交改为自动提交
this.conn.setAutoCommit(true);
// 关闭不用的资源
for (int i = 0; i < x; i++) {
DBUtils.close(pss.get(i));
}
}
}
//下面来介绍一下它们的用法
要实现一个用户添加的功能,在添加的同时还要往log日志表中添加是谁操作的
这就要用到事务处理了
/*
*添加用户
*/
public Boolean add_Users() throws SQLException {
try {
// 1.要执行的sql语句
sql1 = new StringBuilder()
.append("insert into spring_users(U_ID,u_Name,u_Password,u_Email,u_State)")
.append(" values(SEQ_USERS.NEXTVAL,?,?,?,?)");
// 添加日志
sql2 = new StringBuilder()
.append("insert into SPRING_LOG(L_ID,L_NAME,U_ID,L_MESSAGE,L_DATE)")
.append(" values(SEQ_LOG.nextval,?,?,?,?)");
// 2.要设置的参数列表
pars1 = new ArrayList();
pars1.add(dto.get("u_Name")); // 用户名
pars1.add(dto.get("u_Password")); // 用户密码
pars1.add(dto.get("u_Email")); // 用户E-email
pars1.add(dto.get("u_Rating"));//权限与用户状态
// 获取当前操作员的u_id
String u_Id = (String) dto.get("u_Id");
pars2 = new ArrayList();
pars2.add("SPRING_USERS"); // 设置1 操作的表名
pars2.add(u_Id); // 设置2 操作人id
pars2.add("这是用户添加操作:用户名:" + this.dto.get("u_Name"));// 设置3
// 描述看看是不是添加操作
pars2.add(Tools.getSqlTimestamp()); // 设置4 操作时间
// 3.编译sql语句并设置参数
pss = new ArrayList<PreparedStatement>();
ps1 = this.conn.prepareStatement(sql1.toString());
ps2 = this.conn.prepareStatement(sql2.toString());
// 设置参数
pss.add(this.setPreparedStatement(ps1, pars1));
pss.add(this.setPreparedStatement(ps2, pars2));
// 4.调用执行sql语句的方法
returnthis.exceurePreparedStatement(pss);
} finally {
// 5.释放使用资源
DBUtils.close(ps1);
DBUtils.close(ps2);
}
}
这里的一些方法是我封装的像获取当前用户的u_id , String u_Id = (String) dto.get("u_Id");这是我用的构造传过来的dto所以我们不用管它;
分析一下用法:
1. 设置sql语句
2. 编译sql语句(用PreparedStatement)
3. 定义一个泛型PreparedStatement
4. 设置PreparedStatement的参数返回来添加到泛型里
5. 调用执行泛型中的PreparedStatement 对象
6. 关闭不需要的资源
7. 这上面是我开发时的源码大家可以直接拿去用
分享到:
相关推荐
两种实现JDBC添加、删除、修改操作的方法对比可以用来实现添加、删除、修改操作的共用方法。其中,设置PreparedStatement ps对象参数的方法可以提高性能,而执行泛型PreparedStatement ps对象的方法可以执行多个...
JAVA 使用 JDBC 进行 insert 操作添加信息到数据库 一、 JDBC 概述 JDBC(Java Database Connectivity)是一种 Java 应用程序用来与数据库进行交互的 API。它提供了一组标准的接口,允许 Java 应用程序与各种...
本文将详细介绍如何在Eclipse中添加JDBC链接,并解释每一步操作背后的原理。 #### 二、准备工作 在开始之前,请确保已经具备以下条件: 1. 已安装Eclipse IDE。 2. 准备好对应的JDBC驱动文件(例如:MySQL的`mysql...
在IT行业中,JDBC(Java Database Connectivity)是Java编程语言中用于与各种数据库进行交互的一组接口和类。它提供了一种标准的API,使得Java开发者可以方便地连接、查询和管理数据库。这篇名为“JDBC公共操作方法...
JDBC技术添加修改删除.mp4
批量更新的原理与批量插入类似,都是通过`PreparedStatement`的`addBatch()`方法将多个更新操作加入到一个批处理队列中,然后调用`executeBatch()`方法执行这些更新操作。这种方式可以显著减少网络往返次数,提高...
(2)(2) 在BookShopDao中添加一个purchase购书方法,其操作流程是获取书的单价->买书(更新库存)->更新账户余额,在BookShopDaoImp中实现该方法,并使用基于XML和Annotation的声明式事务管理来确保该购书过程能正常...
Spring JDBC还引入了SqlSessionTemplate,这是MyBatis与Spring集成中的一个重要组件,但在这个上下文中,它主要与MyBatis框架相关,而JdbcTemplate则更直接地与Spring JDBC框架集成。 在实际使用中,我们需要配置...
标题“优化JDBC方法攻略”和描述中提到的是关于JDBC(Java Database Connectivity)数据库操作的性能优化,适合初学者和教学使用。本文将详细介绍三个主要的JDBC性能优化技巧,并提供了一些通用的准则,以帮助开发者...
Java__JDBC技术添加修改删除.mp4
【标题】:JDBC实现数据库的基本操作:查找、插入、删除 在Java编程中,Java Database Connectivity (JDBC) 是一套用于与各种数据库交互的API。这个例子将深入讲解如何利用JDBC进行数据库的简单操作,包括查找、...
本文将详细介绍两种解决MySQL与JDBC中文问题的方法。 首先,我们需要理解MySQL和Java之间的编码问题。MySQL数据库支持多种字符集,如GBK、UTF-8等,而Java程序通常使用UTF-8作为默认编码。当Java通过JDBC连接MySQL...
jdbc中常见异常原因以及解决方法 jdbc中常见异常原因以及解决方法
- 另一种方法是在环境变量中添加`.jar`文件路径。 3. **加载JDBC驱动** - 使用`Class.forName()`方法加载MySQL的JDBC驱动程序。 - 成功加载后,会打印出成功消息;如果加载失败,则会捕获异常并打印错误信息。 ...
jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc 操作oracle blob数据jdbc ...
jdbc中操作数据库助手Sqlhelper
总之,通过在Maven项目中添加`sqljdbc4`依赖,我们可以方便地连接到SQL Server 2000 SP4及以下版本的数据库,实现数据的读写操作。正确配置`pom.xml`文件和遵循JDBC编程规范是关键。在实际开发中,还应注意版本兼容...
jdbc操作步骤jdbc操作步骤jdbc操作步骤jdbc操作步骤jdbc操作步骤jdbc操作步骤jdbc操作步骤