一.springboot繼承mybatis的相關說明:
springboot是一款基於spring的框架,springboot能較快的搭建web工程和tomcat服務器,提高搭建環境和開發環境的效率,所以使用的越來越多,springboot也能和mybatis集成
mybatis是一款持久層框架,基於spring-jdbc,所有的持久層框架都是基於數據庫的jdbc,所以導入mybatis的包后就不需要再導入jdbc的相關包,在這里我們的配置文件使用的是yml文件也可以使用以properties后綴結尾的配置文件,通過springboot集成mybatis,不需要配置額外的sqlSessionFactoryBean,mybatis基於springboot的底層已經幫我們實現了sqlSessionFactoryBean的創建,springboot中有一個自動導入配置文件的標簽,這個標簽以選擇器的方式導入寫入 spring.factoties中的配置類:
@EnableAutoConfiguration 開啟自動配置功能,通過一個AutoConfigurationImportSelector導入選擇器去掃描 spring-boot-autoconfigure-2.0.5.RELEASE.jar 自動配置包下面的 spring.factories 文件中的很多很多的自動配置的類
如:ThymeleafAutoConfiguration 是的Thymeleaf的自動配置 ,在這個自動配置類里面通過一個ThymeleafProperties去讀取配置文件中的配置(也有默認配置) ,來自動配置Thymeleaf,還有很多很多..............
1.導包--導入mybatis包,連接池包,mysql驅動包
<!--導入mybatis--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <!--導入連接池--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.20</version> </dependency> <!-- mysql 數據庫驅動. --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
2. 在yml中配置mybatis,配置dataSource
mybatis:
#配置映射的mapper.xml文件
mapper-locations: classpath:cn/itsource/springboot/mapper/*Mapper.xml
#配置別名
type-aliases-package: cn.itsource.domain
spring:
datasource:
username: root
password: 123456
url: jdbc:mysql:///cms
driver-class-name: com.mysql.jdbc.Driver
#連接池的類型
type: com.alibaba.druid.pool.DruidDataSource
3.在配置類上掃描mapper接口
@MapperScan(basePackages = "cn.itsource.mapper")
4.完成測試
步驟:
1.在domain包中寫一個基本業務類user
2.在mapper層寫一個接口UserMapper,里面寫一個方法,查詢數據庫中對應user表中的所有內容
3.寫一個UserMapper.xml,里面放數據庫的查詢語句 sql語句
4.寫service層,接口方法跟mapper層接口方法一樣,再寫該接口的實現類(注入UserMapper接口,調用mapper中的方法)
5.寫controller層
@Controller @RequestMapping public class UserController { @Autowired private IUserService userService; @RequestMapping("/user") @ResponseBody
//查詢表中所有數據 public List<User> queryAll(){ return userService.queryAll(); }
//分頁查詢 @RequestMapping("/page") @ResponseBody public Page<User> queryPage(Object query){ return userService.queryPage(query); } }
5.瀏覽器訪問資源
6.在springboot中使用pagehelper實現分頁
步驟
1.導入pagehelper的jar包
<!--導入分頁包--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.3</version> </dependency>
2.在yml配置文件中配置pagehelper屬性
pagehelper:
helperDialect: mysql
reasonable: true
supportMethodsArguments: true
params: count=countSql
3.實現類返回page<T>對象,該對象幫我們實現list集合數據中的分頁,使用pagehelper這個類設置當前頁和每頁查詢數據的條數
說明:mapper層和controller層的代碼就不再重復了。
@Override public Page<Employee> queryPage(Object query) { //設置當前頁和每頁條數 PageHelper.startPage(1, 10); //底層幫我們實現吧list集合中的數據封裝為page對象,然后分頁 Page<Employee> employees = employeeMapper.queryPage(query); return employees; }
4.瀏覽器訪問資源測試