4.跟我学SpringBoot-整合JdbcTemplate

字数 411阅读 362

在学习一项应用开发技术的入门,通俗来讲就是学习增删改查,如何连接数据库,如果写增删改查代码,后续的就是根据具体业务来编写代码了。

这里就以入门级的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,点击回车:

新增.png

在地址栏输入:http://localhost:8080/update?id=1&name=springboot2,点击回车:

修改.png

在地址栏输入:http://localhost:8080/get?id=1,点击回车:

获取.png

在地址栏输入:http://localhost:8080/list,点击回车:

列表.png

总结

这里面调用接口都是直接get请求,实际生产中,都是通过Post方式传递Json格式参数,返回也是Json格式。

这只是一个简单的利用jdbcTemplate来实现的增删改查的例子,非常简单,通过浏览器就能进行测试。

源码下载

本例子详细源码

推荐阅读更多精彩内容