设为首页 收藏本站
查看: 871|回复: 0

[经验分享] maven+spring3+mybatis+bonecp+mybatis-generator+page(分页)

[复制链接]

尚未签到

发表于 2016-11-25 02:54:15 | 显示全部楼层 |阅读模式
  最近尝试了一下mybaits,使用起来感觉还不错。在此回顾总结一下框架搭配的过程。
  总的搭配步骤如下,每步都是参考官方文档和例子。详细的请参考附件


  • 搞定spring,由于使用的spring3 mvc;
  • 搞定数据源bonecp;
  • 搞定mybatis-spring;
  • 自动生成generator
  • 分页


  • spring mvc
  只要参照一些 https://src.springframework.org/svn/spring-samples/mvc-basic/trunk,就可轻松实现spring3 mvc的restful。首先搞定了spring之后,能正常运行之后,接着就是数据源。


  •     数据源bonecp
  参照http://jolbox.com/里Spring based
设置,利用maven添加依赖包bonecp,配置数据源,这一步也应该很容易可轻松搞定。例如代码如下:

<bean id="dataSourceOrcl" class="com.jolbox.bonecp.BoneCPDataSource" destroy-method="close">
<property name="driverClass" value="oracle.jdbc.driver.OracleDriver" />
<property name="jdbcUrl" value="jdbc:oracle:thin:@10.6.2.18:1521:orcl" />
<property name="username" value="scsk"/>
<property name="password" value="admin123"/>
<property name="idleConnectionTestPeriod" value="60"/>
<property name="idleMaxAge" value="240"/>
<property name="maxConnectionsPerPartition" value="30"/>
<property name="minConnectionsPerPartition" value="10"/>
<property name="partitionCount" value="1"/>
<property name="acquireIncrement" value="5"/>
<property name="statementsCacheSize" value="100"/>
<property name="releaseHelperThreads" value="3"/>
</bean>
  
 
其中遇到oracle 驱动maven上无法自动添加的问题,需要自己手动下载ojdbc14包,利用maven命令添加到本地仓库就可了。例如,可参照http://lowkeyfeng.iyunv.com/blog/907148
  mvn install:install-file -DgroupId=com.oracle -DartifactIdojdbc14

  -Dversion=10.0.0.0.0

-Dpackaging=jar -Dfile=C:\ojdbc14-10.2.0.4.0.jar




  • mybatis-spring
  首先阅读官方网址http://code.google.com/p/mybatis/文档,下载
mybatis-spring 1.0.0 Reference Guide - Simplified Chinese或英文版
mybatis-spring 1.0.2 Reference Guide - English。了解到基本的配置信息。阅读配置信息获取如下类图关系。
DSC0000.jpg

  由上图可知,如果配置的mapper的,只需要配置SqlSessionFactoryBean和MapperScannerConfigurer就可了。
  SqlSessionFactoryBean指定数据源和mybatis的核心配置文件以及每个mapper类对应的sql语句xml文件
  MapperScannerConfigurer自动扫描basePackage包下的mapper接口类,sqlSessionFactory属性引用SqlSessionFactoryBean。例如


    <bean id="sqlSessionFactoryScsk" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSourceOrcl" />
<property name="configLocation" value="classpath:com/ccc/scsk/persistence/MapperConfig.xml" />
<property name="mapperLocations" value="classpath*:com/ccc/scsk/persistence/scsk/*.xml" />
</bean>
<bean id="mapperScannerConfigurerScsk" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.ccc.scsk.persistence.scsk" />
<property name="sqlSessionFactory" ref="sqlSessionFactoryScsk" />
</bean>



  • 自动生成generator和分页
  参考mbg自动生成文档 mybatis-generator-core-1.3.1 主要有两步要做:


  • with maven,添加maven运行。
  • 设定configure信息。其中设置不自动生成example类,需要*ByExample都设置为false 才可的;其次指定生成包targetPackage和相对路径targetProject。例如
        <javaModelGenerator targetPackage="com.ccc.scsk.domain.scsk" targetProject="../src/main/java">
    <property name="enableSubPackages" value="true" />
    <property name="trimStrings" value="true" />
    </javaModelGenerator>
    <sqlMapGenerator targetPackage="com.ccc.scsk.persistence.scsk"  targetProject="../src/main/resources">
    <property name="enableSubPackages" value="true" />
    </sqlMapGenerator>
    <table tableName="A_PAGE" domainObjectName="AdvertisementPage"
    enableInsert="false" enableUpdateByPrimaryKey="false" enableDeleteByPrimaryKey="false"
    enableSelectByExample="false" enableDeleteByExample="false" enableUpdateByExample="false"
    selectByExampleQueryId="false" enableCountByExample="false"
    /> 
     这样就可完整地生成对应的mapper接口和mapper类的xml文件
  • 具体的mapper类的sql语法,请参考MyBatis-3-User-Guide-Simplified-Chinese.pdf和MyBatis-SqlMaps-2_en.pdf,都在http://code.google.com/p/mybatis/



  • 分页类
  利用mybatis的Interceptor接口实现插件开发的。主要有三种方式。


  •   参考的网上的可自动拼装sql获取总数量以及分页,由于自己的例子是针对oracle的,因此实现了oracle获取总数和分页的,实现效果简洁高效;其中拷贝BoundSql对象会丢失additionalParameters的问题也出现过,因此没必要拷贝BoundSql,直接修改BoundSql对象就可了
  • 参考hibernate的分页,感觉没多大用处,而且实现的效果也不很好的。
  • 添加自动生成generator的plugin,自动生成带有分页的sql语句,感觉灵活性不高的。
  这样,就可搞定spring3和mybatis的搭配的基本问题。实现了自动生成和分页。至于一些其他的更多需求,也是一样的步骤和思路,参考文档,参考实例,动手搭配,边动手边总结,很快就可搞定很多所谓复杂的问题。附件是简单的框架实例。请参考!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-304965-1-1.html 上篇帖子: MyBatis的parameterType和resultMap 下篇帖子: Mybatis的namespace问题说明
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表