1222-2019- -JDBC database connection pool related art (CP30 and Druid)

Relevant learning Source: Black Horse 57 JavaWeb in JDBCTemplate video

package JDBCTemplate;

import com.mchange.v2.c3p0.ComboPooledDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;

/**
 * @author pdzz
 * @create 2019-12-22 16:39
 */
public class JDBCTemplate {
    public static void main(String[] args) throws SQLException {
        DataSource ds = new ComboPooledDataSource("otherc3p0");
        for (int i = 1; i < 21; i++) {
            Connection connection = ds.getConnection();
            System.out.println(i+ ": " + connection);
            if (i == 5){
                connection.close();
            }
        }
    }
}

c3p0-config.xml file (Note that: & use "& amp;" instead)

需要注意的是:&要用“&amp;”代替

Code:

<c3p0-config>
  <!-- 使用默认的配置读取连接池对象 -->
  <default-config>
  	<!--  连接参数 -->
    <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql:///world?useSSL=false&amp;serverTimezone=GMT&amp;allowPublicKeyRetrieval=true</property>
    <property name="user">root</property>
    <property name="password">Zzd3358575+</property>
    
    <!-- 连接池参数 -->
    <property name="initialPoolSize">5</property>
    <property name="maxPoolSize">10</property>
    <property name="checkoutTimeout">3000</property>
  </default-config>

  <named-config name="otherc3p0"> 
    <!--  连接参数 -->
    <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql:///world?useSSL=false&amp;serverTimezone=GMT&amp;allowPublicKeyRetrieval=true</property>
    <property name="user">root</property>
    <property name="password">Zzd3358575+</property>
    
    <!-- 连接池参数 -->
    <property name="initialPoolSize">5</property>
    <property name="maxPoolSize">8</property>
    <property name="checkoutTimeout">1000</property>
  </named-config>
</c3p0-config>

Druid technology (from Ali Baba)
to create a connection (Connection), and close (to return to the operating connection pool) have a good package.

package JDBCSpringTemplate;

import Utils.JDBCUtils;
import domain.stu;
import org.junit.Test;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;

import java.util.List;
import java.util.Map;

/**
 * @author pdzz
 * @create 2019-12-23 16:50
 */
public class SpringTemplate {
    private JdbcTemplate jdbcTemplate = new JdbcTemplate(JDBCUtils.getDataSource());
    @Test
    /**
    *@Description 更新值
    *@Param []
    *@Return void
    *@Author pdzz
    *@Date 2019/12/23
    *@Time 16:55
    */
    public void test1(){

        String sql = "update stu set name = 'pdzz' where id = 5";
        int count = jdbcTemplate.update(sql);
        System.out.println(count);
    }


    @Test
    //添加记录
    public void test2(){

        String sql = "insert into stu values (6,'pdzz')";
        int count = jdbcTemplate.update(sql);
        System.out.println(count);
    }
    @Test
    public void test3(){
        String sql = "delete from stu where id = ?";
        int count = jdbcTemplate.update(sql,5);
        System.out.println(count);
    }
    @Test
    public void test4(){
        String sql = "select * from stu where id = ?";
        Map<String, Object> map = jdbcTemplate.queryForMap(sql, 1);
        System.out.println(map);
    }
    @Test
    public void test5(){
        String sql = "select * from stu where id = ? or id = ?";
        List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql, 1, 3);
        for (Map<String, Object> map:maps) {
            System.out.println(map);
        }
    }
    @Test
    public void test6(){
        String sql = "select * from stu";
        List<stu> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<stu>(stu.class));
        for (stu stu: list){
            System.out.println(stu);
        }
    }
    @Test
    public void test7(){
        String sql = "select count(id) from stu";
        Long count = jdbcTemplate.queryForObject(sql, Long.class);
        System.out.println(count);
    }
}

Published 98 original articles · won praise 0 · Views 2214

Guess you like

Origin blog.csdn.net/weixin_43221993/article/details/103654737