JDBC数据库连接和事务的管理 一个JDBC基本操作封装类的编写
本文由发表于6年前 | Java基础 | 暂无评论 |  被围观 8,338 views+

Java使用JDBC建立数据库连接时,主要使用到了两个类:

java.sql.Connection;
java.sql.DriverManager;
创建一个连接的基本过程为:
//注册驱动名
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/databaseName";
String username = "root";
String password = "root";
//获取数据库连接
Connection conn =DriverManager.getConnection(url,username,password);
同时也需要做一些事务的管理:

事务的管理主要通过Connection类的一些方法来实现:

//开启事务
conn.setAutoCommit(false);
//提交事务
conn.commit();
//事务回滚
conn.rollback();

在使用完连接之后一定记得关闭资源:

Connection:
conn.close();
Statement:
ps.close;
ResultSet:
rs.close();
以下是一个JDBC基本操作的封装类:
public class DbUtil {

	/**
	 * 获取数据库连接
	 * @return
	 */
	public static Connection getConnection(){
		Connection conn = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			String url = "jdbc:mysql://localhost:3306/StudentManage";
			String username = "root";
			String password = "m123";
			conn =DriverManager.getConnection(url,username,password);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return conn;
	}

	/**
	 * 关闭数据库连接
	 */
	public static void close(Connection conn){
		if(conn != null){
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}			
		}
	}

	/**
	 * 关闭Statement
	 */
	public static void close(Statement ps){
		if(ps != null){
			try {
				ps.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

	/**
	 * 关闭ResultSet
	 */
	public static void close(ResultSet rs){
		if(rs != null){
			try {
				rs.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

	/**
	 * 开启事务
	 */
	public static void beginTransaction(Connection conn){
		try{
			if(conn != null){
				if(conn.getAutoCommit()){
					conn.setAutoCommit(false);
				}
			}
		} catch(SQLException e){
			e.printStackTrace();
		}
	}
	/**
	 * 提交事务
	 */
	public static void commitTransaction(Connection conn){
		try{
			if(conn != null){
				conn.commit();
			}
		} catch(SQLException e){
			e.printStackTrace();
		}
	}
	/**
	 * 事务回滚
	 */
	public static void rollbackTransaction(Connection conn){
		try{
			if(conn != null){
				conn.rollback();
			}
		}catch(SQLException e){
			e.printStackTrace();
		}
	}
	/**
	 * 重置事务开启状态
	 */
	public static void resetConnection(Connection conn){
		try{
			if(conn != null){
				if(conn.getAutoCommit()){
					conn.setAutoCommit(false);
				} else {
					conn.setAutoCommit(true);
				}
			}
		} catch(SQLException e){
			e.printStackTrace();
		}
	}
}
除了文章中有特别说明,均为IT宅原创文章,转载请以链接形式注明出处。
本文链接:http://www.itzhai.com/jdbc-database-connection-and-transaction-management-of-the-basic-operation-of-a-jdbc-wrapper-class-preparation.html
关键字: , , ,
arthinking Java技术交流群:280755654,入门群:428693174 more
分享到:
 
2011 10/13
文章评论
    没有评论
给我留言

有人回复时邮件通知我
Java基础的相关文章
随机文章 本月热门 热评
1 Java基础笔记 – Annotation注解的介绍和使用 自定义注解 2011/11/2
2 密码保护:侃侃可乐面包 2012/10/5
3 Unable to find ‘struts.multipart.saveDir’ Struts2上传文件错误的解决方法 2011/7/31
4 MappingException提示Association references unmapped class错误的解决方法 2011/5/26
5 ExtJS中Store注册beforeload监听事件重新加载grid的方法,用于条件查询 2011/8/6
6 Android中的常用控件之Spinner DatePicker AutoCompleteTextView 2011/7/13
友情推荐 更多
破博客 文官洗碗安天下,武将打怪定乾坤。多么美好的年代,思之令人泪落。
Mr.5's Life 白天是一名程序员,晚上就是个有抱负的探索者
行知-追寻技术之美 关注大数据,分布式系统
我爱编程 编程成长轨迹
Cynthia's Blog 学习笔记 知识总结 思考感悟
 
猜您喜欢
欢迎关注我的公众号 IT宅
关于IT宅 文章归档

IT宅中的文章除了标题注明转载或有特别说明的文章,均为IT宅的技术知识总结,学习笔记或随笔。如果喜欢,请使用文章下面提供的分享组件。转载请注明出处并加入文章的原链接。 感谢大家的支持。

联系我们:admin@itzhai.com

Theme by arthinking. Copyright © 2011-2015 IT宅.com 保留所有权利.