spring封装对数据库基本操作;
1.新建配置文件
2.bean配置文件中导入外部配置文件
<context:property-placeholder location="classpath:mysql" />
3.配置c3p0
<!-- 配置c3p0 -->
<bean id="c3p0" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="${user}"></property>
<property name="password" value="${password}"></property>
<property name="jdbcUrl" value="${jdbcUrl}"></property>
<property name="driverClass" value="${driverClass}"></property>
<property name="initialPoolSize" value="${initPoolSize}"></property>
<property name="maxPoolSize" value="${maxPoolSize}"></property>
</bean>
4.配置 Spring 的 jdbcTemplate
<!-- 配置 Spring 的 jdbcTemplate -->
<bean id="jt" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="c3p0"></property>
</bean>
数据库的 UPDATE INSERT, DELETE
代码:
/**
* 测试 UPDATE INSERT, DELETE
*/
private static void testUpdate(ApplicationContext ctx) {
//获取spring JdbcTemplate对象
JdbcTemplate jdbcTemplate = (JdbcTemplate) ctx.getBean("jt");
//修改
String sqlu = "UPDATE user SET name=? WHERE id=?";
jdbcTemplate.update(sqlu, "王五", 1);
//批量增加 最后的参数需要一个Object数组
String sqli = "INSERT INTO user(name,pw,age) VALUES(?,?,?)";
List<Object[]> list=new ArrayList<>();
list.add(new Object[] {"老矣","123456",5});
list.add(new Object[] {"小三","csacs",23});
list.add(new Object[] {"老牛","csadcdsa",45});
list.add(new Object[] {"张八","vfdvf",80});
list.add(new Object[] {"小四","csacdsc",90});
jdbcTemplate.batchUpdate(sqli, list);
}
参数具名参数 可以为参数起名字,直接对应参数名,便于维护
/**
* 参数具名参数
* 1.可以为参数起名字,直接对应参数名,便于维护
* 2.叫为麻烦
* */
private static void testName(ApplicationContext ctx) {
NamedParameterJdbcTemplate npjt = (NamedParameterJdbcTemplate) ctx.getBean("npjt");
String sqli = "INSERT INTO user(name,pw,age) VALUES(:name,:pw,:age)";
Map<String, Object> map=new HashMap<String, Object>();
map.put("name", "具名参数");
map.put("pw", "1465151");
map.put("age", "20");
npjt.update(sqli, map);
}
具体对象映射
/**
* 参数具名参数
* 使用具体对象映射
* */
private static void testName2(ApplicationContext ctx) {
NamedParameterJdbcTemplate npjt = (NamedParameterJdbcTemplate) ctx.getBean("npjt");
String sqli = "INSERT INTO user(name,pw,age) VALUES(:name,:pw,:age)";
user u=new user();
u.setName("具名参数1");
u.setPw("1465151sdxsx");
u.setAge(25);
SqlParameterSource parameter=new BeanPropertySqlParameterSource(u);
npjt.update(sqli, parameter);
}