SSM整合及Mybatis三剑客配置使用

搭建SSM的大体流程

1.pom.xml中需加入spring,mybatis,spring和mybatis的整合依赖,以及PageHelper依赖
   <textarea readonly="readonly" name="code" class="java"> 
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.1.0</version>
</dependency>
</textarea>

5.1.0与之前版本有一些区别, 新版拦截器是 com.github.pagehelper.PageInterceptor。 com.github.pagehelper.PageHelper 现在是一个特殊的 dialect 实现类,是分页插件的默认实现类,提供了和以前相同的用法。

配置.mybatis.generator 自动生成mapper层,数据对应实体pojo
  • <build>
  • <finalName>mmall</finalName>
  • <plugins>
  • <plugin>
  • <!--mybatis 三剑客之一 自动生成mapper代码-->
  • <groupId>org.mybatis.generator</groupId>
  • <artifactId>mybatis-generator-maven-plugin</artifactId>
  • <version>1.3.2</version>
  • <configuration>
  • <verbose>true</verbose>
  • <overwrite>true</overwrite>
  • </configuration>
  • </plugin>
  • </build>
generator 还需一个配置文件
  • <generatorConfiguration>
  • <!--导入属性配置-->
  • <properties resource="datasource.properties"></properties>

  • <!--指定特定数据库的jdbc驱动jar包的位置-->
  • <classPathEntry location="${db.driverLocation}"/>

  • <context id="default" targetRuntime="MyBatis3">

  • <!-- optional,旨在创建class时,对注释进行控制 -->
  • <commentGenerator>
  • <property name="suppressDate" value="true"/>
  • <property name="suppressAllComments" value="true"/>
  • </commentGenerator>

  • <!--jdbc的数据库连接 -->
  • <jdbcConnection
  • driverClass="${db.driverClassName}"
  • connectionURL="${db.url}"
  • userId="${db.username}"
  • password="${db.password}">
  • </jdbcConnection>


  • <!-- 非必需,类型处理器,在数据库类型和java类型之间的转换控制-->
  • <javaTypeResolver>
  • <property name="forceBigDecimals" value="false"/>
  • </javaTypeResolver>


  • <!-- Model模型生成器,用来生成含有主键key的类,记录类 以及查询Example类
  • targetPackage 指定生成的model生成所在的包名
  • targetProject 指定在该项目下所在的路径
  • -->
  • <!--<javaModelGenerator targetPackage="com.mmall.pojo" targetProject=".\src\main\java">-->
  • <javaModelGenerator targetPackage="demo.pojo" targetProject="./src/main/java">
  • <!-- 是否允许子包,即targetPackage.schemaName.tableName -->
  • <property name="enableSubPackages" value="false"/>
  • <!-- 是否对model添加 构造函数 -->
  • <property name="constructorBased" value="true"/>
  • <!-- 是否对类CHAR类型的列的数据进行trim操作 -->
  • <property name="trimStrings" value="true"/>
  • <!-- 建立的Model对象是否 不可改变 即生成的Model对象不会有 setter方法,只有构造方法 -->
  • <property name="immutable" value="false"/>
  • </javaModelGenerator>

  • <!--mapper映射文件生成所在的目录 为每一个数据库的表生成对应的SqlMap文件 -->
  • <!--<sqlMapGenerator targetPackage="mappers" targetProject=".\src\main\resources">-->
  • <sqlMapGenerator targetPackage="mappers" targetProject="./src/main/resources">
  • <property name="enableSubPackages" value="false"/>
  • </sqlMapGenerator>

  • <!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件 的代码
  • type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象
  • type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象
  • type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口
  • -->

  • <!-- targetPackage:mapper接口dao生成的位置 -->
  • <!--<javaClientGenerator type="XMLMAPPER" targetPackage="com.mmall.dao" targetProject=".\src\main\java">-->
  • <javaClientGenerator type="XMLMAPPER" targetPackage="demo.dao" targetProject="./src/main/java">
  • <!-- enableSubPackages:是否让schema作为包的后缀 -->
  • <property name="enableSubPackages" value="false" />
  • </javaClientGenerator>


  • <table tableName="demo" domainObjectName="Demo" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>


  • <!-- geelynote mybatis插件的搭建 -->
  • </context>
  • </generatorConfiguration>
配置好后 在IDEA右侧MAVEN projects栏里找到generator双击它即可自动生成mapper,pojo代码
2.spring 配置相关bean
(1).创建dataSource
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
(2).创建sqlSession,在其中配置好pageHelper
  • <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  • <property name="dataSource" ref="dataSource"/>
  • <!--Spring可以通过指定classpath*:与classpath:前缀加路径的方式从classpath
  • 加载文件,如bean的定义文件.classpath*:的出现是为了从
  • 多个jar文件中加载相同的文件.classpath:只能加载找到的第一个文件.-->
  • <property name="mapperLocations" value="classpath*:mappers/*Mapper.xml"/>
  • <!--mybatis主配置文件,这里省略-->
  • <!-- <property name="configLocation" value=""/>-->
  • <!--分页插件配置-->
  • <property name="plugins">
  • <array>
  • <bean class="com.github.pagehelper.PageInterceptor">
  • <property name="properties">
  • <!--使用下面的方式配置参数,一行配置一个 -->
  • <value>

  • helperDialect=mysql
  • </value>
  • </property>
  • </bean>
  • </array>
  • </property>

  • <!--pagehelper 之前版本的配置-->
  • <!-- <property name="plugins">
  • <array>
  • <bean class="com.github.pagehelper.PageHelper">
  • <property name="properties">
  • <value>dialect=mysql</value>
  • </property>
  • </bean>
  • </array>
  • </property>-->
  • </bean>

其中有一个MapperScannerConfigurer,会自动生成dao层的实体,在使用@Autowired注入dao层类时会IDEA会找不到该bean,但不影响实际运行

  • <bean name="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  • <property name="basePackage" value="demo.dao"/>
  • <!--<property name="sqlSessionFactoryBeanName" ref="sqlSessionFactory"/>-->
  • </bean>

  • <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  • <property name="dataSource" ref="dataSource"/>
  • <!--Spring可以通过指定classpath*:与classpath:前缀加路径的方式从classpath
  • 加载文件,如bean的定义文件.classpath*:的出现是为了从
  • 多个jar文件中加载相同的文件.classpath:只能加载找到的第一个文件.-->
  • <property name="mapperLocations" value="classpath*:mappers/*Mapper.xml"/>
  • <!--mybatis主配置文件,这里省略-->
  • <!-- <property name="configLocation" value=""/>-->
  • <!--当前版本分页插件配置 -->
  • <property name="plugins">
  • <array>
  • <bean class="com.github.pagehelper.PageInterceptor">
  • <property name="properties">
  • <!--使用下面的方式配置参数,一行配置一个 -->
  • <value>
  • helperDialect=mysql
  • </value>
  • </property>
  • </bean>
  • </array>
  • </property>

  • <!--之前版本的配置-->
  • <!-- <property name="plugins">
  • <array>
  • <bean class="com.github.pagehelper.PageHelper">
  • <property name="properties">
  • <value>dialect=mysql</value>
  • </property>
  • </bean>
  • </array>
  • </property>-->
  • </bean>

3.pageHelper简单使用

  • //pageHelper会在之后的sql查询中加上分页查询语句
  • PageHelper.startPage(1,3);
  • if(demoMapper==null){
  • System.out.println("null");
  • }
  • List<Demo> demoList=demoMapper.getDemo("12");
  • PageInfo<Demo> result=new PageInfo<>(demoList);

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值