springboot 数据库应用
以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: rootpassword: rooturl: jdbc:mysql://127.0.0.1:3306/springdevdriver-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 {@Autowiredprivate JdbcTemplate jdbcTemplate;@Testvoid 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、增加数据
@Testvoid 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、删除数据
@Testvoid 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、修改数据
@Testvoid 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