首先请参阅我的关于JdbcTemplate操作数据库的第一篇文章新建Spring工程,用Spring的JdbcTemplate实现对数据库的增删改(小白都能看懂的手把手教程)
①查询数据库表中的记录条数(即一个表目前有多少条数据)
PersonService.java
//查询表中的记录条数
public void count(){
personDao.count();
}
PersonDaoImpl.java
@Override
public void count() {
String sql="select count(*) from information";
Integer integer = jdbcTemplate.queryForObject(sql, Integer.class);
System.out.println(integer);
}
PersonTest.java
@Test
public void testCount(){
ApplicationContext context= new ClassPathXmlApplicationContext("bean1.xml");
PersonService personService = context.getBean("personService", PersonService.class);
personService.count();
}
②查询数据库表返回一个对象,即一整行的数据
PersonService.java
//查询返回一整行
public void queryOne(String username){
personDao.queryOne(username);
}
PersonDaoImpl.java
@Override
public void queryOne(String username) {
String sql="select * from information where name=?";
Person person = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<Person>(Person.class),username);
System.out.println(person);//打印对象信息需要在Person类中重写toString 方法
}
PersonTest.java
@Test
public void testQueryOne(){
ApplicationContext context= new ClassPathXmlApplicationContext("bean1.xml");
PersonService personService = context.getBean("personService", PersonService.class);
String username="Jerry";
personService.queryOne(username);
}
结果
信息: {dataSource-1} inited
Person{name='Jerry', sex='male', age='21'}
③查询数据库返回一个集合,即数据库表中的所有数据
PersonService.java
//查询返回一个集合
public List<Person>queryAll(){
return personDao.queryAll();
}
PersonDaoImpl.java
@Override
public List<Person> queryAll() {
String sql="select * from information";
List<Person> personList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<Person>(Person.class));
return personList;
}
PersonTest.java
@Test
public void testQueryAll(){
ApplicationContext context= new ClassPathXmlApplicationContext("bean1.xml");
PersonService personService = context.getBean("personService", PersonService.class);
List<Person> people = personService.queryAll();
System.out.println(people);
}
结果
信息: {dataSource-1} inited
[Person{name='Tom', sex='female', age='24'}, Person{name='Jerry', sex='male', age='21'}, Person{name='curry', sex='male', age='30'}]
这是我的数据库中的表,可以看出返回了全部对象,一行即为一个对象
④往数据库中批量添加数据
PersonService.java
//批量添加数据
public void batchAdd(List<Object[]>batchArgs)
{
personDao.batchAdd(batchArgs);
}
PersonDaoImpl.java
@Override
public void batchAdd(List<Object[]> batchArgs) {
String sql="insert into information values(?,?,?)";
jdbcTemplate.batchUpdate(sql, batchArgs);
}
PersonTest.java
@Test
public void testCount(){
ApplicationContext context= new ClassPathXmlApplicationContext("bean1.xml");
PersonService personService = context.getBean("personService", PersonService.class);
personService.count();
}
结果
批量插入数据成功
⑤批量修改数据库中的数据
PersonService.java
//批量修改数据
public void batchModify(List<Object[]>batchArgs)
{
personDao.batchModify(batchArgs);
}
PersonDaoImpl.java
@Override
public void batchModify(List<Object[]> batchArgs) {
String sql="update information set sex=?,age=?where name=?";
jdbcTemplate.batchUpdate(sql, batchArgs);
}
PersonTest.java
@Test
public void testBatchModify(){
ApplicationContext context= new ClassPathXmlApplicationContext("bean1.xml");
PersonService personService = context.getBean("personService", PersonService.class);
List<Object[]>batchArgs=new ArrayList<>();
Object[]o1={"female11","26","Mary"};
Object[]o2={"male11","28","Peter"};
Object[]o3={"male11","27","James"};
batchArgs.add(o1);
batchArgs.add(o2);
batchArgs.add(o3);
personService.batchModify(batchArgs);
}
结果
批量修改成功
⑥批量删除数据库数据
PersonService.java
//批量删除数据
public void batchDelete(List<Object[]>batchArgs)
{
personDao.batchDelete(batchArgs);
}
PersonDaoImpl.java
@Override
public void batchDelete(List<Object[]> batchArgs) {
String sql="delete from information where name=?";
jdbcTemplate.batchUpdate(sql, batchArgs);
}
PersonTest.java
@Test
public void testBatchDelete(){
ApplicationContext context= new ClassPathXmlApplicationContext("bean1.xml");
PersonService personService = context.getBean("personService", PersonService.class);
List<Object[]>batchArgs=new ArrayList<>();
Object[]o1={"Mary"};
Object[]o2={"Peter"};
Object[]o3={"James"};
batchArgs.add(o1);
batchArgs.add(o2);
batchArgs.add(o3);
personService.batchDelete(batchArgs);
}
结果
批量删除成功
附工程源代码
链接:https://pan.baidu.com/s/1A96OquDHIO8a3Cpd7c8Jrg
提取码:2br2