_006_MyBatis
VeryHotLight
技术在于交流和分享,我的博客可以转载。
另外,我也转载了很多比较好的帖子。
如果作者有异议,请联系删除!
我的一些帖子可能存在错误与缺点,文档写得很烂(写不好),希望大家包容。
希望我的帖子能够帮助需要帮助的人。
展开
-
_001_MyBatics的入门
--------------------------------------------------------------- -------------------------------------------------------------------MyBatis依赖的jar包 MyBatis 框架的解压目录中只有一个 Jar 包,它是 MyBatis 的核心...原创 2018-05-15 00:46:22 · 135 阅读 · 0 评论 -
_018_mybatis_自关联_以多对一的方式实现
<mapper namespace="org.lfz.dao.INewLabelDao"> <!-- <select id="" resultMap=""> select id,name,pid from tb_newslabel where id=#{xxx} </select> --> <resultMap原创 2018-06-09 22:10:45 · 228 阅读 · 0 评论 -
_019_关联关系查询_多对多
什么是多对多关联关系?一个学生可以选多门课程,而一门课程可以由多个学生选。这就是典型的多对多关系关系。所以,所谓多对多关系,其实是由两个互反的一对多关系组成。一般情况下,多对多关系都会通过一个中间表来建立,例如选课表。...原创 2018-06-09 22:16:10 · 143 阅读 · 0 评论 -
_020_MyBatics_懒加载
MyBatis 中的延迟加载,也称为懒加载,是指在进行关联查询时,按照设置延迟规则推迟对关联对象的 select 查询。延迟加载可以有效的减少数据库压力。需要注意的是,MyBatis 的延迟加载只是对关联对象的查询有迟延设置,对于主加载对象都是直接执行查询语句的。关联对象加载时机MyBatis 根据对关联对象查询的 select 语句的执行时机,分为三种类型:直接加载、侵入式延迟加载与...原创 2018-07-19 18:16:21 · 118 阅读 · 0 评论 -
_021_MyBatis_mybatis的dtd约束文件及配置文件xml自动提示
来自https://blog.csdn.net/a15920804969/article/details/79107852,感谢作者的无私分享。一、mybatis的dtd约束文件位置我使用的是mybatis-3.2.7这个版本的mybatis,里面的核心jar包是:mybatis-3.2.7.jar,将这个jar包解压缩后进入\org\apache\ibatis\builder\x...转载 2018-07-19 21:34:26 · 1642 阅读 · 0 评论 -
_022_MyBatis_cache
查询缓存的使用,主要是为了提高查询访问速度。将用户对同一数据的重复查询过程简化,不再每次均从数据库查询获取结果数据,从而提高访问速度。MyBatis 的查询缓存机制,根据缓存区的作用域(生命周期)可划分为两种:一级查询缓存与二级查询缓存。一级查询缓存MyBatis 一级查询缓存是基于 org.apache.ibatis.cache.impl.PerpetualCache 类的 Has...转载 2018-07-19 23:04:03 · 202 阅读 · 0 评论 -
_023_MyBatis_一级缓存的存在性证明以及从缓存查找数据的依据
/*缓存的底层实现是一个Map,Map的value是查询结果*//*Map的key,即查询依据,即使用的ORM框架不同,查询依据是不同的*//*MyBatics的查询依据是:sql的id+sql语句*//*Hibernate的查询依据是:查询结果对象的id*//*证明从一级缓存中读取数据的依据,执行不同的方法(但sql语句相同)*//*增删改都会清空一级缓存,无论是否提交...原创 2018-07-20 21:49:40 · 243 阅读 · 0 评论 -
_024_MyBatis_证明二级缓存存在
/*开启内置的二级缓存步骤 1、对实体进行序列化,implements Serializable 2、在相应的dao映射文件中添加<cache/>标签*/Dao映射文件:<mapper namespace="org.lfz.dao.IStudentDao"> <cache /> <insert id="insert...原创 2018-07-20 22:48:04 · 131 阅读 · 0 评论 -
_025_MyBatis_增删改对二级缓存的影响
/*增删改对二级缓存的影响*/ /*1、增删改同样也会清空二级缓存 2、对于二级缓存的清空,实质是对所查key对应的value置为null, 而并非key-value对,即Entry对象删除 3、从DB中进行select查询的条件是: 1)缓存中根本就不存在这个key 2)缓存中存在该key所对应的的Entry对象,但其value为n...原创 2018-07-20 23:05:06 · 392 阅读 · 0 评论 -
_026_MyBatis_Ehcache二级缓存的配置
ehcache 二级查询缓存mybatis 的特长是 SQL 操作,缓存数据管理不是其特长,为了提高缓存的性能,myBatis允许使用第三方缓存产品。ehCache 就是其中的一种。注意,使用 ehcache 二级缓存,实体类无需实现序列化接口。 导入 Jar 包这里需要两个 Jar 包:一个为 ehcache 的核心 Jar 包,一个是 myBatis 与 ehcache...原创 2018-07-21 11:16:09 · 156 阅读 · 0 评论 -
_027_Mybatis_Mybatis的注解
Mybatis 注解1 @Insert其 value 属性用于指定要执行的 insert 语句。2 @SelectKey用于替换 XML 中的<selectKey/>标签,用于返回新插入数据的 id 值。statement:获取新插入记录主键值的 SQL 语句keyProperty:获取的该主键值返回后初始化对象的哪个属性resultType:返回值类型befor...原创 2018-07-21 13:35:38 · 190 阅读 · 0 评论 -
_028_MyBatis_Hibernate与Mybatis
MyBatis 与 与 HibernateHibernate 框架是提供了全面的数据库封装机制的“全自动”ORM,即实现了 POJO 和数据库表之间的映射,以及 SQL 的自动生成和执行。相对于此,MyBatis 只能算作是“半自动”ORM。其着力点,是在 POJO 类 与 SQL 语句之间的映射关系。也就是说,MyBatis 并不会为程序员自动生成 SQL 语句。具体的 SQL 需...原创 2018-07-21 15:42:33 · 216 阅读 · 0 评论 -
_029_MyBatis_MyBatis简介
MyBatis 简介MyBatis 是一个优秀的基于 Java 的持久层框架,它内部封装了 JDBC,使开发者只需关注SQL 语句本身,而不用再花费精力去处理诸如注册驱动、创建 Connection、配置 Statement等繁杂过程。Mybatis通过xml或注解的方式将要执行的各种statement (statement、preparedStatement等)配置起来,并通过...原创 2018-07-21 15:51:00 · 133 阅读 · 0 评论 -
_030_Mybatis_主配置文件配置
相关约束文件 主配置文件 <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><c转载 2018-09-02 12:16:37 · 173 阅读 · 0 评论 -
_017_MyBatis_自关联查询_一对多方式实现
所谓自关联是指,自己即充当一方,又充当多方,是 1:n 或 n:1 的变型。例如,对于新闻栏目 NewsColumn,可以充当一方,即父栏目,也可以充当多方,即子栏目。而反映到 DB表中,只有一张表,这张表中具有一个外键,用于表示该栏目的父栏目。一级栏目没有父栏目,所以可以将其外键值设为 0,而子栏目则具有外键值。 为了便于理解,将自关联分为两种情况来讲解。一种是当作...原创 2018-06-09 16:57:26 · 158 阅读 · 0 评论 -
_016_Mybatis_多对一关联的多表查询
1、多表连接查询(不延迟加载)<resultMap type="Minister" id="ministerMapper"> <id column="mid" property="mid" /> <association property="country" javaType="Country">原创 2018-06-09 16:39:56 · 227 阅读 · 0 评论 -
_015_MyBatis_多表查询
1、多表连接查询<resultMap type="Country" id="countryMapper"> <id column="cid" property="cid"/> <result column="cname" property="cname" /> <collection原创 2018-06-09 15:16:20 · 118 阅读 · 0 评论 -
_002_JavaWeb项目的分层
原创 2018-05-15 01:07:27 · 140 阅读 · 0 评论 -
_003_MyBatics架构
-------------------------------------------------------------------------------------------------------原创 2018-05-16 00:01:14 · 152 阅读 · 0 评论 -
_006_#{}可以存放什么内容
原创 2018-06-06 00:05:08 · 129 阅读 · 0 评论 -
_009_mybatis的动态SQL
动态SQL,主要用于解决查询条件不确定的情况:在程序运行期间,根据用户提交的查询条件进行查询。提交的查询条件不同,执行的SQL语句不同。若将每种可能的情况均逐一列出,对所有条件进行排列组合,将会出现大量的SQL语句。此时,可使用动态SQL来解决这样的问题。动态SQL,即通过MyBatis提供的各种标签对条件作出判断以实现动态拼接SQL语句。 MyBatis 的强大特性之一便是它的动态 SQL。如果...转载 2018-06-06 21:52:43 · 126 阅读 · 0 评论 -
_010_myBatis动态SQL注意事项
原创 2018-06-08 00:24:26 · 181 阅读 · 0 评论 -
_011_动态SQL的where标签、if标签
<select id="selectStudentByConditionByWhere" resultType="Student"> select id,name,age,score from tb_student <where> <if test="name != null and name != ''"> and name like '%..原创 2018-06-08 00:34:53 · 680 阅读 · 0 评论 -
_012_myBatics的foreach标签
1、传递数值<select id="selectStudentByConditionByForeach_array" resultType="Student"> <!-- select id,name,age,score from tb_student where id in (1,3,5) --> select id,name,age,score from tb_...原创 2018-06-08 17:15:57 · 131 阅读 · 0 评论 -
_004_关于java.lang.NoClassDefFoundError: org/apache/log4j/Level错误
在数据访问层的实现类UserInfoDAOImpl中添加一些日志的时候,一开始就导了包" slf4j-api-1.6.1.jar " 与 " slf4j-log4j12-1.6.1" 但是在打包后运行应用的时候报了这个错误“java.lang.NoClassDefFoundError: org/apache/log4j/Level”,可能是缺少jar包,也可能是jar包冲突。解决:把slf4j-l...转载 2018-06-01 20:37:36 · 5312 阅读 · 0 评论 -
_005_mybatis中大于等于小于等于的写法
第一种写法(1):原符号 <(less than) <= >(greater than) >= & ' "替换符号 &lt; &lt;= &gt; &gt;= &amp; &apos; &...转载 2018-06-01 21:11:46 · 531 阅读 · 0 评论 -
_007_根据map查询
代码一:public class StudentDaoImpl implements IStudentDao { @Override public List<Student> selectStudentByCondition_1(Map<String,Object> map) { // TODO Auto-generated method stub List<St...原创 2018-06-01 21:19:28 · 194 阅读 · 0 评论 -
_008_namespace
namespace有什么用<mapper namespace="com.myweb.domain.Article"> <select id="selectAllArticle" resultType="article"> SELECT t.* FROM T_article t WHERE t.flag = '1' ORDER BY t.createtime D...转载 2018-06-01 21:25:23 · 103 阅读 · 0 评论 -
_013_MyBatis_关联关系
1、当查询内容涉及到具有关联关系的多个表时,就需要使用关联查询。根据表与表间的关联关系的不同,关联查询分为四种:(1)一对一关联查询(2)一对多关联查询(3)多对一关联查询(4)多对多关联查询2、(1)数据库:主外键关系,外键在多方;(2)代码:属性关联...原创 2018-06-08 21:39:14 · 136 阅读 · 0 评论 -
_014_resultMap
1、Mybatis的介绍以及使用:http://www.mybatis.org/mybatis-3/zh/index.html,感谢作者的无私分享 resultMap是Mybatis最强大的元素,它可以将查询到的复杂数据(比如查询到几个表中数据)映射到一个结果集当中。resultMap包含的元素:<!--column不做限制,可以为任意表的字段,而property须为type 定义的pojo...转载 2018-06-08 23:00:34 · 173 阅读 · 0 评论 -
_031_MyBatis_API详解
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------...转载 2018-09-08 10:41:02 · 89 阅读 · 0 评论