JDBC数据库连接和事务的管理 一个JDBC基本操作封装类的编写
2015-08-14 22:39
591 查看
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(); } } }
相关文章推荐
- jdbc中的Statement和PreparedStatement接口对象
- SQL中的三值逻辑
- SQL Server 作业批量停止
- 结束SQL阻塞的进程
- 动态生成SQL Server视图作业
- SQL Server 语句操纵数据库
- SQL(结构化查询语句)
- oracle sql日期比较
- linux快速部署mysql服务器
- sql 存储过程分页
- 在WINXP系统上安装SQL Server企业版的方法
- 通过批处理调用SQL的方法(osql)
- SQL Server 存储过程的分页
- ASP程序与SQL存储过程结合使用详解
- SQL SERVER编写存储过程小工具
- 防御SQL注入攻击时需要注意的一个问题
- PostgreSQL教程(十九):SQL语言函数
- SQL Server复制需要有实际的服务器名称才能连接到服务器