C3P0Util 的製作 及DButils 中的 QueryRunner 類的使用
阿新 • • 發佈:2018-11-08
C3P0Util 的製作 及DButils 中的 QueryRunner 類的使用
- 步驟:
- 匯入jar 包
- c3p0-0.9.1.2.jar
- commons-dbutils-1.4.jar
- mysql-connector-java-5.0.8-bin.jar
- 寫C3p0Util 工具類
- C3p0Util.jar {寫好後轉為jar形式,方便下次使用}
- 寫入配置檔案
- c3p0-config.xml
- 寫測試類
- 準備資料庫
- 匯入jar 包
關於jar包和配置檔案的下載地址:
連結:https://pan.baidu.com/s/1qYGxwRlN3vImgV66eiWHtw 密碼:lbx2
工具類的寫法:
package cn.javabs.util; import java.sql.Connection; import java.sql.SQLException; import javax.sql.DataSource; import com.mchange.v2.c3p0.ComboPooledDataSource; /** * C3p0的工具類 * @author Mryang * 2018.08.05 */
寫入配置檔案:
檔案命名為: c3p0-config.xml
<?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <default-config> <!--以下屬性name的屬性值都不可以更改--> <!--連線資料庫驅動--> <property name="driverClass">com.mysql.jdbc.Driver</property> <!--資料庫連線,如本地主機,可直接更改資料庫名稱:user--> <property name="jdbcUrl">jdbc:mysql:///user</property> <!--資料庫使用者名稱--> <property name="user">root</property> <!--資料庫密碼--> <property name="password">sorry</property> <property name="initialPoolSize">10</property> <property name="maxIdleTime">30</property> <property name="maxPoolSize">100</property> <property name="minPoolSize">10</property> <property name="maxStatements">200</property> </default-config> </c3p0-config>
實體類
package cn.javabs.entity; public class User { private Integer id; private String username; private String password; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User [id=" + id + ", username=" + username + ", password=" + password + "]"; } }
測試類
package cn.javabs.test; import java.sql.SQLException; import java.util.List; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanListHandler; import org.junit.Test; import cn.javabs.entity.User; import cn.javabs.util.C3p0Util; /** * 資料來源連線池的測試類 * @author Mryang * 本類中引入了一個新的工具類是 QueryRunner */ public class DataTest { QueryRunner qr = new QueryRunner(C3p0Util.getDataSource()); @Test public void addDataTest(){ User user = new User(); user.setId(9); user.setUsername("aaa"); user.setPassword("123"); try { qr.update("insert into user(id, username,password) values (?,?,?)", // user.getId(),user.getUsername(),user.getPassword()); } catch (SQLException e) { throw new RuntimeException(e); } } @Test public void delDataTest(){ User user = new User(); user.setId(9); try { qr.update("delete from user where id = ?", // user.getId()); } catch (SQLException e) { throw new RuntimeException(e); } } @Test public void updateDataTest(){ User user = new User(); user.setPassword("222"); user.setId(9); try { qr.update("update user set password = ? where id = ? ", // user.getPassword(),user.getId()); } catch (SQLException e) { throw new RuntimeException(e); } } @Test public void queryAllDataTest(){ try { List<User> result = qr.query("select * from user", // new BeanListHandler<User>(User.class)); System.out.println(result); } catch (SQLException e) { throw new RuntimeException(e); } } }
資料庫建立
create database user; use user; create table user( id int primary key auto_increment, username varchar(50), password varchar(50) );
關於演示程式碼的下載地址:
連結:https://pan.baidu.com/s/1mg5_NCAdcGMjuiUmO8rNwQ 密碼:9m0x
作者: 楊校
出處: https://blog.csdn.net/kese7952
分享是快樂的,也見證了個人成長曆程,文章大多都是工作經驗總結以及平時學習積累,基於自身認知不足之處在所難免,也請大家指正,共同進步。
本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出, 如有問題, 可郵件([email protected])諮詢。