“21天好习惯”第一期-5

JdbcTemplate的配置及使用(c3p0)

“21天好习惯”第一期-5

 

1.c3p0配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
   <!--  默认配置  -->
   <default-config>
      <!--   连接参数  -->
      <property name="driverClass">com.mysql.jdbc.Driver</property>
      <property name="jdbcUrl">jdbc:mysql://localhost:3308/sakila?serverTimezone=UTC</property>
      <property name="user">root</property>
      <property name="password">123456</property>
      <!--  连接池参数  -->
      <!-- 初始化申请的连接数量 -->
      <property name="initialPoolSize">5</property>
      <!-- 最大的连接数量 -->
      <property name="maxPoolSize">10</property>
      <!-- 超时时间 -->
      <property name="checkoutTimeout">3000</property>
   </default-config>
   <!--c3p0配置1-->
   <named-config name="c3p0">
      <!--   连接参数  -->
      <property name="driverClass">com.mysql.jdbc.Driver</property>
      <property name="jdbcUrl">jdbc:mysql://localhost:3308/sakila?serverTimezone=UTC</property>
      <property name="user">root</property>
      <property name="password">2524151826</property>
      <!--  连接池参数  -->
      <property name="initialPoolSize">5</property>
      <property name="maxPoolSize">8</property>
      <property name="checkoutTimeout">1000</property>
   </named-config>
</c3p0-config>

2.jdbcUtils:

package utils;

import com.mchange.v2.c3p0.ComboPooledDataSource;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

public class JdbcUtils {
    static ComboPooledDataSource cpds = new ComboPooledDataSource();

    public static Connection getConnection() throws SQLException{
        return cpds.getConnection();
    }

    //关闭操作
    public static void closeConnection(Connection con) throws SQLException{
        if(con!=null){
            con.close();
        }
    }
    public static void closeStatement(Statement st) throws SQLException{
        if(st!=null){
            st.close();
        }
    }
}
public class JDBCutils2 {
    public static DataSource source=new ComboPooledDataSource();

    public static DataSource getSource(){
        return source;
    }
}

3.BookDomain

package cn.edu.jdbctest;


public class BookDomain {
    private String id;
    private String bookname;
    private String writer;
    private int price;

    public BookDomain() {
    }

    public BookDomain(String id, String bookname, String writer, int price) {
        this.id = id;
        this.bookname = bookname;
        this.writer = writer;
        this.price = price;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getBookname() {
        return bookname;
    }

    public void setBookname(String bookname) {
        this.bookname = bookname;
    }

    public String getWriter() {
        return writer;
    }

    public void setWriter(String writer) {
        this.writer = writer;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }

    @Override
    public String toString() {
        return "bookDomain{" +
                "id='" + id + '\'' +
                ", bookname='" + bookname + '\'' +
                ", writer='" + writer + '\'' +
                ", price=" + price +
                '}';
    }
}

4.Testdemo1:

package cn.edu.jdbctest;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.jdbc.core.RowMapper;
 import utils.JDBCutils2;

 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;

public class Demoq {
     static JdbcTemplate jdbcTemplate;

     @BeforeAll
     public static void init(){
         jdbcTemplate =new JdbcTemplate(JDBCutils2.getSource());
     }
     @Test
     public void add(){
         String sql="insert into book(id,bookname,writer,price)\n" +
                 "values('1002','三国演义','不知道','34')";
         jdbcTemplate.update(sql);
     }

     @Test
    public  void add1(){
         Date date=new Date();
         SimpleDateFormat sdf=new SimpleDateFormat("YYYY-MM-dd hh:mm:ss");
         System.out.println(sdf.format(date));
     }

     @Test
    public void selectForMap(){
         String sql="select * from book where id=?";
         Map<String,Object> map=null;

         map=jdbcTemplate.queryForMap(sql,"1000");
         System.out.println(map);
     }
     @Test
    public void queryListBean(){
         String sql="select * from book";
         List<cn.edu.jdbctest.BookDomain> list=null;
         list=jdbcTemplate.query(sql,new BookDomain());
         System.out.println(list);
     }



    public class BookDomain implements RowMapper<cn.edu.jdbctest.BookDomain> {


        @Override
        public cn.edu.jdbctest.BookDomain mapRow(ResultSet rs, int rowNum) throws SQLException {
            BookDomain bookDomain=new BookDomain();
            cn.edu.jdbctest.BookDomain bookDomain1=new cn.edu.jdbctest.BookDomain();
            bookDomain1.setId(rs.getString("id"));
            bookDomain1.setBookname(rs.getString("bookname"));
            return bookDomain1;
        }
    }


}
上一篇:Python 腾讯接口之全球/全国疫情数据获取


下一篇:文件写入时使用缓冲区与不使用缓冲区效率提升3倍测试