1.集成通用mapper
1). 添加Maven依赖或引入Jar包
a:添加pom下的依赖
<dependency>
<groupId>com.github.abel533</groupId>
<artifactId>mapper</artifactId>
<version>2.3.4</version>
</dependency>
b:jar包导入
如果想引入Jar包,可以从下面的地址下载:
https://oss.sonatype.org/content/repositories/releases/com/github/abel533/mapper/
http://repo1.maven.org/maven2/com/github/abel533/mapper/
由于通用Mapper依赖JPA,所以还需要下载persistence-api-1.0.jar:
http://repo1.maven.org/maven2/javax/persistence/persistence-api/1.0/
2)集成配置
集成通用mapper有多种方法
在mybatis配置文件中配置如下:
<plugins>
<plugin interceptor="com.github.abel533.mapperhelper.MapperInterceptor">
<!--================================================-->
<!--可配置参数说明(一般无需修改)-->
<!--================================================-->
<!--UUID生成策略-->
<!--配置UUID生成策略需要使用OGNL表达式-->
<!--默认值32位长度:@java.util.UUID@randomUUID().toString().replace("-", "")-->
<!--<property name="UUID" value="@java.util.UUID@randomUUID().toString()"/>-->
<!--主键自增回写方法,默认值MYSQL,详细说明请看文档-->
<property name="IDENTITY" value="HSQLDB"/>
<!--序列的获取规则,使用{num}格式化参数,默认值为{0}.nextval,针对Oracle-->
<!--可选参数一共3个,对应0,1,2,分别为SequenceName,ColumnName,PropertyName-->
<property name="seqFormat" value="{0}.nextval"/>
<!--主键自增回写方法执行顺序,默认AFTER,可选值为(BEFORE|AFTER)-->
<!--<property name="ORDER" value="AFTER"/>-->
<!--通用Mapper接口,多个通用接口用逗号隔开-->
<property name="mappers" value="com.github.abel533.mapper.Mapper"/>
</plugin>
</plugins>
spring配置文件中配置如下:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" >
<array>
<value>classpath:mapper/*.xml</value>
<value>classpath:com/isea533/mybatis/mapper/*.xml</value>
</array>
</property>
<property name="typeAliasesPackage" value="com.isea533.mybatis.model"/>
<property name="plugins">
<array>
<bean class="com.github.abel533.mapperhelper.MapperInterceptor">
<property name="properties">
<!-- 属性一行一个,具体属性参考mybatis配置文件中的属性 -->
<value>
参数名1=值1
参数名2=值2
mappers=com.github.abel533.mapper.Mapper
</value>
</property>
</bean>
</array>
</property>
</bean>
IDENTITY参数配置(仅对 insert 有用)
对于不同的数据库,需要配置不同的参数,这些参数如下:
- DB2: VALUES IDENTITY_VAL_LOCAL()
- MYSQL: SELECT LAST_INSERT_ID()
- SQLSERVER: SELECT SCOPE_IDENTITY()
- CLOUDSCAPE: VALUES IDENTITY_VAL_LOCAL()
- DERBY: VALUES IDENTITY_VAL_LOCAL()
- HSQLDB: CALL IDENTITY()
- SYBASE: SELECT @@IDENTITY
- DB2_MF: SELECT IDENTITY_VAL_LOCAL() FROM SYSIBM.SYSDUMMY1
- INFORMIX: select dbinfo(‘sqlca.sqlerrd1’) from systables where tabid=1
- JDBC:这会令 MyBatis 使用 JDBC 的 getGeneratedKeys 方法来取出由数据库内部生成的主键(比如:像 MySQL 和 SQL Server 这样的关系数据库管理系统的自动递增字段)。
JAVA编码方式使用:
// 主键自增回写方法,默认值MYSQL
mapperHelper.setIDENTITY(“HSQLDB”);
Spring中可以属性注入: