1 package jdbcDome;
2
3 import java.sql.Connection;
4 import java.sql.DriverManager;
5 import java.sql.ResultSet;
6 import java.sql.SQLException;
7 import java.sql.Statement;
8
9 /**
10 * JDBC工具类
11 * @author sunjian
12 *
13 */
14 public class DBUtil {
15
16 private static Connection conn = null; //数据库连接对象
17 private Statement stmt = null; //数据库sql语句对象
18 private ResultSet rs = null; //数据库结果集对象
19
20 private static final String DRIVER="com.mysql.jdbc.Driver";//这是一个连接数据库必填的常量
21 private static final String URL = "jdbc:mysql://localhost:3308/shxt"; //数据库的URL 3308为端口 shxt是那个数据库
22 private static final String USER = "root"; //数据库的账号
23 private static final String PWD = "mysql"; //数据库的密码
24
25 private static DBUtil db=null;
26
27 public static DBUtil getDB() {
28 //判断是否为空,这样的方式更加节省资源
29 if(db == null) {
30 db = new DBUtil();//实例化对象
31 }
32 return db;
33 }
34 //将构造器隐藏,这样就无法调用构造器
35 private DBUtil() {
36 //................
37 }
38
39
40 //获得数据库连接,加载驱动
41 public static Connection getConn() {
42 //加载驱动
43 try {
44 Class.forName(DRIVER);
45 try {
46 conn=DriverManager.getConnection(URL, USER, PWD);
47 } catch (SQLException e) {
48 // TODO Auto-generated catch block
49 e.printStackTrace();
50 }
51 } catch (ClassNotFoundException e) {
52 e.printStackTrace();
53 }
54 return conn;
55 }
56
57 //处理增删改sql的方法
58 public int update(String sql) {
59 int num = 0;
60 conn=getConn();
61 try {
62 stmt=conn.createStatement();
63 num = stmt.executeUpdate(sql);
64 } catch (SQLException e) {
65 e.printStackTrace();
66 }
67 return num;
68 }
69
70 //处理查询sql的方法
71 public ResultSet query(String sql) {
72 conn=getConn();
73 try {
74 stmt=conn.createStatement();
75 rs=stmt.executeQuery(sql);
76 } catch (SQLException e) {
77 e.printStackTrace();
78 }
79 return rs;
80 }
81
82 //释放资源的方法
83 public void close() {
84 try {
85 if(rs != null) {
86 rs.close();
87 }
88
89 if(stmt != null) {
90 stmt.close();
91 }
92
93 if(conn != null) {
94 conn.close();
95 }
96 } catch (SQLException e) {
97 e.printStackTrace();
98 }
99 }
100 }