图书管理系统总结——数据库操作(一):数据库连接
由于经常在晚上回宿舍写代码,没有网,故而没用老师提供的Oracle数据库服务器,在自己电脑上装了一个MySQL。而且JAVA配MySQL还是很方便的。
数据库连接:
参考了http://blog.csdn.net/superit401/article/details/51585620,讲的十分全面。
这里数据库连接专门作为一个工具类,连接的是自己的MyQL数据库。由于像登录,充值这样关键事务需要注意保证一致性,所以显示指定了事务,并为之添加行级锁,故而还有一些与数据库事务相关的操作都封装在这个类中。
/** * 数据库工具类 * @author Administrator * */ public class DbUtil { private String dbUrl="jdbc:mysql://localhost:3306/db_book"; // 数据库连接地址://202.38.88.99:1434/student private String dbUserName="root"; // 用户名student private String dbPassword="student"; // 密码 private String jdbcName="com.mysql.jdbc.Driver"; // 驱动名称 /** * 获取数据库连接 * @return * @throws Exception */ public Connection getCon()throws Exception{ Class.forName(jdbcName); Connection con=DriverManager.getConnection(dbUrl, dbUserName, dbPassword); return con; } /** * 关闭数据库连接 * @param con * @throws Exception */ public void closeCon(Connection con)throws Exception{ if(con!=null){ con.close(); } } /** * 关闭连接表对象 * @param pstmt */ public static void close(java.sql.PreparedStatement pstmt){ if (pstmt!=null) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } } /** * 关闭结果集,释放资源 * @param rs */ public static void close(ResultSet rs) { if(rs!=null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } } /** * 关闭自动提交事务 * @param conn */ public static void beginTransaction(Connection conn){ if (conn!=null) { try { if(conn.getAutoCommit()){ conn.setAutoCommit(false); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } /** * 提交事务 * @param conn */ public static void commitTransaction(Connection conn){ try { if(conn!=null){ if (!conn.getAutoCommit()) { conn.commit(); } } } catch (Exception e) { // TODO: handle exception } } /** * 回滚事务 * @param conn */ public static void rollbackTransaction (Connection conn) { try { if(conn!=null){ if (!conn.getAutoCommit()) { conn.rollback(); } } } catch (Exception e) { // TODO: handle exception } } /** * 将是否自动提交事务权限取反 * @param conn */ public static void resetTransaction(Connection conn){ try { if(conn!=null) { if (conn.getAutoCommit()) { conn.setAutoCommit(false); }else{ conn.setAutoCommit(true); } } } catch (Exception e) { // TODO: handle exception } } /** * 主函数,测试使用 * @param args */ public static void main(String[] args) { DbUtil dbUtil=new DbUtil(); try { dbUtil.getCon(); System.out.println("数据库连接成功!"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); System.out.println("数据库连接失败"); } } }