JdbcTemplate的配置及使用(c3p0)
?
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;
}
}
}
|