当你在开发Spring Boot项目时,经常需要与数据库进行交互。
而JdbcTemplate是Spring框架中一个非常强大的数据库访问工具,可以简化与数据库的交互过程。本篇博客将介绍如何在Spring Boot项目中使用JdbcTemplate与MySQL集成。
在开始之前,我们需要先创建一个简单的Spring Boot项目。
可以使用Spring Initializr来快速创建一个基本的Spring Boot项目骨架。
在创建项目时,我们需要选择适当的依赖,包括Spring Boot和MySQL连接驱动。
接下来,我们需要在项目的pom.xml文件中配置相关的依赖。
首先,我们需要添加Spring Boot的依赖项,以及MySQL连接驱动的依赖项。这样,我们就可以在项目中使用Spring Boot和MySQL了。
在项目中使用JdbcTemplate之前,我们需要先在MySQL数据库中创建一个适当的数据表。
可以使用MySQL的客户端工具(如MySQL Workbench)来创建数据库和表。
在创建表时,我们需要定义适当的列和约束,以满足应用程序的需求。
接下来,我们需要在Spring Boot的配置文件中配置JdbcTemplate与MySQL的连接信息。
在application.properties文件中,我们可以指定数据库的URL、用户名、密码等属性。同时,我们还需要在配置文件中启用JdbcTemplate的自动配置。
现在,我们可以在项目中创建一个DAO类,使用JdbcTemplate完成对数据库的增删改查操作。
在DAO类中,我们可以定义一些方法来执行SQL查询和更新操作。
JdbcTemplate提供了一些方便的方法,如queryForObject、query、update等,用于执行不同类型的操作。
最后,我们可以创建一个Controller类,提供相应的接口来访问数据库操作。
在Controller类中,我们可以定义一些请求处理方法,用于处理来自客户端的请求。
这些方法可以调用DAO类中的方法来执行数据库操作,并将结果返回给客户端。
具体代码如下:
1、实体类
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CarBrand {
private Integer id;
private String name;
private String country;//国家
public CarBrand(String name,String country){
this.country = country;
this.name = name;
}
}
2、Dao层代码
查询全部
根据指定字段查询
新增
根据id删除
根据id修改
@Service
public class CarBrandDao {
@Autowired
private JdbcTemplate template;
//获取所有品牌列表
public List<CarBrand> getAll(){
String sql="select * from CarBrand";
return template.query(sql,(rs,rowNum) ->{
CarBrand entity=new CarBrand();
entity.setId(rs.getInt("id"));
entity.setName(rs.getString("name"));
entity.setCountry(rs.getString("country"));
return entity;
});
}
//根据品牌获取信息
public List<CarBrand> getByName(String name){
String sql="select * from carBrand where name=?";
return Collections.singletonList(template.queryForObject(sql
,new Object[]{name}
,new BeanPropertyRowMapper<>(CarBrand.class)));
}
//新增数据
public int add(CarBrand entity){
String sql="insert into carBrand(name,country) values(?,?)";
return template.update(sql,entity.getName(),entity.getCountry());
}
//修改数据
public int update(CarBrand carBrand){
String sql="update carBrand set name=?,country=? where id=?";
return template.update(sql,carBrand.getName(),carBrand.getCountry(),carBrand.getId());
}
//删除数据
public int delete(Integer id){
String sql="delete from carBrand where id=?";
return template.update(sql,id);
}
}
3、控制层代码
GetMapping 表示该接口为查询类方法
PostMapping 表示该接口为新增类方法
DeleteMapping 表示该接口为 删除类的方法
PutMapping 表示该接口为 修改类的方法
@RestController
@RequestMapping("/car")
public class CarBrandController {
@Autowired
private CarBrandDao carBrandDao;
//查询某汽车品牌结果
@GetMapping("/getAll/{name}")
public List<CarBrand> getAllName(@PathVariable("name") String name){
return carBrandDao.getByName(name);
}
//汽车品牌列表结果截图;
@GetMapping("/get")
public List<CarBrand> get(){
return carBrandDao.getAll();
}
//新增汽车品牌数据
@PostMapping("/insert")
public int getAll(@RequestBody CarBrand carBrand){
return carBrandDao.add(carBrand);
}
//删除汽车品牌数据
@DeleteMapping("/delete/{id}")
public int getAll(@PathVariable("id") int id){
return carBrandDao.delete(id);
}
//修改汽车品牌数据
@PutMapping("/update")
public int update(@RequestBody CarBrand carBrand){
return carBrandDao.update(carBrand);
}
}
注意:
访问参数如果是在路径后面则应该添加该对应方法上注解@PathVariable("路径后的参数")
访问参数如果是在body中则应该使用json格式,应在方法参数前添加注解"@RequestBody"表明,从body中获取参数,否则将无法获取传递过来的参数
代码测试如下:
通过按照以上步骤进行操作,我们就可以在Spring Boot项目中成功集成JdbcTemplate与MySQL,并实现对数据库的增删改查操作。
这样,我们可以更方便地进行数据库操作,提高开发效率。