現在比較流行的運算元據庫操作層框架Mybatis,下面我們就來看看Springboot如何整合mybatis, 之前一直在用xml形式寫sql,這次依然用xml的方式感覺這種還是比較靈活方便。
新增mybatis關鍵就是要引入mybatis-spring-boot-starter到pom檔案中,如果你用MySQL,那就引入MySQL的pom檔案,這裡我用Oracle,淡然要引入Oracle的依賴了。新增完成mybatis和Oracle 在pom.xml 檔案中的引入。
<!-- 連結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
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層:
@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類中
@Service public interface UserService { User findUserByName(String userName); }
Service層的實現類,實現UserService中的方法
@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註解,否則會報錯的
@Mapper public interface UserDao { User findUserByName(@Param("userName") String userName); }
實體類
public class User { private String code; private String username; private String name; //get/set方法省略 }
userMapper.xml 要注意namespace能否正確跳轉(路徑是否正確)
<?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!
如有不當和錯誤之處,請指出,我們一起交流學習,共同進步!謝謝!