jdbc、spring的事物及事物的回滚

这篇博客展示了如何使用Java JDBC连接池连接到MySQL数据库,并进行数据的插入和查询操作。通过设置自动提交模式,实现了事务的管理,包括提交和回滚。此外,还演示了如何关闭数据库连接和Statement对象,确保资源的释放。
摘要由CSDN通过智能技术生成
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();
			}
			
		}
	}
	
	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值