Skip to content

Commit e28766d

Browse files
committed
更新日志和版本号3.3.1
1 parent 7d6d8d2 commit e28766d

File tree

4 files changed

+40
-3
lines changed

4 files changed

+40
-3
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ Country代码:
9292
<dependency>
9393
<groupId>tk.mybatis</groupId>
9494
<artifactId>mapper</artifactId>
95-
<version>3.3.0</version>
95+
<version>3.3.1</version>
9696
</dependency>
9797
```
9898

@@ -110,7 +110,7 @@ http://repo1.maven.org/maven2/javax/persistence/persistence-api/1.0/
110110

111111
##Maven坐标以及下载地址
112112

113-
###最新版本3.3.1 - 2015-12-06
113+
###最新版本3.3.1 - 2015-12-09
114114

115115
- 增加`enableMethodAnnotation`参数,可以控制是否支持方法上的JPA注解,默认`false`
116116
设置`enableMethodAnnotation = true`的时候注意,如`getRealName``setYourName`都会产生`realName`属性或`yourName`属性,如果该方法对应的属性不是表中的字段,就需要给方法增加`@Transient`注解。

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828

2929
<groupId>tk.mybatis</groupId>
3030
<artifactId>mapper</artifactId>
31-
<version>3.3.1-SNAPSHOT</version>
31+
<version>3.3.1</version>
3232
<packaging>jar</packaging>
3333

3434
<name>mapper</name>

wiki/Changelog.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,41 @@
11
#更新日志
22

3+
###3.3.1 - 2015-12-09
4+
5+
- 增加`enableMethodAnnotation`参数,可以控制是否支持方法上的JPA注解,默认`false`
6+
设置`enableMethodAnnotation = true`的时候注意,如`getRealName``setYourName`都会产生`realName`属性或`yourName`属性,如果该方法对应的属性不是表中的字段,就需要给方法增加`@Transient`注解。
7+
同样如果你的实体是继承`Map`类型的,你不需要在实体中写`private String userName`这样的属性,你只需要写`setUserName``getUserName`这样的方法就可以。
8+
- 在处理的注解的时候,优先从`Field`获取,然后是`setter`方法,最后是`getter`方法,注解重复的情况下,只获取按顺序得到的第一个
9+
- 为了支持如`public class Country extends Entity<Integer, String>`这样的泛型类型,在生成`#{propertyName}`的时候都带上了`javaType`属性。
10+
产生的结果就是`#{propertyName, javaType=java.lang.Integer}`这样子的,这会导致当你调用方法时,必须保证类型一致。
11+
也就是假设主键是`Integer id`,调用`selectByPrimaryKey(Object id)`的时候,参数`id`必须使用`100`这样的数字,不能使用`"100"`字符串(以前版本可以)。
12+
如果不带`javaType`,那么如果`id`是个泛型,MyBatis查找的时候就会因为找不到正确的类型而抛出异常。
13+
- 为了让扩展更方便,将`tk.mybatis.mapper.provider`包下所有的通用接口的实现方法改为了`String`形式。
14+
例如`selectByPrimaryKey`方法:
15+
```java
16+
/**
17+
* 根据主键进行查询
18+
*
19+
* @param ms
20+
*/
21+
public String selectByPrimaryKey(MappedStatement ms) {
22+
final Class<?> entityClass = getEntityClass(ms);
23+
//将返回值修改为实体类型,只有select返回实体类型的需要修改返回值,其他如insert,update,delete都是返回int,不需要修改
24+
setResultType(ms, entityClass);
25+
StringBuilder sql = new StringBuilder();
26+
sql.append("select ");
27+
sql.append(EntityHelper.getSelectColumns(entityClass));
28+
sql.append(" from ");
29+
sql.append(SqlHelper.getDynamicTableName(entityClass, tableName(entityClass)));
30+
sql.append(" where ");
31+
sql.append(EntityHelper.getPrimaryKeyWhere(entityClass));
32+
return sql.toString();
33+
}
34+
```
35+
自己扩展单表操作的方法是非常容易的事情,建议有一定通用Mapper使用基础的自行扩展,扩展可以参考[如何扩展通用接口](http://git.oschina.net/free/Mapper/blob/master/wiki/mapper3/6.MyMapper.md)
36+
- 新增`SqlHelper`工具类,其中包含了大量可用的现成的SQL方法
37+
38+
339
##3.3.0 - 2015-11-01
440

541
- 增加对动态表名的支持,需要实体类继承`IDynamicTableName`接口,用法见[详细说明](http://git.oschina.net/free/Mapper/blob/master/wiki/mapper3/3.2.Use330.md)

wiki/mapper3/2.Integration.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ mapperHelper.processConfiguration(session.getConfiguration());
8080
* `schema`:同`catalog``catalog`优先级高于`schema`
8181
* `notEmpty`:insert和update中,是否判断字符串类型`!=''`,少数方法会用到
8282
* `style`:实体和表转换时的规则,默认驼峰转下划线,可选值为`normal`用实体名和字段名;`camelhump`是默认值,驼峰转下划线;`uppercase`转换为大写;`lowercase`转换为小写
83+
* `enableMethodAnnotation`:可以控制是否支持方法上的JPA注解,默认`false`
8384

8485
使用Properties文件配置时使用上面的属性名,使用`Config`类配置时,调用相应的setter即可。
8586

0 commit comments

Comments
 (0)