1.批次掃描mapper
在之前每建立一個mapper,就需要在mybatis-config.xml 檔案中,註冊該mapper。
<mappers>
<mapper resource="mapper/EmployeeMapper.xml"/>
</mappers>
可以在mappers標籤中使用package標籤,進行包掃描
<mappers>
<package name="com.ztone.mapper"/>
</mappers>
這樣每次在com.ztone.mapper 包下建立mapper就不用註冊了
這種方式的要求:
-
mapper 的xml檔案和介面檔案命名必須xiangtong
-
最終打包後的位置要一致,也就是都在 com.ztone.mapper 下,想要保證這點有兩種方式
-
將xml檔案放在java下的包中,與介面放在一個地方,但是需要在mybatis-config中設定maven的打包配置,否則xml檔案不會打包
<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.*</include> </includes> </resource> </resources> </build>
-
第二種方式就是在 resources資料夾下建立與 介面存放位置相同的包,也就是com.ztone.mapper
這裡需要注意:在resources檔案下建立資料夾,分層時不能用 ” . “ 分隔,需要用 ” / “ 分隔
-
2.PageHelper分頁外掛
在sql中進行分頁,需要用limit 關鍵字
select * from user limit 0,2;
從第0個開始查詢,每一頁展示兩個
使用外掛,不需要自己寫 limit,要求是不能用 ” ; “ 結尾,因為limit會加在分號後面,導致sql錯誤
步驟:
-
引入pagehelper 依賴
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.11</version> </dependency>
-
在mybatis-config.xml 檔案中配置分頁外掛
<plugins> <plugin interceptor="com.github.pagehelper.PageInterceptor"> <property name="helperDialect" value="mysql"/> </plugin> </plugins>
-
使用
先設定分頁資料呼叫PageHelper的 startPage() 方法
然後執行查詢語句,返回結果後,將查詢資料封裝到一個PageInfo的分頁實體類中
public void test_02(){ EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class); PageHelper.startPage(2,2); List<Employee> employees = mapper.queryAll(); PageInfo<Employee> pageInfo = new PageInfo<>(employees); //當前頁的資料 List<Employee> list = pageInfo.getList(); //獲取總頁數 int pages = pageInfo.getPages(); //獲取總條數 long total = pageInfo.getTotal(); }
需要注意的是:不能將兩條查詢裝到一個 分頁區
3.逆向工程
自動生成單表的實體類、介面檔案、介面的xml檔案
用到的 外掛是 MybatisX