package one;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
//jdbc的直连
public class connectionPool {
private static final String URL = "jdbc:mysql://localhost:3306/test";
private static final String USER = "root";
private static final String PASSWORD = "root";
private static final String DRIVER = "com.mysql.jdbc.Driver";
public static Connection getConnection() {
try {
//加载驱动
Class.forName(DRIVER);
Connection connection =DriverManager.getConnection(URL,USER,PASSWORD);
System.out.println("程序加载成功...");
return connection;
} catch (Exception e) {
e.printStackTrace();
System.out.println("程序加载失败...");
return null;
}
}
public static void main(String[] args) {
save();
}
利用jdbc创建一个代码块,主要用来操作数据库
public static void save() {
String sql = "insert into user(id,username,password,age,sex,phone,address,email,intro,salary) values('3','王五','323456','20','女','15655849576','深圳','323@163.com','阳光','3000')";
Connection connection = null;
Statement stat = null;
try {
/**
* spring的事物:自动处理模式:第2、4
*/
//1.开启jdbc链接
connection = connectionPool.getConnection();
//2.这里是开启事物管理的一个操作,默认有两个参数:true 和 false ,默认为true(自动提交模式);false为手动提交模式
connection.setAutoCommit(false);
//3.执行代码片段 (业务代码)
stat = connection.createStatement();
stat.executeUpdate(sql);
//4.事物的执行 提交
connection.commit();//手动关闭(自动关闭是不能写此句)
} catch (SQLException e) {
//4.事物的回滚
try {
connection.rollback();//当前面代码报错是回到上一步
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
e.printStackTrace();
}finally {
try {
//5.关闭连接和业务应用
stat.close();
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void findAll() {
String sql = "select * from user";
//创建数据库的链接
Connection connection = null;
Statement stat = null;
ResultSet rs = null;
try {
connection = connectionPool.getConnection();
stat = connection.createStatement();
rs = stat.executeQuery(sql);
while(rs.next()) {
System.out.print(rs.getString("id"));
System.out.print(" ");
System.out.print(rs.getString("username"));
System.out.print(" ");
System.out.println(rs.getString("password"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
rs.close();
stat.close();
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
jdbc、spring的事物及事物的回滚
于 2021-10-28 23:14:58 首次发布
这篇博客展示了如何使用Java JDBC连接池连接到MySQL数据库,并进行数据的插入和查询操作。通过设置自动提交模式,实现了事务的管理,包括提交和回滚。此外,还演示了如何关闭数据库连接和Statement对象,确保资源的释放。
摘要由CSDN通过智能技术生成