以spring-boot-starter-data-jdbc加载连接MySQL数据库
1、添加依赖
在pom.xml里面导入数据库操作依赖和数据驱动
<!--导入数据库操作依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jdbc</artifactId> </dependency> <!--导入数据驱动--> <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <scope>runtime</scope> <version>8.0.30</version> </dependency>
2、配置数据源
在application.yaml文件里加入数据源连接信息
#数据源连接信息 spring: datasource: username: root password: root url: jdbc:mysql://127.0.0.1:3306/springdev driver-class-name: com.mysql.cj.jdbc.Driver
3、JdbcTemplate应用
3.1、JdbcTemplate提供的方法
3.1.1、execute方法
可以用于执行任何SQL语句,一般用于执行DDL语句。
3.1.2、update方法和batchUpdate方法
update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批量处理相关语句。
3.1.3、query方法及queryForXXX方法
用于执行查询相关语句。
3.1.4、call方法
用于执行存储过程、函数相关语句。
3.2、从数据库中读取数据到实体对象
3.2.1、定义TUser实体类
import lombok.Data; @Data public class TUser { private int id; private String user_name; private String pwd; }
3.2.2、读取单个对象
import com.hqyj.springboot.entity.TUser; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; @Slf4j @SpringBootTest class UserTests { @Autowired private JdbcTemplate jdbcTemplate; @Test void selectOne() { String sql="select id,user_name,pwd from t_user where id=666"; RowMapper<TUser> rowMapper=new BeanPropertyRowMapper<TUser>(TUser.class); TUser user= jdbcTemplate.queryForObject(sql, rowMapper); log.info("Hello {}" , user); } }
输出:
2023-04-04 18:01:07.095 INFO 8556 — [ main]
com.hqyj.springboot.UserTests : Hello TUser(id=666,
user_name=lisi, pwd=123)
3.3、增加数据
@Test void insertOne() { String sql="insert into t_user (user_name,pwd) values (?,?)"; int count= jdbcTemplate.update(sql, new Object[]{"小明","q123456"}); log.info("count {}" , count); }
输出:
2023-04-04 18:07:49.285 INFO 1020 — [ main]
com.hqyj.springboot.UserTests : count 1
3.4、删除数据
@Test void delete() { String sql="delete from t_user where id=?"; int count= jdbcTemplate.update(sql,667); log.info("count {}" , count); }
输出:
2023-04-04 18:07:49.285 INFO 1020 — [ main]
com.hqyj.springboot.UserTests : count 1
3.5、修改数据
@Test void update() { String sql="update t_user set user_name=?,pwd=? where id=?"; int count= jdbcTemplate.update(sql,new Object[]{"小王","q12345",667}); log.info("count {}" , count); }
输出:
2023-04-04 18:12:56.192 INFO 15236 — [ main]
com.hqyj.springboot.UserTests : count 1