JdbcTemplate CRUD
执行insert update delete操作
执行select操作
1.User实体类及get/set方法
测试类
1 @RunWith(SpringJUnit4ClassRunner.class) 2 @ContextConfiguration(locations = "classpath:applicationContext.xml") 3 public class jdbcTemplateTest1 { 4 @Autowired 5 private JdbcTemplate jdbcTemplate; 6 // 测试修改 7 @Test 8 public void test1() { 9 jdbcTemplate.update("update t_user set name=? where id=?", "tom", 1); 10 } 11 // 测试添加 12 @Test 13 public void test2() { 14 jdbcTemplate.update("insert into t_user values(null,?,?,?)", "萌萌", 20, 15 "男"); 16 } 17 18 // 测试删除 19 @Test 20 public void test3() { 21 jdbcTemplate.update("delete from t_user where id=?", 4); 22 } 23 24 // 测试修改简单的数据类型 25 @Test 26 public void test4() { 27 String query = jdbcTemplate.queryForObject( 28 "select name from t_user where id=?", String.class, 1); 29 System.out.println(query); 30 } 31 32 // 测试修改简单的数据类型 33 @Test 34 public void test5() { 35 Integer integer = jdbcTemplate.queryForObject( 36 "select count(*) from t_user ", Integer.class); 37 System.out.println(integer); 38 } 39 // 测试返回一个domain 40 @Test 41 public void test6() { 42 User user = jdbcTemplate.queryForObject("select * from t_user where id = ?",new RowMapper<User>() { 43 @Override 44 public User mapRow(ResultSet rs, int num)throws SQLException { 45 //结果节封装到User对象 46 User user = new User(); 47 user.setId(rs.getInt("id")); 48 user.setAge(rs.getInt(3)); 49 user.setName(rs.getString(2)); 50 user.setSex(rs.getString("sex")); 51 return user; 52 } 53 }, 1); 54 System.out.println(user); 55 } 56 // 测试返回一个list<User>---使用query 57 @Test 58 public void test7() { 59 List<User> user = jdbcTemplate.query("select * from t_user ",new RowMapper<User>() { 60 @Override 61 public User mapRow(ResultSet rs, int num)throws SQLException { 62 //rs表示获取到的结果集,num表示结果集中数据的第几列 63 //结果节封装到User对象 64 User user = new User(); 65 user.setId(rs.getInt(1)); 66 user.setAge(rs.getInt(3)); 67 user.setName(rs.getString(2)); 68 user.setSex(rs.getString("sex")); 69 return user; 70 } 71 }); 72 System.out.println(user); 73 } 74 //使用RowMapper的实现类完成结果集bean封装--实体必须提供一个无参构造,类中的bean属性名称与表中的列要对应 75 @Test 76 public void test8(){ 77 List<User> user = jdbcTemplate.query("select*from t_user", new BeanPropertyRowMapper<User>(User.class)); 78 System.out.println(user); 79 } 80 }
3.配置文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" 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"> <!-- 引入外部的properties文件 --> <context:property-placeholder location="classpath:db.properties"/> <!-- Spring内置的连接池 --> <!-- <bean id="driverManagerDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql:///springtest" /> <property name="username" value="root"/> <property name="password" value="123"></property> </bean> --> <!-- 创建c3p0连接池 --> <bean id="c3p0DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.driverClass}" /> <property name="jdbcUrl" value="${jdbc.url}" /> <property name="user" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </bean> <!-- ref声明c3p0的数据源,交由Spring管理 --> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="c3p0DataSource"></property> </bean> </beans>
db.properties
jdbc.driverClass=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql:///springtest jdbc.username=root jdbc.password=