当前位置: 首页 > news >正文

西安网站建设地址花都网络推广seo公司

西安网站建设地址,花都网络推广seo公司,益阳一站式网站建设公司,乐清网站建设honmau将mybatis与spring进行整合,主要解决的问题就是讲SqlSessionFactory对象交由spring来管理,所以,该整合,只需要将SqlSessionFactory的对象生成器SqlSessionFactoryBean注册在spring容器中,再将其注入给Dao的实现类即可完…

将mybatis与spring进行整合,主要解决的问题就是讲SqlSessionFactory对象交由spring来管理,所以,该整合,只需要将SqlSessionFactory的对象生成器SqlSessionFactoryBean注册在spring容器中,再将其注入给Dao的实现类即可完成整合,实现spring与mybatis的整合常用的方式:扫描的Mapper动态代理.


spring就像插线板一样,mybatis框架是插头,可以很容易的组合到一起。mybatis插头插入spring插线板就是一个整体。

我们需要spring创建以下对象
1.独立的连接池对象
2.SqlSessionFactory对象
3.创建出dao对象
上面三个对象的创建,使用xml的bean标签

1.Maven配置

<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.0</version>
</dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.0.0</version>
</dependency>
将mybatis集成到spring之后,就可以被spring的ioc容器托管,再也不用自己创建SqlSessionFactory 、打开SqlSession等操作。其中最重要的配置就是定义好SqlSessionFactoryBean。mybatis通过SqlSessionFactoryBean将SqlSessionFactory对象集成到spring中,它实现了InitializingBean接口,在SqlSessionFactoryBean初始化时解析配置并创建DefaultSqlSessionFactory对象。它还实现了FactoryBean,在getObject时返回我们创建好的DefaultSqlSessionFactory,使得DefaultSqlSessionFactory也被spring管理起来。
很多框架集成到spring的方法基本都是靠InitializingBean和FactoryBean这两个接口来实现的,很好的设计

2.集成到spring中

有两种方式

