一 java 中一些简单类型的别名
http://blog.csdn.net/rootsuper/article/details/8537498
- 基本类型:
- _byte byte
- _long long
- _short short
- _int int
- _integer int
- _double double
- _float float
- _boolean boolean
- 包装类型:
- string String
- byte Byte
- long Long
- short Short
- int Integer
- integer Integer
- double Double
- float Float
- boolean Boolean
- date Date
- decimal BigDecimal
- bigdecimal BigDecimal
- object Object
- iterator Iterator
- 集合类型:
- map Map
- hashmap HashMap
- list List
- arraylist ArrayList
- collection Collection
二 几点注意:
https://github.com/mybatis/mybatis-3/wiki/FAQ
1 如何使用多参数:
A #{0} #{1} #{2} 。。。
B 把多个参数封装到一个Map,每个参数名是key,xml中配置parameterType="map"
C 把多个参数封装到一个Model,每个参数是Model的一个数据节点;
D Mapper接口中可以是多个参数,在每个参数前加上@Param注解,如:
List<VisitLastDateResult> selectRecentVisits(@Param("staffId") Long staffId, @Param("firmIds") List<Long> firmIds);
2 两个符号:
A #{} 只能用于传参,mybatis会把它解释成一个param maker;
B ${} 可以用在mysql其它关键位置,mybatis把它解释成一个字符串进行占位符号替换,如
select id, firm_id, max(leave_date) from ${table} where staff_id = #{staffId}
3 SQL like 模糊查询:
String wildcardName = "%Smi%";
List<Name> names = mapper.selectLike(wildcardName);
<select id="selectLike">
select * from foo where bar like #{value}
</select>
4 批量插入:
List<String> names = new ArrayList<String>();
names.add("Fred");
names.add("Barney");
names.add("Betty");
names.add("Wilma");
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH);
try {
NameMapper mapper = sqlSession.getMapper(NameMapper.class);
for (String name : names) {
mapper.insertName(name);
}
sqlSession.commit();
} finally {
sqlSession.close();
}
5 返回主键值:
int rows = mapper.insertName(name);
rows:影响的行数
name.getId:产生的主键
<insert id="insertName" useGeneratedKeys="true" keyProperty="id">
insert into names (name) values (#{name})
</insert>