宝贝腿开大点我添添你视频男男,中文字幕熟女人妻av一区二区三区,爱色成人网,大地资源高清播放在线观看在线电影在线观看 ,777米奇影视第四色

集團站切換校區(qū)

驗證碼已發(fā)送,請查收短信

復制成功
微信號:togogoi
添加微信好友, 詳細了解課程
已復制成功,如果自動跳轉(zhuǎn)微信失敗,請前往微信添加好友
打開微信
圖標

學習文章

當前位置:首頁 > >學習文章 > >

【Java技術(shù)】?SpringBoot整合JDBC

發(fā)布時間: 2020-07-02 09:43:21

Java技術(shù)】?SpringBoot整合JDBC

一、 JDBC簡介

Java數(shù)據(jù)庫連接,(Java Database Connectivity,簡稱JDBC)是Java語言中用來規(guī)范客戶端程序如何來訪問數(shù)據(jù)庫的應用程序接口,提供了諸如查詢和更新數(shù)據(jù)庫中數(shù)據(jù)的方法。JDBC也是Sun Microsystems的商標。我們通常說的JDBC是面向關(guān)系型數(shù)據(jù)庫的。


二、 使用JDBC操作數(shù)據(jù)庫的基本步驟

加載驅(qū)動。

建立鏈接

創(chuàng)建數(shù)據(jù)庫操作對象

發(fā)送sql語句

解析sql語句

參數(shù)解析

資源回收

通過上面的執(zhí)行流程使用JDBC來操作數(shù)據(jù)庫是比較復雜的。

SpringBoot提供了對JDBC封裝的啟動器包,簡化了JDBC的開發(fā)流程,


三、 在SpringBoot項目中引入JDBC依賴實現(xiàn)對數(shù)據(jù)庫的操作

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


# 配置連接數(shù)據(jù)庫

datasource:

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

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

 username: root

 password: 123456aB

3. 編寫與數(shù)據(jù)庫對應的實體類

@Data

public class TbUser {

 private Integer id;

 private String username;

 private String password;

 private String role;

}

4. 編寫dao層

jdbcTemplate.update適合于insert 、update和delete操作

jdbcTemplate.queryForObject用于查詢單條記錄返回結(jié)果

jdbcTemplate.query用于查詢結(jié)果列表

BeanPropertyRowMapper可以將數(shù)據(jù)庫字段的值向?qū)ο笥成洌瑵M足駝峰標識也可以自動映射。

@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   //事務管理  當出現(xiàn)異常時,事務回滾,數(shù)據(jù)不會插入到數(shù)據(jù)庫中

 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;


 //獲取數(shù)據(jù)源

 @Test

 public void getDataSource() throws SQLException {

     log.info("獲取到的數(shù)據(jù)源是:{}",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);

 }

}

上一篇: 云計算_存儲虛擬化之存儲資源架構(gòu)

下一篇: 云計算存儲虛擬化之virtio

十九年老品牌
微信咨詢:gz_togogo 咨詢電話:18127429208 咨詢網(wǎng)站客服:在線客服

相關(guān)課程推薦

在線咨詢 ×

您好,請問有什么可以幫您?我們將竭誠提供最優(yōu)質(zhì)服務!