SpringJDBCTemplate入门案例
操作步骤
- 导入坐标(spring-jdbc、spring-tx)
- 创建实体对象
- 创建Template对象传入数据库资源
- 执行数据操作
更新操作:jdbcTemplate.query(sql, params)
查询操作:jdbcTemplate.query(sql,BeanPropertyRowMapper,params)
配置类:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:property-placeholder location="classpath:jdbc.properties"/>
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
</beans>
测试类:
import com.entity.Account;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.List;
import java.util.Map;
// 使用Spring的junit测试,可加载Spring环境直接自动注入取得bean创建的对象
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class TestJDBCTemplate {
@Autowired
private JdbcTemplate jdbcTemplate;
// 更新数据
@Test
public void testUpdate() {
int row = jdbcTemplate.update("update account set money=? where name=?", 10000, "张三");
System.out.println(row);
}
// 删除数据
@Test
public void testDelete() {
int row = jdbcTemplate.update("delete from account where name=?", "zhangsan");
System.out.println(row);
}
// 插入数据
@Test
public void testInsert() {
int row = jdbcTemplate.update("insert into account values (?,?)", "小王", 5200);
System.out.println(row);
}
// 查询所有返回实体对象放进List中
@Test
public void testSelectAll() {
List<Account> accountList = jdbcTemplate.query("select * from account", new BeanPropertyRowMapper<Account>(Account.class));
System.out.println(accountList);
}
// 查询符合条件数据个数
@Test
public void testQueryCount() {
Long count = jdbcTemplate.queryForObject("select count(*) from account", Long.class);
System.out.println(count);
}
}