jdbctemplate mysql 配置_SpringBoot - 使用JdbcTemplate操作数据库1(安装配置,基本用法)...

一、基本介绍

1,什么是 JdbcTemplate

JdbcTemplate 是 Spring 提供的一套 JDBC 模版框架,利用 AOP 技术来解决直接使用 JDBC 时大量重复代码的问题。

JdbcTemplate 虽然没有 MyBatis 那么灵活,但是比直接使用 JDBC 要方便很多。

2,安装配置

(1)首先编辑 pom.xml文件,添加相关依赖:

spring-boot-starter-jdbc:提供对 JDBC 数据库的支持

mysql-connector-java:MySQL数据库驱动

druid:Druid是阿里巴巴开发的号称为监控而生的数据库连接池,也是目前最好的数据库连接池。

org.springframework.boot

spring-boot-starter-jdbc

mysql

mysql-connector-java

com.alibaba

druid

1.1.9

(2)接着在 application.properties 中配置数据库连接信息:

spring.datasource.type=com.alibaba.druid.pool.DruidDataSourcespring.datasource.url=jdbc:mysql://localhost:3306/hangge?serverTimezone=Asia/Shanghaispring.datasource.username=rootspring.datasource.password=hangge1234

二、基本用法

1,创建实体类

(1)假设我们数据库表结构如下:

b9864af951b5a7558dff1ce85ce65bbc.png

(2)创建对应的 User 实体类:

@Setter

@Getter

@NoArgsConstructor

@ToString

public class User {

private Integer id;

private String userName;

private String passWord;

}

2,创建数据库访问层

接着创建 UserDao,具体内容如下:

(1)由于前面我们已经添加了spring-jdbc 相关的依赖,JdbcTemplate 会被注册到 Spring 容器中,因此可以直接注入 JdbcTemplate 使用:

增删改三种类型的操作主要使用 update 和 batchUpdate 方法来完成。

query 和 queryForObject 方法中主要用来完成查询功能。

execute 方法可以用来执行任意的 SQL、call 方法来调用存储过程。

(2)在执行查询操作时,需要有一个 RowMapper 将查询出来的列和实体类中的属性一一对应起来:

如果列名和属性名都是相同的,那么可以直接使用 BeanPropertyRowMapper

如果列名和属性名不同,就需要开发者自己实现 RowMapper 接口,将列和实体类属性一一对应起来。

@Repository

public class UserDao {

@Autowired

JdbcTemplate jdbcTemplate;

// 新增数据

public int addUser(User user) {

return jdbcTemplate.update("INSERT INTO users(username, password) VALUE (?, ?)",

user.getUserName(), user.getPassWord());

}

// 修改数据

public int updateUser(User user) {

return jdbcTemplate.update("UPDATE users SET username=?, password=? WHERE id=?",

user.getUserName(), user.getPassWord(), user.getId());

}

// 删除数据

public int deleteUserById(Integer id) {

return jdbcTemplate.update("DELETE FROM users WHERE id=?", id);

}

// 获取单条数据

public User getUserById(Integer id) {

return jdbcTemplate.queryForObject("SELECT * FROM users WHERE id=?",

new BeanPropertyRowMapper<>(User.class), id);

}

// 获取多条数据

public List getAllUsers() {

return jdbcTemplate.query("SELECT * FROM users",

new BeanPropertyRowMapper<>(User.class));

}

}

3,创建 Controller

我们在 Controller 中通过调用 UserDao 进行数据的增、删、改、查操作。

@RestController

public class HelloController {

@Autowired

UserDao userDao;

@RequestMapping("/test")

public void test(){

// 新增数据

User user1 = new User();

user1.setUserName("hangge");

user1.setPassWord("123456");

int i1 = userDao.addUser(user1);

System.out.println("插入一条数据>>>" + i1);

// 修改数据

User user2 = new User();

user2.setId(1);

user2.setPassWord("888888");

int i2 = userDao.updateUser(user2);

System.out.println("更新一条数据>>>" + i2);

// 删除数据

int i3 = userDao.deleteUserById(12);

System.out.println("删除一条数据>>>" + i3);

// 查询单条数据

User user4 = userDao.getUserById(1);

System.out.println("查询1条数据>>>" + user4.toString());

// 查询多条数据

List users = userDao.getAllUsers();

System.out.println("查询多条数据>>>" + users);

return;

}

}

4,运行测试

在浏览器中访问 http://localhost:8080/test 地址,可以看到控制台打印出的日志如下:

a096b417945de66d6944d98e9cc38e0b.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值