zoukankan      html  css  js  c++  java
  • Jdbc 事务

    package com.j1;
    
    import java.sql.Connection;
    import java.sql.SQLException;
    
    import com.mysql.jdbc.PreparedStatement;
    
    
    public class JdbcTest1 {
    
    public void test1(){
    Connection conn=null;
    PreparedStatement smt=null;
    try {
    conn = JdbcUnit.getConnection();
    conn.setAutoCommit(false);//开启事物
    smt= (PreparedStatement) conn.prepareStatement("");
    smt.executeUpdate();
    conn.prepareStatement("");
    conn.commit();//提交事物
    } catch (Exception e) {
    try {
    conn.rollback();
    } catch (SQLException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
    }
    e.printStackTrace();
    }finally{
    //释放资源
    JdbcUnit.release(null, smt, conn);
    }
    
    }
    
    }
    
    //公用类
    
    package com.j1;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ResourceBundle;
    
    import org.apache.taglibs.standard.tag.common.fmt.BundleSupport;
    
     
    
    public class JdbcUnit {
    private static String clazzName=null;
    private static String url=null;
    private static String username=null;
    private static String password=null;
    
    //读取配置文件
    static{
    
    ResourceBundle bundle=ResourceBundle.getBundle("dbinfo");
    clazzName=bundle.getString("clazzName");
    url=bundle.getString("url");
    username=bundle.getString("username");
    password=bundle.getString("password");
    }
    public static Connection getConnection(){
    
    
    loadDriver();
    try {
    return DriverManager.getConnection(url, username, password);
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    throw new RuntimeException(e);
    }
    
    }
    private static void loadDriver() {
    try {
    Class.forName(clazzName);
    
    
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    
    
    }
    public static void release(ResultSet rs, Statement stmt, Connection conn){
    
    if(rs!=null){
    try {
    rs.close();
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    rs=null;
    }
    if(stmt!=null){
    try {
    stmt.close();
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    stmt=null;
    }
    if(conn!=null){
    try {
    conn.close();
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    conn=null;
    }
    
    }
    }
    
     
    
     
    
    /**
    
    事务为同一个Connnection对象
    try catch时尽量抓到最大Exception
    
    */
  • 相关阅读:
    有关ASP的过程及函数的定义方法及调用
    ASP留言板(在一页里实现所有功能)
    滚动DataGrid
    效果试验
    自己写的身份证号码15位升18位的函数
    [学习笔记]开始学directx了之一
    改写的一个自动生成图片验证码的类asp.net(vb)
    参加了腾讯通RTX客户交流会
    杨伟帆的个人简历
    全国省市县无刷新多级关联菜单
  • 原文地址:https://www.cnblogs.com/wangchuanfu/p/5561451.html
Copyright © 2011-2022 走看看