在学习一项应用开发技术的入门,通俗来讲就是学习增删改查,如何连接数据库,如果写增删改查代码,后续的就是根据具体业务来编写代码了。
这里就以入门级的JdbcTemplate来实现简单的增删改查。
1.新建数据表
CREATE TABLE `staff` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
数据表很简单,只有两个字段,id和name
2.新增maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.29</version>
</dependency>
这里多了spring-boot-starter-jdbc
的依赖,同时多了mysql的链接及对应的数据连接池Druid
3.新增数据库配置,application.ymd
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/springboot
username: root
password: root
4.新增实体类Staff.java
public class Staff {
private int id;//员工id
private String name;//员工姓名
@Override
public String toString() {
final StringBuffer sb = new StringBuffer("Staff{");
sb.append("id=").append(id);
sb.append(", name='").append(name).append('\'');
sb.append('}');
return sb.toString();
}
// get set 方法省略
}
5.新增dao访问类StaffDao.java
@Repository
public class StaffDao {
@Autowired
private JdbcTemplate jdbcTemplate;
public int add(Staff staff) {
return jdbcTemplate.update("insert into staff(name) values(?)",
staff.getName());
}
public int update(Staff staff) {
return jdbcTemplate.update("update staff SET name=? WHERE id=?",
staff.getName(), staff.getId());
}
public int delete(int id) {
return jdbcTemplate.update("DELETE from staff where id=?", id);
}
public Staff get(int id) {
List<Staff> list = jdbcTemplate.query("select * from staff where id = ?", new Object[]{id}, new BeanPropertyRowMapper(Staff.class));
if (list != null && list.size() > 0) {
return list.get(0);
} else {
return null;
}
}
public List<Staff> list() {
List<Staff> list = jdbcTemplate.query("select * from staff", new Object[]{}, new BeanPropertyRowMapper(Staff.class));
return list;
}
}
这一块很简单,就是增删改查,不涉及任何业务。
6.controller调用StaffController.java
这里为了简化,没有写service,直接就是controller直接调用dao的方法。
@RestController
public class StaffController {
@Autowired
private StaffDao staffDao;
@RequestMapping("/add")
public String add(Staff staff) {
staffDao.add(staff);
return "新增成功";
}
@RequestMapping("/update")
public String update(Staff staff) {
staffDao.update(staff);
return "修改成功";
}
@RequestMapping("/delete")
public String delete(int id) {
staffDao.delete(id);
return "删除成功";
}
@RequestMapping("/get")
public String get(int id) {
Staff staff = staffDao.get(id);
return staff.toString();
}
@RequestMapping("/list")
public String list() {
List<Staff> list = staffDao.list();
return list.toString();
}
}
7. 测试
在地址栏输入:http://localhost:8080/add?name=springboot
,点击回车:
在地址栏输入:http://localhost:8080/update?id=1&name=springboot2
,点击回车:
在地址栏输入:http://localhost:8080/get?id=1
,点击回车:
在地址栏输入:http://localhost:8080/list
,点击回车:
总结
这里面调用接口都是直接get请求,实际生产中,都是通过Post方式传递Json格式参数,返回也是Json格式。
这只是一个简单的利用jdbcTemplate来实现的增删改查的例子,非常简单,通过浏览器就能进行测试。