List<Country> countryList = sqlSession. selectList (” selectAll ” );
<setting name=”mapUnderscoreToCamelCase” value=”true”/>
将数据库字段自动转换为Java对象的属性值,不需要配置别名
使用SqlSession获取接口类
UserMapper userMapper = sqlSession . getMapper (UserMapper . class) ;
实体类嵌套,除了下面的方式也可以通过resultMap实现
<select id=”selectRolesByUserid” resultType=”tk.mybatis .simple .model .SysRole”> select
r.id,
r.role name roleName,
r .enabled,
r .create by createBy,
r.create time createTime,
u.user name as ”user.userName”,
u.user email as ”user.userEmail ”
from sys user u
inner join sys user role ur on u.id = ur.user id
inner join sys role r on =
where u.id = #{user!d}
</select>
insert
Mapper接口动态代理实现原理
public class MyMapperProxy<T> implements InvocationHandler {
private Class<T> mapperinterface;
private SqlSession sqlSession;
public MyMapperProxy(Class<T> mapperinterface, SqlSession sqlSession) {
this .mapperinterface = mapperinterface;
this.sqlSession = sqlSession ;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
List<T> list= sqlSession.selectList(mapperinterface.getCanonicalName() + ” . ” + method .getName());
return list;
}
}
调用
SqlSession sqlSession = getSqlSession() ;
MyMapperProxy userMapperProxy = new MyMapperProxy(UserMapper.class, sqlSession) ;
UserMapper userMapper = (UserMapper) Proxy.newProxyInstance(
Thread.currentThread().getContextClassLoader() , new Class[]{UserMapper.class},
userMapperProxy) ;
List<SysUser> user= userMapper.selectAll();
注解方式
<bind name="userNameLike" value="'%' + userName + '%'" />
可以创建一个变量绑定到上下文,value是OGNL表达式