> 文章列表 > springboot 数据库应用

springboot 数据库应用

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

免费商用字体