mybatis
文章平均质量分 61
沙漠662
自学javaEE
展开
-
Mybatis查询执行流程
因为mapper是代理对象 所有执行目标方法会先执行代理类的 invoke方法method.getDeclaringClass 是 Object里面的方法 不是我们写的接口中的方法 所有直接让他执行就可以了我们写的方法执行 在红框中标注的BoundSql里面包含了 sql语句 sql语句是带 占位符 ?的那种形式的sql语句入:select * f...原创 2020-02-05 17:32:41 · 601 阅读 · 0 评论 -
Mybatis原理
1. SqlSessionFactory2.SqlSessionsqlSession实现类有:DefaultSqlSession , SqlSessionManagerSqlSessionFactory 实现类:DefaultSqlSessionFactory和 SqlSessionManager根据DefaultSqlSession源码可以知道似乎一切的一切,都是从配置对象...原创 2020-02-05 16:49:19 · 147 阅读 · 0 评论 -
MyBatis使用别名
在Mybatis的全局配置文件中添加最后在最开始的时候加入 <!-- 通过package, 可以直接指定package的名字, mybatis会自动扫描你指定包下面的javabean, 并且默认设置一个别名,默认的名字为: javabean 的首字母小写的非限定类名来作为它的别名。 也可在javabean 加上注解@Alias 来自定义别名, 例如: @原创 2015-08-07 15:43:01 · 4112 阅读 · 0 评论 -
Mybatis配置缓存
1.1 为什么使用缓存将从数据库中查询出来的数据缓存起来,缓存介质:内存、磁盘,从缓存中取数据,而不从数据库查询,减少了数据库的操作,提高了数据处理性能。1.2 一级缓存Mybatis默认提供一级缓存,缓存范围是一个sqlSession。在同一个SqlSession中,两次执行相同的sql查询,第二次不再从数据库查询。测试执行提交清除缓存原创 2015-08-11 14:29:13 · 547 阅读 · 0 评论 -
MyBatis 配置延迟加载
在全局配置文件中 配置文件中type="orders"使用的是别名 <!-- 配置延迟加载 用户信息 select:延迟加载 时调用 的statement,如果跨命名空间,需要加上namespace column:将哪一列的值作为参数 传到延迟加载 的statement --> <原创 2015-08-11 14:13:46 · 430 阅读 · 0 评论 -
使用mybatis开发原始dao
@Override public User findUserById(int id) throws Exception { // 根据SqlSessionFactory创建SqlSession SqlSession sqlSession = sqlSessionFactory.openSession(); // 通过sqlSession查询用户信息(发起数据库操作) //原创 2015-08-07 14:15:44 · 595 阅读 · 0 评论 -
Mybatis Mapper动态代理方法 即 只写Dao接口 不谢Dao的实现类
Mapper动态代理方法:程序员只需要写dao接口(Mapper),而不需要写dao实现类,由mybatis根据dao接口和映射文件中statement的定义生成接口实现代理对象。可以调用代理对象方法。Mybatis官方建议:将dao接口叫做mapper。目标:通过一些规则让mybatis根据dao接口和映射文件中statement的定义生成接口实现代理对象mybatis将以下代码自动原创 2015-08-07 14:33:55 · 6400 阅读 · 0 评论 -
Mybatis map value 等于null无法获取值
在mybatis config.xml中原创 2016-05-30 09:35:40 · 2533 阅读 · 0 评论 -
mybatis的sql中使用concat查询结果是乱码处理
当mybatis中的sql语句使用concat拼接是 查询结果是乱码一般原因是concat拼接的类型不一样 一个是数字类型 一个是字符类型 就会出现乱码解决方法CONCAT(CONVERT(ROUND(IFNULL(temp.num,0)/91*100,2),CHAR),'%')原创 2016-06-22 14:38:41 · 3718 阅读 · 1 评论