JDBC数据库连接和事务的管理 一个JDBC基本操作封装类的编写
本文由发表于7年前 | Java基础 | 暂无评论 |  被围观 5,883 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 指弹吉他 && 技术 more
分享到:
 
2011 10/13
文章评论
    没有评论
给我留言

有人回复时邮件通知我
Java基础的相关文章
随机文章 本月热门 热评
1 JSF笔记 – JSF在项目中的基本使用 实现一个简单的登录跳转 2011/12/1
2 Javascript中的for in语句获取对象属性的顺序问题 2012/8/16
3 可行性研究-数据流图 数据字典 2011/7/1
4 Java笔记 – 泛型 泛型方法 泛型接口 擦除 边界 通配符(1) 2014/3/16
5 C++语法笔记 – 函数 2011/9/3
6 ThreadPoolExecutor的使用和介绍 2012/7/30
友情推荐 更多
破博客 文官洗碗安天下,武将打怪定乾坤。多么美好的年代,思之令人泪落。
Mr.5's Life 白天是一名程序员,晚上就是个有抱负的探索者
行知-追寻技术之美 关注大数据,分布式系统
我爱编程 编程成长轨迹
Cynthia's Blog 学习笔记 知识总结 思考感悟
 
欢迎关注我的公众号 IT宅
关于IT宅 文章归档

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

联系我们:admin@itzhai.com

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