先展示我的文件,好方便讲解
1.创建一个简单的Spring Boot项目。
我自己创建的是用户的一个项目
public class User {
private Integer id;
private String name;
public User(Integer id, String name) {
this.id = id;
this.name = name;
}
}
2. 配置项目的依赖,包括Spring Boot和MySQL连接驱动。
一定要在<dependency></dependency>的大标签里写 然后在标签里的最后写 方便找
代码如下: <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency>
3. 使用JdbcTemplate创建一个MySQL数据库,并设计一个适当的数据表。
在resourcs的db包里的data.sql创建如下:
drop table if exists user; create table user( id int(12) auto_increment primary key , name varchar(100) )engine=InnoDB;
在resourcs的db包里的schema.sql插入一下用户名:
insert into user(name) values ('海克斯'); insert into user(name) values ('大师傅'); insert into user(name) values ('何人斯'); insert into user(name) values ('荣贵萨'); insert into user(name) values ('牛飞尔'); insert into usSer(name) values ('浩然');
4. 编写Spring Boot的配置文件,配置JdbcTemplate与MySQL的连接信息。
注:有可能你的数据库和我的数据库地址名字不一样,看情况修改
5. 在项目中创建一个DAO类,使用JdbcTemplate完成对数据库的增删改查操作。
这里就是你对数据库的应用怎么样了
@Service
public class UserDao {
JdbcTemplate template;
@Autowired
public UserDao(JdbcTemplate template){
this.template=template;
}
public List<User> getAll(){
String sql="select * from user";
return template.query(sql,(rs,rowNum)->{
User entity=new User();
entity.setId(rs.getInt("id"));
entity.setName(rs.getString("name"));
return entity;
});
}
public User getById(Integer id){
String sql="select * from user where id=?";
return template.queryForObject(sql
,new Object[]{id}
,new BeanPropertyRowMapper<>(User.class));
}
public int add(User entity){
String sql="insert into user(name) values(?)";
return template.update(sql,entity.getName());
}
public int update(User entity){
String sql="update user set name=? where id=?";
return template.update(sql,entity.getName(),entity.getId());
}
public int delete(Integer id){
String sql="delete from user where id=?";
return template.update(sql,id);
}
}
6. 在项目中创建一个Controller类,提供相应的接口访问数据库操作。
@RestController
@RequestMapping("/user")
public class UserController {
UserDao dao;
@Autowired
public UserController(UserDao dao){
this.dao=dao;
}
@RequestMapping("/list")
public List<User> getAll(){
return dao.getAll();
}
@RequestMapping("/getById/{userId}")
public User findById(@PathVariable("userId") Integer id){
return dao.getById(id);
}
@RequestMapping("/insert")
public String insert(){
User entity=new User();
entity.setName("测试用户名");
return dao.add(entity)>0?"添加成功":"fail";
}
@RequestMapping("/edit")
public String edit(){
User entity=new User();
entity.setId(9);
entity.setName("测试用户名-update");
return dao.update(entity)>0?"修改成功":"fail";
}
@RequestMapping("/delete/{userId}")
public String delete(@PathVariable("userId") Integer id){
return dao.delete(id)>0?"删除成功":"找不到数据";
}
}
7. 实现以下功能:
- 插入一条数据到数据库。
- 查询数据库中的所有数据。
- 根据条件查询数据库中的数据。
- 更新数据库中的数据。
后面发现上面更新数据是老师的一个坑,更新失败了,然后自己琢磨了一下之前上课学过的,修改了一下可以运行了,简简单单几句话就可以解决,就是重新写了,哈哈哈哈哈
@PostMapping("/edit")
public String edit(@RequestBody User entity){
return dao.update(entity)>0?"修改成功":"fail";
}
- 删除数据库中的数据。
已经删除掉第一条数据了
![](https://img-blog.csdnimg.cn/c0c3dd6e9416456a884c2811b734da1b.png)
最后小结:
只要每次写项目的时候都是一步一步来的思路就快很多,出现bug的时候使用断点也如果找,如果实在找不到,直接换一种方法来写。