applicationContext.xml
<!-- 配置c3p0数据源的bean -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8"></property>
<property name="user" value="root"></property>
<property name="password" value="ele994"></property>
<!-- initialPoolSize创建数据库连接池之后初始化的数据库的连接数,默认值3 -->
<property name="initialPoolSize" value="3"></property>
<!-- 连接池种可以存在的最大连接数,默认15 -->
<property name="maxPoolSize" value="10"></property>
<!-- 当连接池中的连接用完的时候,c3p0一次性创建的新的连接数 -->
<property name="acquireIncrement" value="2"></property>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<!-- 这个属性是dataSource类型的数据,需要依赖注入 -->
<!-- ref是引用哪个 对象 -->
<property name="dataSource" ref="dataSource"></property>
</bea>
Demo
package com.test.day45;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;
public class JdbcTemplateDemo {
private static ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
public static void main(String[] args) {
insert();
insert1();
}
public static void insert () {
String sql = "insert into user(id, name) values (4, '2088')";
JdbcTemplate jdbcTemplate = (JdbcTemplate)ctx.getBean("jdbcTemplate");
int res = jdbcTemplate.update(sql);
System.out.println(res);
}
public static void insert1 () {
String sql = "insert into user(id, name) values (?, ?)";
JdbcTemplate jdbcTemplate = (JdbcTemplate)ctx.getBean("jdbcTemplate");
int res = jdbcTemplate.update(sql, new Object[]{5, "2055"});
System.out.println(res);
}
}
public static void selUser() {
JdbcTemplate jdbcTemplate = (JdbcTemplate)ctx.getBean("jdbcTemplate");
String sql = "select * from user where id = ? and name = ?";
// 单条查询
// Map<String, Object> map = jdbcTemplate.queryForMap(sql);
// 单条查询,有条件
Map<String, Object> map = jdbcTemplate.queryForMap(sql, new Object[]{1, "徐振浩"});
System.out.println(map);
}
public static void selUsers () {
JdbcTemplate jdbcTemplate = (JdbcTemplate)ctx.getBean("jdbcTemplate");
String sql = "select * from user where 1 = 1";
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
System.out.println(list);
}
public static void selUsers () {
JdbcTemplate jdbcTemplate = (JdbcTemplate)ctx.getBean("jdbcTemplate");
String sql = "select * from user where 1 = 1 and name like ?";
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql, new Object[]{"%三%"});
System.out.println(list);
}
public static void selCount() {
JdbcTemplate jdbcTemplate = (JdbcTemplate)ctx.getBean("jdbcTemplate");
String sql = "select count(id) from user";
/**
* queryForObject有两个参数的时候,第一个是sql语句,第二个是查询字段的数据的类型
*/
Integer count = jdbcTemplate.queryForObject(sql, Integer.class);
System.out.println(count);
}
public static void selUserName() {
JdbcTemplate jdbcTemplate = (JdbcTemplate)ctx.getBean("jdbcTemplate");
String sql = "select name from user where id = 1";
/**
* queryForObject有两个参数的时候,第一个是sql语句,第二个是查询字段的数据的类型
*/
String name = jdbcTemplate.queryForObject(sql, String.class);
System.out.println(name);
}
public static void selUserName1() {
JdbcTemplate jdbcTemplate = (JdbcTemplate)ctx.getBean("jdbcTemplate");
String sql = "select name from user where id = ?";
/**
* queryForObject有两个参数的时候,第一个是sql语句,第二个是查询字段的数据的类型
*/
String name = jdbcTemplate.queryForObject(sql, String.class, new Object[]{4});
System.out.println(name);
}