`

如何用PreparedStatement来执行sql语句【通过事务】

阅读更多
关于如何用PreparedStatement来执行sql语句【通过事务】?其实非常简单
1、准备好一个Connection
2、准备好一个你需要保存的对象【举例:Customer客户对象】
下面就可以开始正式工作:

public void addCustomerByCommit(Connection conn , Customer customer)
{
   String sql = "inseret into customer(id , name , remark)values(?,?,?)";
   try
        {
            PreparedStatement ps = conn.prepareStatement(sql);
            int index = 1;
            ps.setInt(index++ , customer.getId())
            ps.setString(index++, customer.getName());
            ps.setString(index++, customer.getRemark());
            ps.executeUpdate();
        }
        catch (SQLException e)
        {
            //这里呢你可以做点自己想做的事情
            e.printStackTrace();
        }
}




这么一来呢,通过事务以及PreparedStatement来执行sql的方法就搞定了;


在Service层如果是要手动提交事务,那么在执行此方法前将从connection设置成手动提交,待此方法执行结束后将connection提交下,如下:
try
   {

       Connection  conn =   XXXXXXX[就是你获取connection的方法或者直接的值]
       conn.setAutoCommit(false);
       addCustomerByCommit(conn , customer);
       conn.commit();
   }
catch
(SQLException e)
   {
            conn.rollBack();
            //然后做点你想要做的事情
   }
 finally
   {
            //关闭链接
            CloseUtils.close(conn);
   }




分享到:
评论

相关推荐

    sqlserver各版本jdbc驱动.zip

    sqlserver各版本驱动 DriverManager:负责...Statement:用以执行SQL查询和更新(针对静态SQL语句和单次执行)。PreparedStatement:用以执行包含动态参数的SQL查询和更新(在服务器端编译,允许重复执行以提高效率)

    自定义JDBC框架-JDBCFrarmework源码

    int update(sql , params):是操作insert 、update、delete相关的SQL语句的方法,参数sql,是传入一个满足PreparedStatement结构的SQL语句,params是可变参数,用于传入SQL语句占位符中的占位符。 T querySelector...

    mssql-jdbc-8.4.0.jre8.jar

    jdk1.8可使用的jdbc驱动... ...Statement:用以执行SQL查询和更新(针对静态SQL语句和单次执行)。PreparedStatement:用以执行包含动态参数的SQL查询和更新(在服务器端编译,允许重复执行以提高效率)

    java开发中的一些常用小技巧

    一.用JDBC时的一些注意事项 ... b执行每一个新的sql语句前,上一次执行sql语句的Statement(或者PreparedStatemet)必须先close ; c、提交 connn.commit; d、如果发生异常,那么回滚 conn.rollback;

    mybatis笔记.zip

    使用、、、等元素来定义SQL语句。 使用${}和#{}来插入参数,其中${}会直接替换,#{}会被预编译防止SQL注入。 5. 参数映射: 参数映射使用#{}或${}来引用参数,#{}使用PreparedStatement,$${}直接替换。 6. 结果...

    JDBC笔记 JDBC笔记

    java.sql.PreparedStatement 继承Statement接口,表示预编译的SQL语句的对象,SQL语句被预编译并且存储在PreparedStatement对象中。然后可以使用此对象高效地多次执行该语句。 java.sql.CallableStatement 用来...

    每天十道面试题(五)——JDBC数据库编程部分

    文章目录1、PreparedStatement接口与Statement接口相比,有哪些优势?2、连接数据库分为那几步?3、在使用JDBC操作数据库时如何实现...PreparedStatement用来执行动态的SQL语句,即包含参数的SQL语句,而Statement用

    jdbc在DAO层实现事务

    自己写的一个java示例 该示例用jdbc与java事务来实现DAO层的各个DAO的各方法之间的事务关联 使上层可以保证各数据访问的原子性 该示例包含了一个方便调用的数据库访问工具类,该工具类实现了调用SQL语句,调用...

    jdbc基础和参考

    创建时就需要传递sql语句,执行的时候不需要传递sql语句 2.如果涉及到动态参数的传递,可以使用字符串拼接,也可以使用?占位的形式 给?号传值使用的是 pstmt.setType(index,value); index从1开始 3....

    使用jdbc在DAO层实现了各DAO之间共享事务的示例

    自己写的一个java示例 该示例用jdbc与java事务来实现...该示例包含了一个方便调用的数据库访问工具类,该工具类实现了调用SQL语句,调用PreparedStatement对象,并对可能产生的异常进行了处理,保证了各DAO子类调用的简便性

    2014_05_12 javabean类型的辅助类存储传输接收数据.

    //先写好sql语句 String sqlstr="delete from test_user where username=?"; //生成statement对象对(数据库进行操作)(数据库的事务处理) //Statement sta=connection.createStatement(); ...

    Java数据库技术详解 DOC简版

    第2章 SQL语句基础之DDL 2.1 DDL基础 2.2 DDL操作视图 2.3 本章小结 第3章 SQL语句基础之DML 3.1 SELECT语句基础 3.2 WHERE子句 3.3 ORDER BY子句 3.4 GROUP BY和HAVING子句 3.5 INSERT语句 3.6...

    Java数据库编程宝典2

    4.8 SQL语句 4.8.1 Statement对象 4.8.2 PreparedStatement语句 4.8.3 CallableStatement 4.9 事务 4.9.1 事务独立性等级 4.9.2 事务存储点 4.9.3 多线程 4.10 批更新 4.11 ResultSet 4.12 可滚动的...

    Java数据库编程宝典4

    4.8 SQL语句 4.8.1 Statement对象 4.8.2 PreparedStatement语句 4.8.3 CallableStatement 4.9 事务 4.9.1 事务独立性等级 4.9.2 事务存储点 4.9.3 多线程 4.10 批更新 4.11 ResultSet 4.12 可滚动的...

    Java数据库编程宝典1

    4.8 SQL语句 4.8.1 Statement对象 4.8.2 PreparedStatement语句 4.8.3 CallableStatement 4.9 事务 4.9.1 事务独立性等级 4.9.2 事务存储点 4.9.3 多线程 4.10 批更新 4.11 ResultSet 4.12 可滚动的...

    Java数据库编程宝典3

    4.8 SQL语句 4.8.1 Statement对象 4.8.2 PreparedStatement语句 4.8.3 CallableStatement 4.9 事务 4.9.1 事务独立性等级 4.9.2 事务存储点 4.9.3 多线程 4.10 批更新 4.11 ResultSet 4.12 可滚动的...

    java面试800题

    Q0034 给定了一些创建数据库试图的SQL语句问什么条件下才可以对试图执行修改,增加,删除操作 特别强调了WITH CHECK OPTION这个约束的含义,使用,产生的不同结果。参考Oracle 视图的基本知识,单个表上的视图,多...

    halo-dal:java 分布式数据库访问框架,可以结合任何使用PreparedStatement操作的框架。在java jdbc api层实现 分表分库 路由解析的 框架 可以单独或者与用hibernate ibatis spring-jdbc 等框架结合使用,屏蔽api层使用差异,能实现 jdbc 单数据库事务,目的是为了方便的进行分表分库程序的开发

    谢谢大家的关注#halo-dal使用说明#####使用场景:数据库分布式访问#####使用语言:java#####使用条件:支持PreparedStatement处理的任何jdbc框架,最好配合spring管理数据库连接池.#####sql语句必须使用小写字符#####jdk...

    一篇搞定JDBC【Mysql基础】

    演示只能使用Statement对象不能使用PreparedStatement的业务需求用户输入sql语句8.JDBC事务控制三段重要代码应用于数据库用户之间的转账9.悲观锁和乐观锁机制举栗子说明 1.JDBC Java Database Connectivity(java语言...

    JDBC 3.0数据库开发与设计

    1.4.1 java.sql包中的类和接口及其使用 1.4.2 javax.sql包中所含内容及其使用 1.5 JDBC驱动程序简介 1.5.1 JDBC-ODBC 桥和ODBC驱动程序 1.5.2 本地API部分Java驱动程序 1.5.3 JDBC网络纯Java驱动程序 1.5.4 ...

Global site tag (gtag.js) - Google Analytics