共计 2430 个字符,预计需要花费 7 分钟才能阅读完成。
简介
JDBC 是最原根本的连贯数据源的形式,在 springboot 中所有和数据源有关系的都在 Spring Data
家族中,所以咱们看看 springboot 中如何应用 JDBC 来实现对数据库的增删改查操作。
简略应用
- 引入依赖
这里咱们只引入根本的依赖就好,创立一个 springboot 我的项目(这里版本是 2.1.6),而后增加以下依赖:
<dependencies>
<!--jdbc-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--mysql 驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtimen</scope>
</dependency>
<!--web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--test-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
- 编写配置文件
这里咱们须要把数据库的根本连贯信息配置好
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
## 这里如果不配置时区可能会报错,所以配置时区:serverTimezone=UT
url: jdbc:mysql://localhost:3306/study_springboot?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
username: root
password: root
- 编写测试类
@RunWith(SpringRunner.class)
@SpringBootTest
public class BaseTest {
@Autowired
private DataSource dataSource;
@Test
public void load(){
// 打印出:class com.zaxxer.hikari.HikariDataSource
System.out.println(dataSource.getClass());
}
}
实现增删改查
spring boot 中有很多的xxxTemplate
,也就是给咱们默认配置了 很多的模板,不便咱们进行开发,比方下面测试中的 JdbcTemplate
,spring boot 曾经给咱们封装好办法了,咱们只有调用就好,上面是增删改查的案例:
@RestController
public class TestController {
@Autowired
private JdbcTemplate jdbcTemplate;
@GetMapping("/userList")
public List<Map<String, Object>> getUserList(){
String sql = "select * from study_springboot.user";
List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
return maps;
}
@GetMapping("/addUser")
public String addUser(){String sql = "insert into study_springboot.user(id, name, password) values('1','zhangsan','qqqq')";
jdbcTemplate.update(sql);
return "add success";
}
/**
* 能够通过占位符实现入参
* @param id
* @return
*/
@GetMapping("/updateUser/{id}")
public String updateUser(@PathVariable("id") int id){
String sql = "update study_springboot.user set name =?, password = ? where id ="+id;
// 封装占位符
Object[] objects = new Object[2];
objects[0] = "李四";
objects[1] = "pppppp";
jdbcTemplate.update(sql, objects);
return "update success";
}
@GetMapping("/deleteUser/{id}")
public String deleteUser(@PathVariable("id") int id){
String sql = "delete from study_springboot.user where id = ?";
// int 类型也是一个 object,所以这样传参也是能够的
jdbcTemplate.update(sql, id);
return "delete success";
}
}
下面的案例只是展现根本的操作,然而实在我的项目中是不会这样写的,个别还是整合 MyBatis 或者 JPA 来实现操作数据源。
正文完