JDBC終章- 使用 DBUtils實現增刪查改- C3P0Utils資料來源/QueryRunner runner連線資料來源並執行sql
阿新 • • 發佈:2018-11-24
JDBC終章- 使用 DBUtils實現增刪查改
1.資料庫結構
Create Table CREATE TABLE `user` ( `id` int(3) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `password` varchar(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8
2.工程結構
SRC目錄下的 c3p0-config.xml
<?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <named-config name="szs"> <property name="user">root</property> <property name="password">123456</property> <property name="jdbcUrl">jdbc:mysql://localhost:3306/jdbc</property><property name="driverClass">com.mysql.jdbc.Driver</property> <property name="acquireIncrement">2</property> <property name="initialPoolSize">5</property> <property name="minPoolSize">5</property> <property name="maxPoolSize">10</property> <property name="maxStatements">20</property> <property name="maxStatementsPerConnection">5</property> </named-config> </c3p0-config>
具體的JAR 包如下:
3.建立C3P0Utils 資料來源
package day_23; import com.mchange.v2.c3p0.ComboPooledDataSource; import org.junit.Test; import javax.sql.DataSource; import java.sql.SQLException; public class C3P0Utils { private static DataSource ds; static { ds=new ComboPooledDataSource("szs"); //這裡因為配置檔案中沒有default,故需要自定義的 } public static DataSource getDataSource() throws SQLException { return ds; } }View Code
4.建立DBUtilsDao類,實現增刪查改
package day_23; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanListHandler; import java.sql.SQLException; import java.util.List; //建立DBUtilsDao類 public class DBUtilsDao { //查詢所有,返回List集合 public List findAll() throws SQLException{ //建立QueryRunner 物件 QueryRunner runner=new QueryRunner(C3P0Utils.getDataSource()) ; //寫SQL語句 String sql="select * from user"; //呼叫方法 List list=(List)runner.query(sql,new BeanListHandler(User.class)); return list; } //查詢單個物件的id,返回List集合中的第一個物件 public User find(int id) throws SQLException{ //建立QueryRunner 物件 QueryRunner runner=new QueryRunner(C3P0Utils.getDataSource()) ; //寫SQL語句 String sql="select * from user where id= ?"; //呼叫方法 List list=(List)runner.query(sql,new BeanListHandler(User.class),id); return (User)list.get(0); } //新增使用者的操作 public Boolean insert(User user) throws SQLException{ //建立QueryRunner 物件 QueryRunner runner=new QueryRunner(C3P0Utils.getDataSource()) ; //寫SQL語句 String sql="insert into user (name,password) values (?,?)"; //呼叫方法 int num=runner.update(sql,new Object[]{user.getName(),user.getPassword()}); if(num>0){ System.out.println("新增使用者成功!"); return true; } else return false; } //修改使用者的操作 public Boolean update(User user) throws SQLException{ //建立QueryRunner 物件 QueryRunner runner=new QueryRunner(C3P0Utils.getDataSource()) ; //寫SQL語句 String sql="update user set name=?,password=? where id=?"; //呼叫方法 int num=runner.update(sql,new Object[]{user.getName(),user.getPassword(),user.getId()}); if(num>0){ System.out.println("更新使用者成功!"); find(user.getId()).toString(); return true; } else return false; } //刪除使用者的操作 ,根據使用者的id public Boolean delete(int id) throws SQLException{ //建立QueryRunner 物件 QueryRunner runner=new QueryRunner(C3P0Utils.getDataSource()) ; //寫SQL語句 String sql="delete from user where id =?"; //呼叫方法 int num=runner.update(sql,id); if(num>0){ System.out.println("刪除使用者成功!"); return true; } else return false; } }View Code
5.測試DBUtilsDao類的 增(insert)刪查改,四個功能
package day_23; import java.sql.SQLException; import java.util.List; //測試增(insert)刪查改,四個功能 public class DBUtilsDaoTest { private static DBUtilsDao dao=new DBUtilsDao(); public static void testInsert() throws SQLException{ User user=new User(); user.setId(1); user.setName("趙六"); user.setPassword("666666"); boolean b=dao.insert(user); System.out.println(b); } public static void testDelete() throws SQLException{ System.out.println(dao.delete(1)); } public static void testfind() throws SQLException { System.out.println(dao.find(2)); } public static void testfindAll() throws SQLException{ List<User> users= dao.findAll(); for(int i=0;i<users.size();i++) System.out.println(users.get(i)); } public static void testUpdate() throws SQLException{ User user=new User(); user.setId(5); user.setName("趙六66"); user.setPassword("666666"); boolean b=dao.insert(user); System.out.println(b); } public static void main(String[] args) throws SQLException { testInsert(); testDelete(); testUpdate(); testfind(); testfindAll(); } }View Code
6.最終控制檯的結果展示
新增使用者成功! true false 新增使用者成功! true User{id=2, name='李四', password='123456'} User{id=2, name='李四', password='123456'} User{id=3, name='王五', password='123456'} User{id=4, name='趙六', password='666666'} User{id=5, name='趙六', password='666666'} User{id=6, name='趙六66', password='666666'} User{id=7, name='趙六', password='666666'} User{id=8, name='趙六66', password='666666'}