1.mybatis-config.xml: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-config.dtd"> <configuratio…
在上一篇博客<mybatis源代码分析:深入了解mybatis延迟加载机制>讲诉了mybatis延迟加载的具体机制及实现原理. 可以看出,如果查询结果对象中有一个属性是需要延迟加载的,那整个结果对象就是一个代理对象,后面对这个对象的访问,都是通过代理对象去访问的,那是否有更好的方法呢? 答案是有的. Student对象关联Teacher对象,需要对Teacher对象延迟加载. 一种方式就是mybatis当前的这种做法,对Student进行代理,当访问到getTeacher时就进行延迟加载,设置…
下文从mybatis(3.2.7)延迟加载样例讲起,逐步深入其实现机制. 下面的例子是Student类关联一个Teacher对象,在访问Student对象时,不立即加载其关联的Teacher对象,而是等到访问Teacher对象的属性时,才加载Teacher对象. 源代码下载:http://download.csdn.net/detail/u014569459/7363097 1.Student.java package dao.domain; public class Student { pub…
MyBatis 延迟加载策略 文章源码 什么是延迟加载 延迟加载,就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据,也被成为懒加载. 好处:先从单表查询,需要时再从关联表去关联查询,大大提高了数据库性能. 坏处:因为当需要用到数据时才进行数据库查询,这样在进行大批量数据查询时,以可能造成用户等待时间变长,造成用户体验下降. 与延迟加载相对的,就是立即加载,它指的是不管用不用,只要一调用方法,马上发起查询. 在对应的四种表关系中,一对多和多对多通常情况下采用延迟加载,而多对一和一对一通…
 当你要使用one to one,many to one 就会碰到N+1的问题.很明显,对象之间关联很多有A关联B,B关联C,C关联A这样的关系,如果不是采用延迟加载,很容易一下在出现成千上万对象,造成N+1的问题. 而Mybatis 设置延迟加载主要2个属性配置: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//ibatis.apac…
