`
hzs0502030128
  • 浏览: 23333 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类

mybatis 通用分页插件和批量操作插件

阅读更多

               Mybatis 分页插件使用手册 

 

 

一、插件配置

   spring 配置文件 中添加  数据库方言可选:mysql, mariadb, sqlite, oracle, hsqldb, postgresql, sqlserver2000, sqlserver2005,sqlserver2008, db2, informix,derby;

  

 

   

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
      <property name="dataSource" ref="dataSource" />
      <!-- <property name="configLocation" value="classpath:mybatis.xml" /> -->
      <property name="plugins">
           <list>
                <bean class="org.smile.mybatis.page.PageHelper">
                <property name="properties">
                   <value>dialect =sqlserver2005</value>
                </property>
              </bean>
           </list>
       </property>
   </bean>

 

 

参数说明   properties 的内容

dialect

数据库方言

STRING

   必选

默认

page

当前页参数名

STRING

 

page

pageSize

每页条数参数名

String

 

pageSize

countMethod

自定义count 方法参数名

String

 

countMethod

msCache

是否缓存mappedstatment

Boolean

 

true

paramPage

是否启用查询参数中添加分页参数的方式颁

boolean

 

false

 

 

 

二、插件使用方法

    插件两种主要使用方法

   

 

    1 使用 pagehelper 调用进行分页

 

    PageHelper.startPage(page,pageSize);

 

   这样是使用插件内置count 查询

Map<String, Object> queryMap = new HashMap<String, Object>();
      //查询条件
      queryMap.put("lifnr", lifnr.getLifnr());
      queryMap.put("purCode", lifnr.getPurCode());
      queryMap.put("deliveryDay", lifnr.getDeliveryDay());
      PageHelper.startPage(page, fPage.getPageSize());
      //总条数
      PageModellist = (PageModel)lifnrDAO.queryLifnrList(queryMap);

 

 

 

 

 PageHelper.startPage(request);

 

 会从request中获取配置文件中配置的 page 对应参数的 pageSize 对应参数的值进行分页

 

 

PageHelper.startPage(page,pageSize,false); 

不使进行count 计算 

 

可以在方法参数中加入countMethod 对应参数指定自定义的mybatis count方法id 进行count 计算

 

 

2 使用方法参数中添加分页参数信息

 

paramPage 参数必须设置为true

<value> paramPage =true</value>

 

代码:

 

Map<String, Object> queryMap = new HashMap<String, Object>();
      //查询条件
      queryMap.put("lifnr", lifnr.getLifnr());
      queryMap.put("purCode", lifnr.getPurCode());
      queryMap.put("deliveryDay", lifnr.getDeliveryDay());
 
   queryMap.put(PageHelper.getConfig().getPage(),page);
   queryMap.put(PageHelper.getConfig().getPageSize(),pageSize);
      //总条数
      PageModellist = (PageModel)lifnrDAO.queryLifnrList(queryMap);

 

 

 

               Mybatis 批量插件使用手册 

 

 

一、插件配置

   spring 配置文件 中添加 

  

 

   

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
      <property name="dataSource" ref="dataSource" />
      <!-- <property name="configLocation" value="classpath:mybatis.xml" /> -->
      <property name="plugins">
           <list>
                  <bean class="org.smile.mybatis.batch.BatchHelper">
                <property name="properties">
                   <value>method=batchUpdate</value>
                </property>
              </bean>
           </list>
       </property>
   </bean>

 

 

 

参数说明   properties 的内容

method

要使用批量操作插件的方法前匹配

STRING

 可选

batch

 

 

 

二、插件使用方法

  必须把方法名以配置中method 的值开头   如:配置的值为 method=batchUpdate

  那么方法必须以batchUpdate开头例子:

 

 

public int batchUpdatePerson(List<Person> persons);

 

 

<update id="batchUpdatePerson"  parameterType="java.util.List" >     
          <!--
          insert into  student(name,adress,age,id) values(#{name},#{adress},#{age}, #{id})     
       
       delete from student where age=#{age} and id=#{id}
       
       -->
       update student set name =#{name} where id=#{id} and age=#{age}
   </update>

 

 

 

可以支持 insert update delete 多种语句  返回更新数据条数

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics