
Mybatis
Mybatis
漫天雪_昆仑巅
程序人生
展开
-
mybatis缓存配置
mybatis的缓存有三种方式:1、一级缓存(基于SqlSession会话级别的;2、二级缓存(基于nameSpace级别的,范围比以及缓存更广);3、第三方缓存;mybatis缓存使示意图:一、一级缓存说明:其中一级缓存是mybatis默认使用的缓存,无需手动配置,二级缓存需要手动配置;一级缓存失效条件1)sqlSession不同,由于一级缓存是基于sqlSession级别的,所以当使用不同sq...原创 2018-05-25 18:10:45 · 4431 阅读 · 0 评论 -
mybatis级联查询返回结果配置
级联业务场景:比如用户和部门的关系(暂时定义为1对1关系),即:在用户表User中有部门Dept表的外键dept_id,因此实体类也相对的在User类中有Dept对象的属性dept,这里就不一一描述了。那么级联查询,在查询用户信息的时候就需要把用户所属的部门名称信息也列出来;具体配置:级联查询配置属于高级查询,因此用到resultMap;通常配置级联查询有两种方式;第一种方式:可以直接使用属性名称...原创 2018-05-24 11:40:19 · 2195 阅读 · 0 评论 -
mybatis中Oracle参数为NULL错误解决
在Mybatis操作Oracle数据库的时候(PS:mysql中不会出现),会遇到个小问题,当数据库为Oracle时候,插入某个参数数据如果为null,mybatis会报错,提示类型不正确,原因是当插入数据为null类型的时候,mybatis会自动转换为JdbcType.OTHER类型,因此需要修改一下参数的转换类型有两种方式可以解决:1.公共配置方法:在Mybatis配置中设置jdbcTypeF...原创 2018-05-24 10:46:00 · 5499 阅读 · 0 评论 -
mybatis参数#{}和${}说明
在Mybaties参数通配符中可以用#{param}或者${param}这两种方式,但是这两种方式是有一定区别的,具体对比如下:参数说明#{param} :以预编译的形式,将参数设置到sql语句中,PreparedStatement,防止sql注入;${param} :取出值直接拼装在sql中,有sql注入安全隐患;示例:select * from tb where id = ${id} and ...原创 2018-05-24 10:39:32 · 1238 阅读 · 0 评论 -
mybatis主键自增设置
做插入数据的时候经常用到插入操作主键ID使用数据库自身的生成方式,比如说自增,或者使用序列号,具体配置如下//mysql设置使用自增的主键生成策略,并能获取生成的主键值<insert id="xxx" useGeneratedKeys="true" keyProperty="id">insert into tb(a,b,c) values(#{a},#{b},#{c})</in...原创 2018-05-23 11:12:07 · 6258 阅读 · 1 评论