<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      atwood-pan

       

      Spring Boot對接Oracle數據庫

      Spring Boot對接Oracle數據庫

      最近學習了Oracle數據庫,那么如何使用Spring Boot和MyBatis Plus對接Oracle數據庫呢?
      這就有了這篇隨記,具體流程如下

      1、創建Maven工程

      創建一個空的Maven工程,導入如下依賴:

      <?xml version="1.0" encoding="UTF-8"?>
      <project xmlns="http://maven.apache.org/POM/4.0.0"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
          <modelVersion>4.0.0</modelVersion>
          <parent>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-parent</artifactId>
              <version>2.3.7.RELEASE</version>
              <relativePath/>
          </parent>
          <groupId>org.example</groupId>
          <artifactId>oracle-init</artifactId>
          <version>1.0-SNAPSHOT</version>
      
          <properties>
              <maven.compiler.source>8</maven.compiler.source>
              <maven.compiler.target>8</maven.compiler.target>
              <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
          </properties>
          <dependencies>
              <dependency>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-starter</artifactId>
                  <version>2.3.7.RELEASE</version>
              </dependency>
              <dependency>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-starter-test</artifactId>
                  <version>2.3.7.RELEASE</version>
              </dependency>
              <!--    Oracel11g與ojdbc5/ojdbc6版本匹配    -->
              <dependency>
                  <groupId>com.oracle.database.jdbc</groupId>
                  <artifactId>ojdbc6</artifactId>
                  <version>11.2.0.4</version>
              </dependency>
              <dependency>
                  <groupId>org.projectlombok</groupId>
                  <artifactId>lombok</artifactId>
                  <version>1.16.10</version>
                  <scope>provided</scope>
              </dependency>
      
      <!--        <dependency>-->
      <!--            <groupId>com.oracle.database.jdbc</groupId>-->
      <!--            <artifactId>ojdbc8</artifactId>-->
      <!--            <version>19.8.0.0</version>-->
      <!--        </dependency>-->
              <dependency>
                  <groupId>com.baomidou</groupId>
                  <artifactId>mybatis-plus-boot-starter</artifactId>
                  <version>3.5.3.2</version>
              </dependency>
              <dependency>
                  <groupId>org.junit.jupiter</groupId>
                  <artifactId>junit-jupiter</artifactId>
                  <version>RELEASE</version>
                  <scope>compile</scope>
              </dependency>
          </dependencies>
      </project>
      

      tips:這里碰到一個坑,我本機適用的Oracle數據庫版本是11g XE,所以要使用的驅動為ojdbc5/ojdbc6,不然連接老會失敗。

      2、application.yml

      在配置文件中填寫數據庫連接的參數

      spring:
        datasource:
            username: pp
            password: 123456
            url: jdbc:oracle:thin:@localhost:1521:XE
            driver-class-name: oracle.jdbc.OracleDriver
      

      參數說明:

      • username:數據庫連接用戶名
      • password:數據庫連接密碼
      • url:連接地址
      • driver-class-name:數據庫驅動

      3、創建實例數據表

      為了演示本次對接Oracle數據庫,我們需要一張測試數據表

      3.1創建Users數據表,SQL如下:

      CREATE TABLE users (
        id INT PRIMARY KEY,
        username VARCHAR(50) NOT NULL,
        password VARCHAR(50) NOT NULL,
        email VARCHAR(100) NOT NULL,
        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
      );
      

      什么?沒有測試數據!!!Orz......
      這里可以使用Oracle數據庫的PL/SQL編程來批量生成測試數據,真香!!

      3.2PL/SQL批量生產測試數據

      sql如下:

      DECLARE
        TYPE user_type IS RECORD (
          id NUMBER,
          username VARCHAR2(50),
          email VARCHAR2(100),
          password VARCHAR2(100),
          created_at DATE
        );
        
        TYPE user_list IS TABLE OF user_type;
        
        l_users user_list := user_list();
      BEGIN
        FOR i IN 1..100 LOOP
          l_users.extend;
          l_users(i).id := i;
          l_users(i).username := 'user' || i;
          l_users(i).email := 'user' || i || '@example.com';
          l_users(i).password := 'password' || i;
          l_users(i).created_at := SYSDATE; -- 使用當前時間作為創建時間
        END LOOP;
        
        FORALL i IN 1..l_users.COUNT
          INSERT INTO users (id, username, email, password, created_at)
          VALUES (l_users(i).id, l_users(i).username, l_users(i).email, l_users(i).password, l_users(i).created_at);
          
        COMMIT;
        DBMS_OUTPUT.PUT_LINE('Data inserted successfully.');
      EXCEPTION
        WHEN OTHERS THEN
          DBMS_OUTPUT.PUT_LINE('Error: ' || SQLERRM);
          ROLLBACK;
      END;
      

      執行之后查看數據表中的數據:
      pPn8w01.png
      OK!準備工作完成,接下來就可以進行對接了。

      4、使用MP對Oracle進行CRUD

      4.1創建實體類

      User:

      /**
       * TODO User實體類
       * @version 1.0
       * @author ss_419
       * @date 2023/8/11 14:49
       */
      @Data
      @AllArgsConstructor
      @NoArgsConstructor
      // 指定Oracle數據庫中的表名
      @TableName("users")
      public class User {
          private Long id;
          private String username;
          private String password;
          private String email;
          private Date created_at;
      }
      

      4.2、創建Mapper

      /**
       * @author ss_419
       */
      @Mapper
      public interface UserRepository extends BaseMapper<User> {
          // 這里可以自定義一些數據庫操作方法
      }
      

      4.3、創建Service

      /**
       * @author ss_419
       */
      @Service
      public class UserService
              extends ServiceImpl<UserRepository, User> {
          // 這里可以編寫一些業務邏輯方法
          private final UserRepository userRepository;
      
          @Autowired
          public UserService(UserRepository userRepository) {
              this.userRepository = userRepository;
          }
          public List<User> getAllUsers() {
              List<User> users = userRepository.selectList(null);
              return users;
          }
      
          public User getUserById(Long id) {
              return userRepository.selectById(id);
          }
      
          public void saveUser(User user) {
              userRepository.insert(user);
          }
      
          public void updateUser(User user) {
              userRepository.updateById(user);
          }
      
          public void deleteUser(Long id) {
              userRepository.deleteById(id);
          }
      }
      

      4.4、創建啟動器

      @SpringBootApplication
      // Mapper包掃描
      @MapperScan("org.example.mapper")
      public class OracleDBApplication {
          public static void main(String[] args) {
              SpringApplication.run(OracleDBApplication.class,args);
          }
      }
      

      5、測試

      萬事俱備,只欠東風,對CRUD進行測試。

      @SpringBootTest
      public class OraCTest {
          @Autowired
          private UserService service;
      
          /**
           * 獲取所有用戶信息
           */
          @Test
          public void testGetAllUsers() {
              List<User> users = service.getAllUsers();
              users.forEach(System.out::println);
          }
      
          /**
           * 根據id獲取用戶
           */
          @Test
          public void testGetUserById() {
              User userById = service.getUserById(1L);
              System.out.println("userById = " + userById);
          }
      
          /**
           * 保存用戶
           */
          @Test
          public void testSaveUser() {
              User user = new User();
              user.setId(1000L);
              user.setUsername("測試新增User");
              user.setPassword("00101010");
              user.setEmail("test@example.com");
              user.setCreated_at(new Date());
              service.saveUser(user);
          }
      
          /**
           * 更新用戶
           */
          @Test
          public void testUpdateUser() {
              // 先查詢
              User user = service.getUserById(1000L);
              System.out.println("userById = " + user);
              // 后更新
              user.setUsername("update_username");
              service.updateUser(user);
          }
      
          /**
           * 根據id刪除用戶
           */
          @Test
          public void testDeleteUser() {
              service.deleteUser(1000L);
          }
      }
      

      posted on 2023-08-11 15:56  JavaCoderPan  閱讀(2433)  評論(0)    收藏  舉報

      導航

      主站蜘蛛池模板: 亚洲a成人片在线观看| 亚洲热无码av一区二区东京热av| 亚洲精品一二三在线观看| 大地资源网第二页免费观看| 亚洲国产精品一区在线看| 亚洲熟妇自偷自拍另类| 淮阳县| 日本高清不卡一区二区三| 西西人体大胆444WWW| 国产精品自在线拍国产手机版| 一区二区亚洲人妻av| 少妇太爽了在线观看免费视频| 老司机免费的精品视频| 1024你懂的国产精品| 久久婷婷丁香五月综合五| 亚洲偷自拍国综合| 精品视频在线观自拍自拍| 欧美国产精品不卡在线观看| 亚洲无人区码二码三码区| 欧美国产综合视频| 麻豆一区二区三区精品视频| 人妻中出无码一区二区三区 | 国产小受被做到哭咬床单GV| 丁香婷婷色综合激情五月| 亚洲天堂av免费在线看| 一区二区三区国产亚洲网站| 麻豆精品在线| 中文国产人精品久久蜜桃| 国产精品无码成人午夜电影| 久久日韩精品一区二区五区| 亚洲人成网网址在线看| 少妇久久久被弄到高潮| 精品国产一区二区三区大| 亚洲午夜亚洲精品国产成人| 大屁股肥熟女流白浆| 日韩精品一区二区亚洲专区| 精品国产成人午夜福利| 西西大胆午夜人体视频| 国产精品久久久久久久久鸭| 无码内射中文字幕岛国片| 一本久道中文无码字幕av|