上一节我们讲了 spring-boot-jpa 框架
spring-boot-jpa:在原有 hibernate 框架的基础上在做继续包装,简化。
这节我们介绍 如何在 Spring boot 中使用模板技术。
这里最简单的 jdbcTemplate 使用:
1、在pom.xml 添加依赖包。
2、创建实体对象 例如 Person:
3、创建数据处理层 PersonDao.
4、创建业务逻辑层 PersonService。
5、创建对外访问接口 PersonController。
备注:application.properties配置信息查看 上一篇文章
1、首先添加依赖包: 这里使用 mysql
只需要新增 sprint-boot-jpa 和 对于的数据库驱动包。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
2、创建实体对象 Person:
@Entity
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
private String name;
private String orderItem;
... ... set get... ...
}
3、创建数据处理层 PersonDao.
@Repository //这是一个持久化操作
public class PersonDao {
@Resource
private JdbcTemplate jdbcTemplate;
// 增加
public int savePerson(Person p){
String sql = "INSERT INTO Person(name, order_item) VALUES(?,?)";
return jdbcTemplate.update(sql, new Object[]{p.getName(),p.getOrderItem()});
}
//批量增加
public void BatchInsertPerson(List<Person> personList) {
String sql = "INSERT INTO Person(name, order_item) VALUES(?,?)";
List<Object[]> batchArgs = new ArrayList<>();
for(int i=0; i<personList.size(); i++){
batchArgs.add(new Object[]{personList.get(i).getName(),personList.get(i).getOrderItem()});
}
jdbcTemplate.batchUpdate(sql, batchArgs);
}
//改
public int updatePersonById(int id,Person p) {
String sql = "UPDATE person SET name = ? , order_item=? WHERE id = ?";
return jdbcTemplate.update(sql,p.getName(),p.getOrderItem(), id);
}
//删除
public int deletePersonById(int id) {
String sql = "delete from person where id = ?";
return jdbcTemplate.update(sql, id);
}
//查
public Person getPersonById(int id) {
String sql = "select * from person where id=?";
RowMapper<Person> rowMap = new BeanPropertyRowMapper<Person>(Person.class);
Person p = jdbcTemplate.queryForObject(sql,new Object[]{id},rowMap);
return p;
}
//查所有
public List<Person> getAll() {
String sql = "select * from person";
RowMapper<Person> rowMap = new BeanPropertyRowMapper<Person>(Person.class);
return jdbcTemplate.query(sql, rowMap);
}
}
4、创建 服务层 PersonService
@Service
public class PersonService {
@Resource
private PersonDao mPersonDao;
//查询所有
public List<Person> getPersonList(){
return mPersonDao.getAll();
}
//查询
public Person getPersonById(int id) {
return mPersonDao.getPersonById(id);
}
//保存
public int insetPerson(Person p) {
return mPersonDao.savePerson(p);
}
//更新
public int updatePerson(int id,Person p){
return mPersonDao.updatePersonById(id,p);
}
//删除
public int deletePersonById(int id) {
return mPersonDao.deletePersonById(id);
}
}
5、创建对外访问接口 TemplatePersonController 。
@RestController
@RequestMapping("/template")
public class TemplatePersonController {
@Resource
public PersonService mPersonService;
@RequestMapping("/getAll")
public List<Person> getPersons(String name){
return mPersonService.getPersonList();
}
@RequestMapping("/save")
public int save(String name,String orderItem){
return mPersonService.insetPerson(new Person(name,orderItem));
}
@RequestMapping("/delete")
public int deleteById(int id){
return mPersonService.deletePersonById(id);
}
@RequestMapping("/update")
public int update(int id,String name,String orderItem){
return mPersonService.updatePerson(id,new Person(name,orderItem));
}
@RequestMapping("/getPersonById")
public Person getPersonByName(int id){
return mPersonService.getPersonById(id);
}
}
测试:
http://127.0.0.1:8080/template/save?name=zhangsan&orderItem=123
http://127.0.0.1:8080/template/update?id=1&name=lishi&orderItem=321
http://127.0.0.1:8080/template/getAll
http://127.0.0.1:8080/template/update?id=1&name=&orderItem=22222