DBUtils和DBCP连接池

连接池用具类

 1 public class MyDbUtils {
 2     /*静态常量*/
 3 
 4     /**驱动包**/
 5     private final static String DRIVER_CLASS_NAME = "com.mysql.jdbc.Driver";
 6 
 7     /**连接路径url**/
 8     private final static String URL = "jdbc:mysql://127.0.0.1:3306/java0723?characterEncoding=UTF-8";
 9 
10     /**用户名**/
11     private final static String USERNAME = "root";
12 
13     /**密码**/
14     private final static String PASSWORD = "123456";
15 
16     /**创建连接池**/
17     public static BasicDataSource dataSource = new BasicDataSource();
18 
19     //静态代码块
20     static {
21         //对连接池对象 进行基本的配置
22         /*这是要连接的数据库的驱动*/
23         dataSource.setDriverClassName(DRIVER_CLASS_NAME);
24         /*指定要连接的数据库地址*/
25         dataSource.setUrl(URL);
26         /*指定要连接数据的用户名*/
27         dataSource.setUsername(USERNAME);
28         /*指定要连接数据的密码*/
29         dataSource.setPassword(PASSWORD);
30         /*设置最大连接数*/
31         dataSource.setMaxActive(10);
32     }
33 
34     /*获取连接池对象*/
35     public static DataSource getDataSource(){
36         return dataSource;
37     }
38 
39     /*获取单个连接对象*/
40     public static Connection getConn(){
41         Connection conn = null;
42         try {
43             conn = dataSource.getConnection();
44         } catch (SQLException e) {
45             e.printStackTrace();
46         }
47         return conn;
48     }
49 }

 

Dao层

  1 public class UserDao {
  2 
  3     /*新增数据*/
  4     public void add(Users user) throws SQLException {
  5         Connection conn = JDBCUtils.getConn();
  6         String sql = "insert into user (uname,pwd) values (?,?)";
  7         QueryRunner qr = new QueryRunner();
  8         int count = qr.update(conn, sql, user.getUname(), user.getPwd());
  9         System.out.println(count);
 10         conn.close();
 11     }
 12 
 13     /*更改数据*/
 14     public void update(Users user) throws SQLException {
 15         Connection conn = JDBCUtils.getConn();
 16         String sql = "update user set uname=?,pwd=? where uid=?";
 17         QueryRunner qr = new QueryRunner();
 18         int count = qr.update(conn, sql, user.getUname(), user.getPwd(), user.getUid());
 19         System.out.println(count);
 20         conn.close();
 21     }
 22 
 23     /*删除数据*/
 24     public void del(Users user) throws SQLException {
 25         Connection conn = JDBCUtils.getConn();
 26         String sql = "delete from user where uid=?";
 27         QueryRunner qr = new QueryRunner();
 28         int count = qr.update(conn, sql, user.getUid());
 29         System.out.println(count);
 30         conn.close();
 31     }
 32 
 33     /*获取结果集的第一条数据*/
 34     public Object[] get1() throws SQLException {
 35         Connection conn = JDBCUtils.getConn();
 36         String sql = "select * from user";
 37         QueryRunner qr = new QueryRunner();
 38         Object[] query = qr.query(conn, sql, new ArrayHandler());
 39         conn.close();
 40         return query;
 41     }
 42 
 43     /*把查询的所有数据返回一个object类型的list集合*/
 44     public List<Object[]> get2() throws SQLException {
 45         Connection conn = JDBCUtils.getConn();
 46         String sql = "select * from user";
 47         QueryRunner qr = new QueryRunner();
 48         List<Object[]> query = qr.query(conn, sql, new ArrayListHandler());
 49         conn.close();
 50         return query;
 51     }
 52 
 53     /*获取结果集的第一条数据并封装一个实例类*/
 54     public Users get3() throws SQLException {
 55         Connection conn = JDBCUtils.getConn();
 56         String sql = "select * from user";
 57         QueryRunner qr = new QueryRunner();
 58         Users query = qr.query(conn, sql, new BeanHandler<Users>(Users.class));
 59         conn.close();
 60         return query;
 61     }
 62 
 63     /*获取结果集的并封装一个实例类,并加到list集合中*/
 64     public List<Users> get4() throws SQLException {
 65         Connection conn = JDBCUtils.getConn();
 66         String sql = "select * from user";
 67         QueryRunner qr = new QueryRunner();
 68         List<Users> query = qr.query(conn, sql, new BeanListHandler<Users>(Users.class));
 69         conn.close();
 70         return query;
 71     }
 72 
 73     /*获取指定类的结果集,并封装到一个list集合中*/
 74     public List<String> get5() throws SQLException {
 75         Connection conn = JDBCUtils.getConn();
 76         /*第一种*/
 77         /*String sql = "select uname from user";*/
 78         /*第二种*/
 79         String sql = "select * from user";
 80         QueryRunner qr = new QueryRunner();
 81         /*第一种*/
 82         /*List<String> query = qr.query(conn, sql, new ColumnListHandler<String>());*/
 83         /*第二种*/
 84         List<String> query = qr.query(conn, sql, new ColumnListHandler<String>("uname"));
 85         conn.close();
 86         return query;
 87     }
 88 
 89     /*查询一个参数,并返回一个object类型*/
 90     public Object get6() throws SQLException {
 91         Connection conn = JDBCUtils.getConn();
 92         String sql = "select uname FROM `user` where uid = 6";
 93         QueryRunner qr = new QueryRunner();
 94         Object query = qr.query(conn, sql, new ScalarHandler<>(1));
 95         conn.close();
 96         return query;
 97     }
 98 
 99     /*查取结果集的一个条数据,封装为map集合中*/
100     public Map<String, Object> get7() throws SQLException {
101         Connection conn = JDBCUtils.getConn();
102         String sql = "select * FROM `user`";
103         QueryRunner qr = new QueryRunner();
104         Map<String, Object> query = qr.query(conn, sql, new MapHandler());
105         conn.close();
106         return query;
107     }
108 
109     /*查取结果集所有数据,封装为map集合中,并加载到list集合中*/
110     public List<Map<String, Object>> get8() throws SQLException {
111         Connection conn = JDBCUtils.getConn();
112         String sql = "select * FROM `user`";
113         QueryRunner qr = new QueryRunner();
114         List<Map<String, Object>> query = qr.query(conn, sql, new MapListHandler());
115         conn.close();
116         return query;
117     }
118 
119     /*连接池*/
120     public List<Map<String, Object>> get9() throws SQLException {
121         String sql = "select * FROM `user`";
122         /*创建 QueryRunner 对象是 传入一个 连接池对象*/
123         QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
124         List<Map<String, Object>> query = qr.query(sql, new MapListHandler());
125         return query;
126     }
127 }

 

上一篇:数据库连接池,DBUtil的模板,dbcp,c3p0


下一篇:Invalid connection string format, a valid format is: "host:port:sid"