批量插入功能是我们日常工作中比较常见的业务功能之一,之前我也写过一篇关于<MyBatis Plus 批量数据插入功能,yyds!>的文章,但评论区的反馈不是很好,主要有两个问题:第一,对 MyBatis Plus(下文简称 MP)的批量插入功能很多人都有误解,认为 MP 也是使用循环单次插入数据的,所以性能并没有提升:第二,对于原生批量插入的方法其实也是有坑的,但鲜有人知. ​ 所以综合以上情况,磊哥决定再来一个 MyBatis 批量插入的汇总篇,同时对 3 种实现方法做一个性能测试,以及相应…
PL/SQL Developer 使用中文条件查询时无数据,这是由于字符集的不一致导致的. 执行以下sql命令:select userenv('language') from dual; 显示:SIMPLIFIED CHINESE_CHINA.AL32UTF8 解决方法: 添加环境变量,新建系统变量: 变量名:NLS_LANG 变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK(变量值为SIMPLIFIED CHINESE_CHINA.UTF8 会出现中文乱码) 当变量值…
关于php读mysql数据库时出现乱码的解决方法 php读mysql时,有以下几个地方涉及到了字符集. 1.建立数据库表时指定数据库表的字符集.例如 create table tablename ( id int not null auto_increment, title varchar(20) not null, primary key ('id') )DEFAULT CHARSET =UTF8; 复制代码 2. mysql的字符集 mysql中有三个重要的变量,character_set_…
unix/linux上备份Oracle时EXP-00091的错误解决方法 unix/linux上备份数据时的错误解决方法 EXP-00091: Exporting questionable statistics.解决方法 今日EXP数据发现如下错误: EXP-00091: Exporting questionable statistics. . . exporting table                     TAXVOU3129    2904185 rows exported EX…
原文:[百度地图API]当地址解析失败时,如何调用search方法查找地址 有个朋友问我,当地址解析失败时,应该如何处理呢?比如,他想搜索“南宁市青秀区”. ----------------------------------------------------------------------------- 首先,我们需要弄明白,地址解析的原理: ); map.addOverlay(new BMap.Marker(point)); }}, "北京市");  当系统无法匹配“北京市海…
这是java的一条规则.那么为什么会有这条规则呢?要想弄懂这个问题,就需要弄懂局部内部类对象和局部变量的生命周期的谁更长的问题. 首先,看一段代码,以没有将变量声明为final的代码作为例子,代码如下: class Outer{ Object obj; public void outerMethod() { //局部变量 int x = 5; //定义在方法中的内部类称为局部内部类 class Inner{ public void innerMethod() { System.out.print…
对象为null时调用改对象的方法会报错…
问题描述:在ASP.Net环境中,当用户点击报表中的超链接时如何调用Java Script方法? 问题解答: 你可以在TextObject.Hyperlink对象中编写js代码(javascript:alert('You clicked!')). 或者将你的方法写入*.aspx(cshtml)文件: 然后在超链接中调用方法: TextObject1.Hyperlink = "javascript:count_rabbits()"; 本站文章除注明转载外,均为本站原创或翻译欢迎任何形式的…
学习目标 1.掌握创建日期对象的方法 2.掌握date对象中获取日期时间的方法 3.掌握date对象中设置日期时间的方法 如何创建一个日期对象 语法:new Date(); 功能:创建一个日期时间对象 返回值:比传参的情况下,返回当前的日期时间对象. 说明:如果想根据特定的日期和时间创建日期对象,必需传入表示该日期的: 毫秒数或者是一组用逗号隔开的表示年月日时分秒的参数. <script>       // 创建一个日期时间对象       var weeks=["日",&…
当我们调试服务进程或子进程时,无法直接用调试加载进程的方式启动,此时需要在启动程序时自动连接调试器方法: 第一步:注册表展开到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options路径下: 第二步:在Image File Execution Options上鼠标右键,新建“项”,项名为你要调试的程序,比如 test.exe: 第三步:在项名上,右键,新建字符串值“De…
原文地址: PL/SQL Developer 使用中文条件查询时无数据的解决方法 PL/SQL Developer 使用中文条件查询时无数据,这是由于字符集的不一致导致的. 执行以下sql命令:select userenv('language') from dual; 显示:SIMPLIFIED CHINESE_CHINA.AL32UTF8 解决方法: 添加环境变量,新建系统变量: 变量名:NLS_LANG 变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK(变量值为SI…
Spring+Mybatis整合时Caused by: java.lang.IllegalArgumentException错误 org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file [E:\workspace\spring_mybatis\bin\cn\gts\ssm\mapper\UserMapper.class]; nest…
springBoot上传文件时MultipartFile报空问题解决方法 1.问题描述: 之前用spring MVC,转成spring boot之后发现上传不能用.网上参考说是spring boot已经有CommonsMultipartResolver了,但是我的上传后台接收的还是null. 2.解决方法 加入配置类 import org.springframework.context.annotation.Bean; import org.springframework.context.ann…
Ext.js 中 Function能在定义时就能执行的方法的写法 function(){...}() /** * 第二部分Function:能在定义时就能执行的方法的写法 function(){...}(); //注意 红色  括号,即 Function定义之后,价格括号既可以定义之后就执行了 */ /** * 一.普通的方法的定义与执行 */ // 1-1.普通的方法定义,不带返回值的情况 fun = function() { alert("执行"); }; // 1-2.普通的方法…
MyBatis 插入时返回刚插入记录的主键值 一.要求: 1.数据库表中的主键是自增长的,如:id: 2.获取刚刚插入的记录的id值: 二.源代码: 1.User.java package cn.com.zfc.model; public class User { private Integer id; private String name; private String password; public Integer getId() { return id; } public void s…
项目中有个一键切换皮肤的功能,感觉还不错,记录下,就是各颜色样式设置起来太复杂了,不知道有没有更简便的方法: 1.切换皮肤结构层 <li title="<s:text name='cems.skin'/>"> <a data-toggle="collapse" href="#colorPick"><img src="${basePath}/images/homePageicon/colorPic…
1.去掉chrome.safari input或textarea在得到焦点时出现黄色边框的方法 input{ outline:0;} 2.去掉chrome.safari textarea右下角可拖动鼠标改变textarea大小的方法 textarea{ resize:none;} 集合: input,textarea{ outline:0; resize:none;} 3.input中文字垂直居中 input{ margin:0; padding:0;} .login input{ height…
WPF拖动DataGrid滚动条时内容混乱的解决方法 在WPF中,如果DataGrid里使用了模板列,当拖动滚动条时,往往会出现列表内容显示混乱的情况.解决方法就是在Binding的时候给UpdateSourceTrigger赋值. <Grid> <Grid.RowDefinitions> <RowDefinition Height="25"></RowDefinition> <RowDefinition></RowDe…
java操作redis时,StringRedisTemplate的expire()方法的作用,什么时候使用 //重新设置过期时间为30分钟,刷新时间 redisTemplate.expire(MsOpenApiRedisUtil.SESSION_KEY_IN_LOGIN_NAME+loginName,30,TimeUnit.MINUTES); redisTemplate.expire(userInfoInSessionKey,30,TimeUnit.MINUTES);…
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/linux_loajie/article/details/33823637 Android开发环境搭建时遇到问题的解决方法  错误1: The connection to adb is down, and a severe error has occured.[2013-08-31 16:11:56 -com.qihoo.subject] You must restart adb and Eclip…
首先我们先来看下String类的源码:可以发现String是重写了Object类的equals方法的,并且也重写了hashcode方法 public boolean equals(Object anObject) {     if (this == anObject) {         return true;     }     if (anObject instanceof String) {         String anotherString = (String)anObject;…
原文:WPF中ItemsControl应用虚拟化时找到子元素的方法  wpf的虚拟化技术会使UI的控件只初始化看的到的子元素, 而不是所有子元素都被初始化,这样会提高UI性能. 但是我们经常会遇到一个问题: 应用虚拟化后看不见的子元素因为没有实际产生导致ItemContainerGenerator的查找元素方法(ContainerFromIndex / ContainerFromItem)失效. 解决办法1: (1)监听ItemsControl的ItemContainerGenerator的St…
FastJson序列化时(即转成JSON字符串时),可以过滤掉部分字段,或者只保留部分字段,方法有很多,下面举一些常用的方法. 方法一.FastJson的注解 @JSONField(serialize = false) private String name; 最便捷,直接在实体的字段上加FastJson的注解serialize = false,转JSON字符串时就不会有该字段. 方法二.JAVA关键字 @JSONField(name = "AGE") private transien…
我的计算机->管理->系统工具->事件查看器->自定义视图->Kernel-Pnp->详情->进程ID 然后在任务管理器里找到该进程(任务管理器->查看->进程ID->显示进程ID列),并强制关闭. 参考资料: 弹出USB大容量存储设备时出问题的解决方法…
我们在工作中有时候可能会遇到这样场景,需要在退出容器的时候执行某些操作.SpringBoot中有两种方法可以供我们来选择(其实就是spring中我们常用的方式.只是destory-method是在XML中配置的,SpringBoot是去配置化.所以这里就不提这种方式了),一种是实现DisposableBean接口,一种是使用@PreDestroy注解.OK,下面我写两个例子看一下: DisposableBean接口 我们可以通过实现这个接口来在容器退出的时候执行某些操作.例子如下: packag…