集团站切换校区

验证码已发送,请查收短信

复制成功
微信号:togogoi
添加微信好友, 详细了解课程
已复制成功,如果自动跳转微信失败,请前往微信添加好友
打开微信
图标

学习文章

当前位置:首页 > >学习文章 > >

【Java技术】SpringBoot整合JDBC

发布时间: 2020-06-28 16:32:00

Java技术培训】SpringBoot整合JDBC

一、 JDBC简介

Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。我们通常说的JDBC是面向关系型数据库的。


二、 使用JDBC操作数据库的基本步骤

加载驱动。

建立链接

创建数据库操作对象

发送sql语句

解析sql语句

参数解析

资源回收

通过上面的执行流程使用JDBC来操作数据库是比较复杂的。

SpringBoot提供了对JDBC封装的启动器包,简化了JDBC的开发流程,


三、 在SpringBoot项目中引入JDBC依赖实现对数据库的操作

1. 引入必须的依赖包<dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-jdbc</artifactId>

</dependency>

<dependency>

    <groupId>mysql</groupId>

    <artifactId>mysql-connector-java</artifactId>

</dependency>2. 修改application.yml编写配置文件server:

port: 9001


spring:

application:

 name: springboot-jdbc


# 配置连接数据库

datasource:

 driver-class-name: com.mysql.cj.jdbc.Driver

 url: jdbc:mysql://localhost:3306/springboot?serverTimezone=UTC

 username: root

 password: 123456aB3. 编写与数据库对应的实体类@Data

public class TbUser {

 private Integer id;

 private String username;

 private String password;

 private String role;

}

4. 编写dao层

l jdbcTemplate.update适合于insert 、update和delete操作

l jdbcTemplate.queryForObject用于查询单条记录返回结果

l jdbcTemplate.query用于查询结果列表

l BeanPropertyRowMapper可以将数据库字段的值向对象映射,满足驼峰标识也可以自动映射。@Repository

public class TbUserDao {


 @Resource

 private JdbcTemplate jdbcTemplate;


 //保存用户

 public void saveUser(TbUser user){

     jdbcTemplate.update("insert into tb_user(username,password,role) values (?,?,?)",

             user.getUsername(),

             user.getPassword(),

             user.getRole());

 }


 //删除用户

 public void deleteUserById(Integer id){

     jdbcTemplate.update("delete from tb_user where id =?",new Object[]{id});

 }


 //更新用户信息

 public void updateUserById(TbUser tbUser){

     jdbcTemplate.update("update tb_user set username = ?,password = ?,role = ?  where id = ?",

             tbUser.getUsername(),

             tbUser.getPassword(),

             tbUser.getRole(),

             tbUser.getId());

 }


 //id查询

 public TbUser findUserById(Integer id){

     return (TbUser) jdbcTemplate.queryForObject("select * from tb_user where id = ?", new Object[]{id}, new BeanPropertyRowMapper(TbUser.class));

 }


 //查询所有

 public List<TbUser> findAll(){

     List<TbUser> tbUserList = jdbcTemplate.query("select * from tb_user", new BeanPropertyRowMapper<>(TbUser.class));

     return tbUserList;

 }

}

5. 编写service层public interface TbUserService {


 TbUser saveUser(TbUser tbUser);


 void deleteUserById(Integer id);


 void updateUserById(TbUser tbUser);


 TbUser findUserById(Integer id);


 List<TbUser> findAll();

}

6. 编写serviceImpl@Service

public class TbUserServiceImpl implements TbUserService {


 @Resource

 TbUserDao tbUserDao;


 @Override

 @Transactional   //事务管理  当出现异常时,事务回滚,数据不会插入到数据库中

 public TbUser saveUser(TbUser tbUser) {

     tbUserDao.saveUser(tbUser);

    //int a = 3/0;

     return tbUser;

 }


 @Override

 public void deleteUserById(Integer id) {

     tbUserDao.deleteUserById(id);

 }


 @Override

 public void updateUserById(TbUser tbUser) {

     tbUserDao.updateUserById(tbUser);

 }


 @Override

 public TbUser findUserById(Integer id) {

     return tbUserDao.findUserById(id);

 }


 @Override

 public List<TbUser> findAll() {

     return tbUserDao.findAll();

 }

}

7. 编写单元测试@SpringBootTest

@Slf4j

class SpringbootjdbcApplicationTests {


 private Logger LOGGER = LoggerFactory.getLogger(this.getClass());


 @Resource

 TbUserService tbUserService;


 @Resource

 DataSource dataSource;


 //获取数据源

 @Test

 public void getDataSource() throws SQLException {

     log.info("获取到的数据源是:{}",dataSource);

     Connection con = dataSource.getConnection();

     log.info("获取到的连接信息是:{}",con);

 }


 @Test

 void contextLoads() {

 }


 @Test

 void  saveUserTest(){

     TbUser tbUser = new TbUser();

     tbUser.setUsername("qtd");

     tbUser.setPassword("23456789");

     tbUser.setRole("Oracle");

     TbUser user = tbUserService.saveUser(tbUser);

     log.info("操作成功,获取到的信息是:{}",user);

 }


 @Test

 void deleteUserByIdTest(){

     tbUserService.deleteUserById(4);

 }


 @Test

 void updateUserById(){

     TbUser tbUser = new TbUser();

     tbUser.setId(5);

     tbUser.setUsername("qtdu");

     tbUser.setPassword("23456789u");

     tbUser.setRole("Oracleu");

     tbUserService.updateUserById(tbUser);

 }


 @Test

 void  findUserById(){

     TbUser user = tbUserService.findUserById(7);

     log.info("操作成功,获取到的信息是:{}",user);

 }

}

上一篇: 【人工智能】机器学习训练方法—梯度下降

下一篇: 【Java技术】SpringBoot入门基础

十五年老品牌
微信咨询:togogoi 咨询电话:18922156670 咨询网站客服:在线客服

相关课程推荐

在线咨询 ×

您好,请问有什么可以帮您?我们将竭诚提供最优质服务!