1222-2019- -JDBC 데이터베이스 연결 풀 종래 기술 (CP30와 드루이드)

관련 학습 자료 : JdbcTemplate을 비디오에서 검은 말 57 JavaWeb

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 파일 (참고 : 및 사용 "& A;"대신)

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

코드 :

<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>

(알리 바바에서) 드루이드 기술
연결 (연결)을 생성하고, 가까운 (운영 연결 풀에 반환하는) 좋은 패키지가 있습니다.

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);
    }
}

게시 98 개 원래 기사 · 원의 칭찬 0 · 조회수 2214

추천

출처blog.csdn.net/weixin_43221993/article/details/103654737