現在比較流行的操作數據庫操作層框架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!
