Connection的setAutoCommit()方法

setAutoCommit()将此连接的自动提交模式设置为给定状态。如果连接处于自动提交模式下,则它的所有 SQL语句将被执行并作为单个事务提交。否则,它的 SQL语句将聚集到事务中,直到调用 commit 方法或 rollback 方法为止。

默认情况下,新连接处于自动提交模式(即默认参数是true),所以如果不写这句就不需要写conn.commit()。但只要写了此方法就必须遇到commit 方法或 rollback方法sql语句才会提交出去。

当对数据库有多步操作并且希望这多步操作以一个事务提交就需调用此方法​


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DBConnectionManager.java //连接数据库用的 import java.sql.*; public class DBConnectionManager { private String driverName="com.microsoft.jdbc.sqlserver.SQLServerDriver"; private String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=demo"; private String user="sa"; private String password=""; public String getDriverName() { return driverName; } public void setDriverName(String driverName) { this.driverName = driverName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getUser() { return user; } public void setUser(String user) { this.user = user; } public Connection getConnection(){ try{ Class.forName(driverName); return DriverManager.getConnection(url, user, password); }catch(Exception e){ e.printStackTrace(); return null; } } } DBSQLManager.java //操作数据库用的 import java.sql.*; public class DBSQLManager { protected Connection con=null;//Connection对象 protected Statement stmt=null;//Statement对象 protected ResultSet rs=null;//记录结果集 protected String sql=""; //SQL语句 public DBSQLManager(){ try { DBConnectionManager dcm=new DBConnectionManager(); con=dcm.getConnection(); //con.setAutoCommit(false);//添加事物,既是否自动提交 stmt=con.createStatement(); } catch (SQLException e) { e.printStackTrace(); } } public Statement getStmt(){ return stmt; } public Connection getCon(){ return con; } public ResultSet getRs(){ return rs; } public void setSql(String sql){ this.sql=sql; } public String getSql(){ return sql; } //查找 public void execueQuery(){ try { rs=stmt.executeQuery(sql); } catch (SQLException e) { e.printStackTrace(); } } //更新 public void executeUpdate(){ try { stmt.executeUpdate(sql); } catch (SQLException e) { e.printStackTrace(); } } //关闭 public void close(){ if(rs!=null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } rs=null; } if(stmt!=null){ try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } stmt=null; } try { con.close(); } catch (SQLException e) { e.printStackTrace(); } con=null; } } SqlOperate.java //用来调用数据库操作语句 import java.sql.ResultSet; import java.sql.SQLException; public class SqlOperate { //插入,修改,删除 public void insOrModOrDel(String sql){ DBSQLManager dbsm=new DBSQLManager(); dbsm.getStmt(); dbsm.setSql(sql); dbsm.executeUpdate(); dbsm.close(); } //显示 public void display(String sql){ DBSQLManager dbsm=new DBSQLManager(); dbsm.getStmt(); dbsm.setSql(sql); dbsm.execueQuery(); ResultSet rs=dbsm.getRs(); try { while(rs!=null&&rs.next()){ System.out.print(rs.getObject(1)+"\t"); System.out.print(rs.getObject(2)+"\t"); System.out.print(rs.getObject(3)+"\t"); System.out.println(rs.getObject(4)); } dbsm.close(); } catch (SQLException e) { e.printStackTrace(); } } } SqlMain.java //数据库的测试主函数 public class SqlMain { public static void main(String[] args){ SqlOperate sqlOpt=new SqlOperate(); // sqlOpt.insOrModOrDel("insert into user1 values('qianhaifei',999999,'[email protected]')");//插入 // sqlOpt.insOrModOrDel("update user1 set username='weixiangyang' where id=4");//修改 // sqlOpt.insOrModOrDel("delete from user1 where username='weixy2000'");//删除 sqlOpt.display("select *from user1");//显示 } }
在Java中,Connection是一个接口,它表示与数据库建立连接的会话。通过Connection接口,我们可以执行SQL语句并处理结果。Connection接口提供了许多方法,例如createStatement()、prepareStatement()和prepareCall()等,这些方法用于创建Statement、PreparedStatement和CallableStatement对象,以便执行SQL语句。此外,Connection接口还提供了一些方法,例如commit()、rollback()和setAutoCommit()等,用于管理事务。在使用完Connection对象后,我们需要调用close()方法来关闭连接并释放资源。 需要注意的是,Connection接口是一个抽象接口,我们不能直接实例化它。相反,我们需要使用DriverManager类的getConnection()方法来获取Connection对象。getConnection()方法需要传递数据库的URL、用户名和密码等参数,以便建立连接。 以下是一个简单的示例,演示如何使用Connection接口连接到MySQL数据库: ``` import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class Main { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/mydatabase"; String user = "root"; String password = "mypassword"; try { Connection conn = DriverManager.getConnection(url, user, password); System.out.println("Connected to the database"); // Do something with the connection conn.close(); } catch (SQLException e) { System.out.println("Failed to connect to the database"); e.printStackTrace(); } } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值