mybatis
重生之我是一名程序员
IN IT && WIN IT !
展开
-
mybatis-sqlSessionTemplate使用connection
在mybatis中想通过 connection 操作 PrepareStatement, 报了。当使用sqlSessionTemplate获取connection时,其内部是通过代理类。在最后 ,发现如果 sqlSession 不为空,就会关闭 sqlSession。转载 2024-01-30 09:17:05 · 276 阅读 · 0 评论 -
自定义ORM(mybatis)源码(六)-类型处理器
模仿mybatis用于处理 sql 设置参数类型和 执行 sql 后响应字段的类型处理。原创 2023-12-20 09:30:43 · 548 阅读 · 0 评论 -
自定义ORM(mybatis)源码(五)-sql解析
模仿mybatis解析sql中的占位符,并替换成 sql 中的?原创 2023-12-20 09:30:12 · 448 阅读 · 0 评论 -
自定义ORM(mybatis)源码(四)-MapperProxy
模仿mybatis。原创 2023-12-20 09:29:40 · 419 阅读 · 0 评论 -
自定义ORM(mybatis)源码(三)-创建SqlSession
自定义ORM(mybatis)源码(三)-创建SqlSession模仿mybatis。原创 2023-12-20 09:29:04 · 404 阅读 · 0 评论 -
自定义ORM(mybatis)源码(二)-解析mapper.xml
自定义ORM(mybatis)源码(二)-解析mapper.xml模仿mybatis配置文件</</</</</</</这里解析 mappers 节点下的。原创 2023-12-20 09:28:29 · 528 阅读 · 0 评论 -
自定义ORM(mybatis)源码(一)-解析config.xml
模仿mybatis。原创 2023-12-20 09:27:39 · 435 阅读 · 0 评论 -
mybatis-plus 配置多个数据源
修改启动类,排除mybatis和mybatis-plus 自动装配。转载 2023-05-11 09:09:16 · 1177 阅读 · 0 评论 -
idea - 刷新 mybatis xml
在开发 mybatis 时,修改 xml 不能立刻生效, 在网上找了一下,恰好项目是用mybatis-plus ,修改了一下,可以实现刷新主要就是加载到修改的xml 文件,然后重新解析xml到内存初始化这个类创建 mybatis-refresh.properties启动修改 xml 后good luck!......转载 2022-07-03 10:18:19 · 1573 阅读 · 0 评论 -
Mybatis Plus 中 BaseMapper 实现
Mybatis Plus 中 BaseMapper 实现在使用 mybatis plus 的时候,我们只要继承 BaseMapper 就可以使用其中的一些方法了public interface BaseMapper<T> extends Mapper<T> { int insert(T entity); int deleteById(Serializable id); //...}怎么实现的呢?MybatisSqlSessionFactor转载 2022-05-07 08:40:06 · 6270 阅读 · 0 评论 -
mybatis 懒加载 - 原理
mybatis 懒加载 - 原理流程如果ResultSetHandler 处理过程中发现ResultMap中属性存在 nestedMap, 则为这个对象创建代理对象(JavassistProxyFactory[默认实现])JavassistProxyFactory.invoke 方法当通过代理对象调用 get 方法时,如果配置了懒加载,则调用 ResultLoaderMap 中 load 方法ResultLoaderMapResultLoaderMap 交给 LoadPair 的 load转载 2022-02-10 13:14:15 · 414 阅读 · 0 评论 -
mybatis - ResultSetHandler
mybatis - ResultSetHandlerResultSetWrapperprivate final ResultSet resultSet;private final TypeHandlerRegistry typeHandlerRegistry;private final List<String> columnNames = new ArrayList<>();private final List<String> classNames = new转载 2021-10-08 09:02:31 · 318 阅读 · 0 评论 -
## mybatis - 四大组件- StatementHandler
mybatis - 四大组件- StatementHandler接口定义StatementHandler : 将 带有占位符的 sql 处理成可执行的 sql, 并对结果集处理返回public interface StatementHandler { Statement prepare(Connection connection, Integer transactionTimeout) throws SQLException; /** * 设置参数 */ voi转载 2021-10-08 09:00:48 · 124 阅读 · 0 评论 -
mybatis - PerpetualCache 一级缓存
mybatis - PerpetualCache 一级缓存mybatis 使用 cache 顺序DefaultSqlSession --> CacheExecutor(二级缓存) --> BaseExecutor(PerpetualCache一级缓存) SimpleExecutor一级缓存生命周期//DefaultSqlSession.javapublic class DefaultSqlSession implements SqlSession { private final转载 2021-09-24 17:24:26 · 1901 阅读 · 0 评论 -
mybatis - 1+N 问题解决
mybatis - 1+N 问题解决这是 mybatis 官网提供的解决 n+1 问题方案,关联的多结果集, 需要 mybatis 版本 在 3.2.3 以后 !!下面照葫芦画瓢数据库脚本CREATE TABLE `t_account` ( `id` int NOT NULL AUTO_INCREMENT, `user_name` varchar(255) DEFAULT NULL, `passwd` varchar(255) DEFAULT NULL, PRIMARY KEY原创 2021-09-24 08:47:33 · 566 阅读 · 0 评论 -
mybatis 懒加载
mybatis 懒加载依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency><dependency> <groupId>org.mybatis.spring.boot</groupId&转载 2021-09-24 08:45:33 · 261 阅读 · 0 评论 -
mybatis-游标入门
mybatis-游标入门背景在做通知的项目的时候需要将用户数据从数据库加载,然后发送给这些用户,但是用户数据量比较大,在读取数据的时候就成了瓶颈方案采用Jdbc 方式,Prepare_statement的 cursormybatis 方式游标mybatis 游标使用@Mapperpublic interface UserMapper { @Select("select * from t_user") Cursor<UserDo> selectCursor()转载 2020-08-09 08:54:00 · 1785 阅读 · 0 评论 -
mybatis-xml解析
mybatis-xml解析技术摘自<mybatis技术内幕>一般的ORM框架和IOC容器都会对xml进行解析,并在内存中生成生成相对应的 Bean,那么,解析xml使用的技术如:DOMSAXStAXDOMDOM是基于树形结构的XML解析方式,它会将整个XML文档读入内存,并构建一个DOM树,基于这棵树形结构对各个节点( node )进行操作使用DOM操作XML优...转载 2020-02-21 13:32:27 · 234 阅读 · 0 评论 -
mybatis中动态sql中test的一些问题
mybatis动态sql中OGNL中type=="1"和type='1'的区别最近在mybatis中使用OGNL所遇到的坑: 一点鸡肋: type=="1"和type='1'的区别//CountryDao.javapublic interface CountryDao { CountryDo getByType(@Param("type") String type);}..转载 2018-05-19 17:06:10 · 1805 阅读 · 2 评论 -
spring结合mybatis时一级缓存失效问题
spring结合mybatis时一级缓存失效问题之前了解到mybatis的一级缓存是默认开启的,作用域是sqlSession,是基 HashMap的本地缓存。不同的SqlSession之间的缓存数据区域互不影响。当进行select、update、delete操作后并且commit事物到数据库之后,sqlSession中的Cache自动被清空<setting name="local...转载 2018-05-20 09:34:36 · 6908 阅读 · 4 评论 -
mybatis中使用pageHelper实现一对多分页
mybatis中使用pageHelper实现一对多分页项目里经常遇到一对多分页的问题,以前认为PageHelper不支持一对多的分页,还一直自己重写分页方法。。。。数据库表countryCREATE TABLE `country` ( `country_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT, `coun...转载 2018-05-20 15:38:58 · 15428 阅读 · 16 评论 -
mybatis事物管理
mybatis事物管理mybatis事物管理主要通过org.apache.ibatis.transaction.Transaction接口实现,主要实现类有SpringManagedTransaction、JdbcTransaction和ManagedTransaction。同时还设计了org.apache.ibatis.transaction.TransactionFactory来获取Tra...转载 2018-05-20 21:47:31 · 303 阅读 · 0 评论 -
mybatis缓存机制
mybatis缓存机制mybatis的查询分为一级缓存和二级缓存一级缓存是SqlSession级别的缓存二级缓存是mapper级别的缓存,二级缓存是多个SqlSession共享的一级缓存(SqlSession级别)一级缓存是SqlSession级别的缓存。mybatis使用hashMap作为存储缓存数据,使用id作为key。不同sqlSession之间缓存数据区域(Has...转载 2018-05-21 22:06:12 · 159 阅读 · 0 评论 -
mybatis批量插入返回自增长id集合
mybatis批量插入返回自增长id集合都知道使用useGeneratedKeys可以在插入数据的返回自增长的id,其实在批量插入的时候也可以使用useGeneratedKeys返回批量插入的自增长id集合UserScoreDo.java: public class UserScoreDo implements Serializable { private Intege...转载 2018-06-12 08:57:00 · 10737 阅读 · 0 评论 -
mybatis中association和collection的column传入多个参数问题
mybatis中association和collection的column传入多个参数值项目中在使用association和collection实现一对一和一对多关系时需要对关系中结果集进行筛选,如果使用懒加载模式,即联合使用select标签时,主sql和关系映射里的sql是分开的,查询参数传递成为问题。mybatis文档: property description...转载 2018-05-30 23:40:54 · 59177 阅读 · 9 评论 -
mybatis中使用OGNL表达式
mybatis中使用OGNL表达式MyBatis常用OGNL表达式: e1 or e2e1 and e2e1 == e2,e1 eq e2e1 != e2,e1 neq e2e1 lt e2:小于e1 lte e2:小于等于,其他gt(大于),gte(大于等于)e1 in e2e1 not in e2e1 + e2,e1 * e2,e1/e2,e1 - e2,e1%e2...转载 2018-06-29 17:48:25 · 1542 阅读 · 0 评论 -
mybatis中拦截器执行顺序
mybatis中拦截器执行顺序拦截器初始化在org.apache.ibatis.builder.xml.XMLConfigBuilder中: private void pluginElement(XNode parent) throws Exception { if (parent != null) { for (XNode child : parent.getC...转载 2018-07-19 08:48:47 · 13929 阅读 · 3 评论 -
mybatis-generator-maven-plugin生成java8中的日期类型LocalDate等等
mybatis-generator-maven-plugin生成java8中的日期类型LocalDate等等基于mysql8.0与mybatis-generator-maven-plugin 1.3.7加入依赖插件<plugins> <plugin> <!-- 用maven mybatis插件如果不在plugin里面添加依...转载 2019-01-12 22:29:13 · 3685 阅读 · 9 评论 -
mybatis调用存储过程
mybatis调用存储过程UserDao.java内容: public interface UserDao{ void affectRows(Map<String,Object> param)}userDao.xml内容: <parameterMap id="affectRowsMap" type="java.util.Map"> ...转载 2018-04-02 11:13:46 · 124 阅读 · 0 评论