package com.jnzyjsxy.common; import java.sql.DriverManager; import java.sql.ResultSet; import com.mysql.jdbc.Connection; import com.mysql.jdbc.Statement; /* * 数据库连接类 */ public class Database { //创建成员变量用于存储数据库连接的字符串或结果 //statement接口 用于执行静态sql语句 并返回它所生成的结果 private Statement stmt=null; //结果集类 ResultSet rs=null; //链接类 private Connection conn=null; String sql;//存储sql语句 //mysql数据连接字符串 //"jdbc:mysql://localhost:3306/db_hrms" //数据库名称db_hrms //在数据库名称后,增加"?characterEncoding=GBK",避免插入记录为乱码 String strurl="jdbc:mysql://localhost:3306/db_hrms?characterEncoding=GBK";//主机地址 String username="root";//用户名 String password="123456";//密码 //构造方法 public Database(){ } /* * 打开数据库连接 */ public void openConn() { try { Class.forName("com.mysql.jdbc.Driver"); //DriverManager.getConnection启动器管理类的连接方法 //创建数据库连接对象三个参数 初始化conn conn=(Connection) DriverManager.getConnection(strurl, username, password); System.out.println("数据库连接成功"); } catch (Exception e) { // TODO: handle exception System.err.println("OpenConn:"+e.getMessage()); } } /* * 执行sql查询语句 返回结果集rs */ public ResultSet executeQuery(String sql) { //由于stmt rs 反复使用 所以先置为空 stmt=null; rs=null; try { //连接对象执行createStatment方法 创建语句对象 //TYPE_SCROLL_INSENSITIVE,常量,字面意思 :类型-滚动-不敏感 //该常量表示结果集合记录指针可上下移动,当数据库记录改变时,结果集不更改 //CONCUR_READ_ONLY,常量,字面意思 同意-只读 //该常量表示,不能用结果集更新数据库中的表 stmt=(Statement) conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); //通过stml的executeQuery方法 执行sql查询获取结果集 rs=stmt.executeQuery(sql); } catch (Exception e) { // TODO: handle exception System.err.println("executeQuery"+e.getMessage()); } return rs; } /* * 执行sql语句 进行增删改查 */ public void executeUpdate() { stmt=null; rs=null; System.out.println(sql);//观察该sql语句 try { stmt=(Statement) conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); stmt.executeUpdate(sql); //通过conn的commit方法 提交事务 conn.commit();//修改结果 写入数据库 } catch (Exception e) { // TODO: handle exception System.out.println("exceptionUpdate"+e.getMessage()); } } public void closeStmt() { try { stmt.close();//关闭执行语句stmt对象 } catch (Exception e) { // TODO: handle exception System.err.println("closeStmt"+e.getMessage()); } } /* * 关闭数据库连接 */ public void closeConn() { try { conn.close(); } catch (Exception e) { // TODO: handle exception System.err.println("closeConn"+e.getMessage()); } } /* * 转换编码 */ public static String toGBK(String str) { try { if (str==null) { str=""; }else { //将传过来的字符转换成byte 按照进行重新编码 str=new String(str.getBytes("iso-8859-1"),"GBK"); } } catch (Exception e) { // TODO: handle exception System.out.println(e); } return str; } }

庞玉栋个人博客、人生苦短-我用Python