1. 程式人生 > >C3P0Util 的製作 及DButils 中的 QueryRunner 類的使用

C3P0Util 的製作 及DButils 中的 QueryRunner 類的使用

C3P0Util 的製作 及DButils 中的 QueryRunner 類的使用

  1. 步驟:
    • 匯入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包和配置檔案的下載地址:

連結:https://pan.baidu.com/s/1qYGxwRlN3vImgV66eiWHtw 密碼:lbx2

  1. 工具類的寫法:

    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
    */
    public class C3p0Util { private static ComboPooledDataSource dataSource = new ComboPooledDataSource(); public static DataSource getDataSource(){ return dataSource; } public static Connection getConnection(){ try { return dataSource.getConnection(); } catch (SQLException e) { throw
    new RuntimeException(e); } } }
  2. 寫入配置檔案:

    檔案命名為: 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>
  3. 實體類

    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 + "]";
    }
    
    }
    
  4. 測試類

    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);
        }
    }
    
    }
    
  5. 資料庫建立

    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])諮詢。