springBoot 整合 mybatis+Oracle


現在比較流行的操作數據庫操作層框架Mybatis,下面我們就來看看Springboot如何整合mybatis, 之前一直在用xml形式寫sql,這次依然用xml的方式感覺這種還是比較靈活方便。

  添加mybatis關鍵就是要引入mybatis-spring-boot-starter到pom文件中,如果你用MySQL,那就引入MySQL的pom文件,這里我用Oracle,淡然要引入Oracle的依賴了。添加完成mybatis和Oracle 在pom.xml 文件中的引入。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!-- 鏈接Oracle數據庫  oracle ojdbc不免費,需要手動引入jar包 -->
      <dependency>
         <groupId>oracle</groupId>
         <artifactId>ojdbc6</artifactId>
         <version> 11.2 . 0.3 </version>
      </dependency>
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-jdbc</artifactId>
      </dependency>
      <!-- 集成mybatis -->
      <dependency>
         <groupId>org.mybatis.spring.boot</groupId>
         <artifactId>mybatis-spring-boot-starter</artifactId>
         <version> 1.3 . 1 </version>
      </dependency>
      <dependency>
         <groupId>com.alibaba</groupId>
         <artifactId>druid</artifactId>
         <version> 1.1 . 0 </version>
      </dependency>

  

注意:

如果你用的是Oracle數據庫在pom.xml中有可能會報這個錯Missing artifact oracle:ojdbc6:jar 因為Oracle的ojdbc.jar是收費的,所以maven的中央倉庫沒有這個資源,只能配置本地倉庫才能加載到項目中去。

配置application.properties

1
2
3
4
5
6
7
8
9
10
11
mybatis.config-locations=classpath:mybatis/mybatis-config.xml
mybatis.mapper-locations=classpath:mapper/*.xml
#oracle database  jdbc
spring.datasource.url=jdbc:oracle:thin:@ //localhost:1521/orcl
spring.datasource.username=root
spring.datasource.password= 123456
spring.datasource.driver- class -name=oracle.jdbc.driver.OracleDriver
spring.datasource.max-idle= 10
spring.datasource.max-wait= 10000
spring.datasource.min-idle= 5
spring.datasource.initial-size= 5

  

指定了mybatis的配置地址,你可以在mybatis/mybatis-config.xml中添加一些其他配置

完成之后你就可以去mapper文件夾下自由瀟灑的去寫sql去了

我們來測試一下看看是否成功,去寫個sql試試效果怎么樣?就返回用戶的一些基本信息吧。實現代碼如下:

Controller層:

1
2
3
4
5
6
7
8
9
10
11
@RestController
public class UserController {
     @Autowired
     private UserService userService;
 
     @RequestMapping (value = "/user" , method = RequestMethod.GET)
     public User findUserByName( @RequestParam (value = "userName" , required = true ) String userName) {
         return userService.findUserByName(userName);
     }
 
}

  

Service層:只寫方法具體實現在UserServiceImpl類中

1
2
3
4
5
6
@Service
public interface UserService {
 
     User findUserByName(String userName);
     
}

  

Service層的實現類,實現UserService中的方法

1
2
3
4
5
6
7
8
9
10
11
12
@Component
public class UserServiceImpl implements UserService {
     @Autowired
     private UserDao userDao;
 
     @Override
     public User findUserByName(String userName) {
         User user = userDao.findUserByName(userName);
         return  user;
     }
 
}

  

Dao層 注意要添加@Mapper注解,否則會報錯的

1
2
3
4
@Mapper  
public interface UserDao {
     User findUserByName( @Param ( "userName" ) String userName);
}

  

實體類

1
2
3
4
5
6
public class User {
     private String code;
     private String username;
     private String name;
     //get/set方法省略
}

  

userMapper.xml  要注意namespace能否正確跳轉(路徑是否正確)

1
2
3
4
5
6
7
8
9
<?xml version= "1.0" encoding= "UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace= "com.power.manger.dao.UserDao" >
     <select id= "findUserByName" resultMap= " com.XXX.model.User " parameterType= "java.lang.String" >
         select code, user_name as username, name
         from tb_user_info 
          where name=#{userName}
     </select>
</mapper>

  這些都完成之后,那么接下來就是見證奇跡的時刻了,啟動項目,瀏覽器輸入地址顯示如下

數據庫中查詢結果如下

成功整合了mybatis和Oracle!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM