JdbcTemplate提供的方法:
execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;
update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;
batchUpdate方法用于执行批处理相关语句;
query方法及queryForXXX方法:用于执行查询相关语句;call方法:用于执行存储过程、函数相关语句
查询单个对象/查询count,avg,sun返回唯一值:queryForobject 查询多个对象:query
@Test
public void testQuery(){
String sql = "select id,username,password from user where id=?";
BeanPropertyRowMapper<User> rowMapper = new BeanPropertyRowMapper<User>(User.class);
User user = jdbcTemplate.queryForObject(sql, rowMapper,1);
System.out.println(user);
}
@Test
public void testMutiQuery(){
String sql = "select id,username,password from user";
BeanPropertyRowMapper<User> rowMapper = new BeanPropertyRowMapper<User>(User.class);
List<User> users = jdbcTemplate.query(sql, rowMapper);
for (User user : users) {
System.out.println(user);
}
}
@Test
public void testCountQuery(){
String sql = "select count(*) from user";
BeanPropertyRowMapper<User> rowMapper = new BeanPropertyRowMapper<User>(User.class);
Integer result = jdbcTemplate.queryForObject(sql, Integer.class);
System.out.println(result);
}
update用于增删改:
增加:
@Test
public void testCreate(){
String sql = "insert into user (username,password) values (?,?)";
int create = jdbcTemplate.update(sql, new Object[]{255, 255});
System.out.println(create);
}
修改:
@Test
public void testUpdate(){
String sql = "update user set username=? , password=? where id=?";
int update = jdbcTemplate.update(sql, new Object[]{256, 256,3});
System.out.println(update);
}
删除:
@Test
public void testDelete(){
String sql = "delete from user where id=?";
int delete = jdbcTemplate.update(sql, new Object[]{3});
System.out.println(delete);
}
批量操作:
@Test
public void testBatch(){
List<Object[]> batchArgs=new ArrayList<Object[]>();
batchArgs.add(new Object[]{777,888});
batchArgs.add(new Object[]{666,888});
batchArgs.add(new Object[]{555,888});
String sql = "insert into user (username,password) values (?,?)";
jdbcTemplate.batchUpdate(sql, batchArgs);
}
NamedParameterJdbcTemplate:
具名参数namedparam: SQL 按名称(以冒号开头)而不是按位置进行指定. 具名参数更易于维护, 也提升了可读性. 具名参数由框架类在运行时用占位符取代
@Test
public void testNamedParameter(){
String sql = "insert into user (username,password) values (:username,:password)";
User u = new User();
u.setUsername("555");
SqlParameterSource sqlParameterSource=new BeanPropertySqlParameterSource(u);
namedParameterJdbcTemplate.update(sql,sqlParameterSource);
}
转载自:http://catalinali.top/2017/useJDBC/