MyBatis
文章平均质量分 73
意大利AC米兰
java
展开
-
MyBatis 初识
1、简介MyBatis是一个优秀的基于Java的持久层框架,它内部封装了JDBC,使开发者只需关注SQL语句本身,而不用再花费精力去处理诸如注册驱动、创建Connection、配置Statement等繁杂过程。MyBatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatement等)配置起来,并通过Java对象和Statement中SQ原创 2018-01-12 22:09:39 · 346 阅读 · 0 评论 -
MyBatis 查询缓存
查询缓存的作用,主要是为了提高查询访问速度。将用户对同一数据的重复查询过程简化,不再每次从数据库查询获取结果数据,从而提高访问速度。MyBatis的查询缓存机制,根据缓存区的作用域(生命周期)可以划分为2种:一级查询缓存和二级查询缓存1、一级查询缓存MyBatis一级查询缓存是基于org.apache.ibatis.catch.impl.PerpetualCache类的HsahMap本原创 2018-01-14 21:03:52 · 3182 阅读 · 0 评论 -
MyBatis 延迟加载
MyBatis中的延迟加载,也称作懒加载,是指在进行关联查询时,按照设置的延迟规则推迟对关联对象的select查询。延迟加载可以有效的减少数据库压力。MyBatis的延迟加载只是对关联对象的查询有延迟设置,对于主加载对象都是直接执行查询语句的。MyBatis根据对关联对象查询的select语句的执行时机,分为三类:直接加载、侵入式延迟加载、深度延迟加载直接加载:即不延迟加载,执行完原创 2018-01-14 00:36:01 · 695 阅读 · 0 评论 -
MyBatis 关联查询 (多对多)
多对多关系,学生选课,一个学生可以选择多门课程,一门课程可以被多个学生选择。其实是由2个互反的一对多关系组成,通常多对多关系都会通过一个中间表来建立,例如选课表。1)表结构学生表CREATE TABLE `student` ( `sid` int(5) NOT NULL AUTO_INCREMENT, `sname` varchar(10) NOT NULL, PRIM原创 2018-01-14 00:15:36 · 2338 阅读 · 1 评论 -
MyBatis 关联查询 自关联 (一对多、多对一)
所谓自关联是指,自己即充当一方,又充当多方。其实就是普通1:n 和 n:1的变形1、一对多1)表结构-- 新闻栏目CREATE TABLE `news` ( `id` int(5) NOT NULL AUTO_INCREMENT, `name` varchar(10) NOT NULL, `pid` int(5) NOT NULL, PRIMARY KEY (`id`原创 2018-01-13 23:50:02 · 8849 阅读 · 1 评论 -
MyBatis 关联查询(一对多 & 多对一)
1、一对多举个例子:一个国家有很多人。一对多1)表结构-- 国家countryCREATE TABLE `country` ( `cid` int(5) NOT NULL AUTO_INCREMENT, `cname` varchar(20) NOT NULL, PRIMARY KEY (`cid`)) ENGINE=InnoDB AUTO_INCREMENT=1原创 2018-01-13 22:40:29 · 21939 阅读 · 7 评论 -
MyBatis多查询条件-根据Map查询
1、测试类(Dao接口省略) @Test public void test01() { Student stu = new Student("初九", 29, 89); Map map = new HashMap(); map.put("nameCon", "张"); map.put("ageCon", 23);原创 2018-01-12 23:37:43 · 7998 阅读 · 0 评论 -
MyBatis 配置文件 与 约束
1、MyBatis 主配置文件 mybatis.xml<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> 2、MyBatis 映射文件 mapper.xml<!DOCTYPE原创 2018-01-12 22:22:00 · 19032 阅读 · 0 评论 -
一个简单的MyBatis程序实例
1、在test库创建表student(MySql数据库)CREATE TABLE `student` ( `id` int(5) NOT NULL AUTO_INCREMENT, `name` varchar(10) DEFAULT NULL, `age` int(3) DEFAULT NULL, `score` double DEFAULT NULL, PRIM原创 2018-01-12 22:30:11 · 7501 阅读 · 3 评论 -
MyBatis 动态SQL
动态SQL,主要用于解决查询条件不确定的情况。例如:select id,name,age,score from student where id=?name=?age=?score=?每一个条件都可有可无,那where条件有4*3*2*1=24这么多情况,总不能写24个sql。可使用动态SQL来解决这一的问题。动态SQL,即通过MyBatis提供的各种标签对条件作出判断原创 2018-01-12 22:59:24 · 187 阅读 · 0 评论 -
MyBatis 注解式开发
MyBatis的注解,主要是用于替换映射文件。映射文件中无非存放在增删改查的sql映射标签。所以,MyBatis注解,就是要替换映射文件中的SQL标签。MyBatis官方文档中指出,若要真正想发挥MyBatis功能,还是要用映射文件。所以官方并不建议使用MyBatis注解式开发。注解后没有分号注解首字母大写,因为注解与类、接口是同一级别的。一个注解,后台对应着一个@interf原创 2018-01-15 00:25:52 · 944 阅读 · 0 评论