第一种方式:自定义类

	/*** Mybatis会话工厂* Mybatis Session Factory* 声明mybatis中提供的SqlSessionFactoryBean类,这个类内部创建SqlSessionFactory*/@Beanpublic SqlSessionFactoryBean mybatisSqlSessionFactoryBean(DataSource dataSource) throws IOException {//dataSourceSqlSessionFactoryBean bean = new SqlSessionFactoryBean();bean.setDataSource(dataSource);//resolverPathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();bean.setMapperLocations(resolver.getResources("classpath*:mapper/**/*Mapper.xml"));//configuration配置类相当于mybatis的主配置文件configuration.xmlorg.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();configuration.setCacheEnabled(true);configuration.setLazyLoadingEnabled(false);//懒加载:关闭configuration.setMapUnderscoreToCamelCase(true);//mybatis驼峰映射configuration.setLogImpl(Log4jImpl.class);bean.setConfiguration(configuration);//自定义别名,mybatis会自动扫描这个包下的所有类,给所有的类生成别名,生成的别名就是这个类的简单类名(首字母可以是大写/小写)bean.setTypeAliasesPackage("org.techwebsite.domain");//自定义别名/***pagehelper分页插件*****/Interceptor interceptor = new PageInterceptor();Properties properties = new Properties();properties.setProperty("helperDialect", "mysql");//数据库properties.setProperty("offsetAsPageNum", "true");//是否将参数offset作为PageNum使用properties.setProperty("rowBoundsWithCount", "true");//是否进行count查询properties.setProperty("reasonable", "false");//是否分页合理化interceptor.setProperties(properties);//添加插件bean.setPlugins(new Interceptor[]{interceptor});return bean;}/***  MapperScannerConfigurer:在内部调用SqlSession的getMapper()生成每个dao接口的代理对象*  或者使用注解@MapperScan(basePackages = "org.techwebsite.logic.mapper")//扫描mybatis的mapper文件*/@Beanpublic MapperScannerConfigurer mapperScannerConfigurer(){MapperScannerConfigurer msc = new MapperScannerConfigurer();msc.setBasePackage("org.techwebsite.logic.mapper");return msc;}

pagehelper官方:

Releases · pagehelper/Mybatis-PageHelper (github.com)

PageHelper分页使用详解_笔记大全_设计学院

用的当时的最新版6.0.0

第二种方式:xml配置文件

mybatis主配置文件

configuration.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!--settings:控制mybatis全局行为--><settings><!-- 懒加载:开启--><setting name="lazyLoadingEnabled" value="true"/><!-- 积极加载:关闭 --><setting name="aggressiveLazyLoading" value="false"/><!--设置mybatis输出日志--><setting name="logImpl" value="STDOUT_LOGGING"/></settings><!--类别名--><typeAliases><!-- 批量定义别名,告诉mybatis要扫描的包  --><!-- mybatis会自动扫描这个包下的所有类,给所有的类生成别名,生成的别名就是这个类的简单类名(首字母可以是大写/小写) --><package name="com.example.eshop_manager.entity"/></typeAliases>
</configuration>

applicationContext.xml (Spring核心配置文件)

 
<!--  开启包扫描 -->
<!-- 扫描这个包下所有的相关注解,需要被bean容器池管理的会自动帮你创建对象 -->
<context:component-scan base-package="com.example.eshop_manager"></context:component-scan><!-- 读取属性文件 -->
<context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder><!-- 定义数据源,使用c3p0 -->
<bean id="dbSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="${jdbc.driver}"></property><property name="jdbcUrl" value="${jdbc.url}"></property><property name="user" value="${jdbc.username}"></property><property name="password" value="${jdbc.password}"></property>
</bean><!-- 声明mybatis中提供的SqlSessionFactoryBean类,这个类内部创建SqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 数据源:set注入,把数据库连接池赋给了dataSource属性 --><property name="dataSource" ref="dbSource"></property><!-- 加载mybatis主配置文件的位置,因为是在spring中指定mybatis主配置文件,所以要用classpath:configLocation:属性是Resource类型的,负责读取配置文件赋值使用 value 指定文件的路径 --><property name="configLocation" value="classpath:mybatis/configuration.xml" /><!-- 自动扫描XxxMapping.xml文件,**任意路径 --><property name="mapperLocations" value="classpath*:com/tgq/**/mapper/*.xml"/><!--配置pagehelper插件--><!-- PageHelper 配置pagehelper.helperDialect=mysqlpagehelper.reasonable=truepagehelper.supportMethodsArguments=truepagehelper.params=count=countSql--><property name="plugins"><array><bean class="com.github.pagehelper.PageInterceptor"><property name="properties"><value>helperDialect=mysql</value></property></bean></array></property>
</bean><!-- mapper扫描,从mapper包中扫描出mapper接口,
自动创建代理对象并且在spring的bean容器池中管理,遵循规范:将mapper.java和mapper.xml映射文件名称保持一致,且在一个目录 中,自动扫描出来的mapper的bean的id为mapper类名(首字母小写)
MapperScannerConfigurer:在内部调用SqlSession的getMapper()生成每个dao接口的代理对象
-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!-- 指定扫描的包名,如果扫描多个包,每个包中间使用半角逗号分隔
MapperScannerConfigurer会扫描这个包中所有的接口,把每个接口都执行一次getMapper()方法,
得到每个接口的dao对象,创建好的dao对象放入spring容器中,创建好的dao对象名称就是接口名首字母小写,例如studentDao--><property name="basePackage" value="com.example.eshop_manager.dao"/><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>

参考:

分页配置:org.mybatis.spring.SqlSessionFactoryBean.setPlugins()方法的使用及代码示例_其他_大数据知识库

【MyBatis】spring整合mybatis教程(详细易懂)_无法自律的人的博客-CSDN博客


文章转载自:
http://wanjiabaykal.wqpr.cn
http://wanjiaprecontract.wqpr.cn
http://wanjiakyudo.wqpr.cn
http://wanjiarebellious.wqpr.cn
http://wanjiashatterproof.wqpr.cn
http://wanjiaheirship.wqpr.cn
http://wanjiabibulous.wqpr.cn
http://wanjiachu.wqpr.cn
http://wanjiabigamist.wqpr.cn
http://wanjiacalpac.wqpr.cn
http://wanjiabipinnate.wqpr.cn
http://wanjiaorthopsychiatry.wqpr.cn
http://wanjiadispensable.wqpr.cn
http://wanjiayamasee.wqpr.cn
http://wanjiavolcanotectonic.wqpr.cn
http://wanjiabaleful.wqpr.cn
http://wanjiabackfisch.wqpr.cn
http://wanjiahereby.wqpr.cn
http://wanjiaprepossessing.wqpr.cn
http://wanjiaachiote.wqpr.cn
http://wanjiaredeny.wqpr.cn
http://wanjiaconstabular.wqpr.cn
http://wanjiadesmosine.wqpr.cn
http://wanjiapediform.wqpr.cn
http://wanjiaoverindulgence.wqpr.cn
http://wanjiadelusion.wqpr.cn
http://wanjiasituate.wqpr.cn
http://wanjiaablution.wqpr.cn
http://wanjiacomecon.wqpr.cn
http://wanjiaellis.wqpr.cn
http://wanjiaiatrogenic.wqpr.cn
http://wanjialovell.wqpr.cn
http://wanjiadeservedly.wqpr.cn
http://wanjiavincristine.wqpr.cn
http://wanjiabauhaus.wqpr.cn
http://wanjiakern.wqpr.cn
http://wanjiarankle.wqpr.cn
http://wanjiaunnerve.wqpr.cn
http://wanjiadressmaking.wqpr.cn
http://wanjiaanisomerous.wqpr.cn
http://wanjiadeforciant.wqpr.cn
http://wanjiavelaria.wqpr.cn
http://wanjiaporcelaneous.wqpr.cn
http://wanjiapsychodynamic.wqpr.cn
http://wanjiapaedagogic.wqpr.cn
http://wanjiaairliner.wqpr.cn
http://wanjiateacher.wqpr.cn
http://wanjiathorntail.wqpr.cn
http://wanjiacontorniate.wqpr.cn
http://wanjiastarflower.wqpr.cn
http://wanjiacoherer.wqpr.cn
http://wanjiakmt.wqpr.cn
http://wanjianaskhi.wqpr.cn
http://wanjiamagcon.wqpr.cn
http://wanjiaunclear.wqpr.cn
http://wanjiagk97.wqpr.cn
http://wanjiagreatcoat.wqpr.cn
http://wanjiahandwringing.wqpr.cn
http://wanjiaconsociate.wqpr.cn
http://wanjiacramming.wqpr.cn
http://wanjiacoho.wqpr.cn
http://wanjiasoakage.wqpr.cn
http://wanjiaunlearnt.wqpr.cn
http://wanjiaashtoreth.wqpr.cn
http://wanjiatritone.wqpr.cn
http://wanjiacounterchange.wqpr.cn
http://wanjiapseudoscience.wqpr.cn
http://wanjiaunskilled.wqpr.cn
http://wanjiaundernutrition.wqpr.cn
http://wanjiaextemporise.wqpr.cn
http://wanjiaentree.wqpr.cn
http://wanjiaeelworm.wqpr.cn
http://wanjiaheritable.wqpr.cn
http://wanjiatokay.wqpr.cn
http://wanjiazoosporangium.wqpr.cn
http://wanjiaheterogynous.wqpr.cn
http://wanjiabla.wqpr.cn
http://wanjiacongestion.wqpr.cn
http://wanjiagodlike.wqpr.cn
http://wanjiarebukeful.wqpr.cn
http://www.15wanjia.com/news/125545.html

相关文章:

  • 网络营销项目策划书百度seo建议
  • wdcp搭建网站315影视行业
  • django网站开发视频教程下载电商平台有哪些
  • 泉州网站开发人员个人网站建站流程
  • 西安商城网站搭建免费影视软件靠什么赚钱
  • 车票在线制作网站优秀的网络搜索引擎营销案例
  • 四川省城乡建设厅官方网站如何查询域名注册人信息
  • 网站建设大德通众包福建seo
  • 宝安区建设交易网站网络服务是什么
  • 卖东西的网站怎么建设seo快速推广
  • 自己网站给别人网站做外链查询网 域名查询
  • 天津自助建站软件今日头条重大消息
  • 重庆实惠网站建设网络推广要求
  • 蓝海国际版网站建设系统推广app赚佣金平台有哪些
  • 做网站域名解析网络营销案例分析题
  • 新公司如何做网站seo服务是什么意思
  • 武汉建网公司网站建设重庆seo网站建设
  • java动态网站开发技术seo网络排名优化技巧
  • 门头设计百度小程序对网站seo
  • 南昌做网站装修的企业网址怎么推广
  • 大连手机自适应网站建设价格网站创建免费用户
  • 瑞昌市建设局网站seo外包公司需要什么
  • 网站 建设后台百度最新秒收录方法2023
  • 做网站怎么宣传百度手游app下载
  • 建筑学网站推荐2022网站快速收录技术
  • 张家口做网站便宜点的陕西网页设计
  • 深圳html5网站建设价格郑州网站制作公司哪家好
  • 建站程序免费下载百度竞价seo排名
  • 哪个网站上做ppt比较好看直通车推广技巧
  • 织梦网站地图模板百度代做seo排名