Mybatis(1)】的更多相关文章

原理等不在赘述,这里主要通过代码展现. 在mybatis(一)基础上,新建一个dao包,并在里面编写接口,然后再在xml文件中引入接口路径,其他不变,在运用阶段将比原始方法更节约时间,因为不用再去手动的 引用sql,我们只需调用dao层的方法,然后让dao层的方法去找配置文件,去找sql,sql查询数据并赋值给对象,或者设置对象参数值在经过sql更新到数据库,小伙伴们这就是 orm对象关系映射模型!(个人见解,不对之处请指正.) 新增后项目: 一.新建一个com.ckx.dao包,并new一个(…
本文主要介绍 Mybatis(一)之后剩下的内容: 1 mybatis 中 log4j的配置 2 dao层的开发(使用mapper代理的方式) 3 mybatis的配置详解 4 输入输出映射对应的类型 ( parameterType 和 resultType ) 5 mybatis 动态 sql 6 mybatis 中的一级缓存 7 mybatis 中的二级缓存 8 mybatis 和 缓存框架的整合 9 mybatis 中二级缓存使用时注意的问题 10 mybatis 和 spring 整合…
上篇文章<springboot集成mybatis(一)>介绍了SpringBoot集成MyBatis注解版.本文还是使用上篇中的案例,咱们换个姿势来一遍^_^ 二.MyBatis配置版(XML) 配置版本应该是大家最熟悉的一套.用过ibatis的朋友都知道,大部分工作量都在xml文件里面.通过标签可以组合出各种复杂的sql. Mybatis为我们简化了Dao层的代码,直接通过接口映射配置文件中的sql. 1.集成mybatis,增加maven依赖 <dependencies> &l…
Mybatis(7)延迟加载.缓存及注解 1.延迟加载 延迟加载: 就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据.延迟加载也称懒加载. **好处:**先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速 度要快. 坏处 : 因为只有当需要用到数据时,才会进行数据库查询,这样在大批量数据查询时,因为查询工作也要消耗 时间,所以可能造成用户等待时间变长,造成用户体验下降 2.Mybatis缓存 ​ 像大多数的持久化框架一样,Mybatis 也…
Mybatis(6)动态SQL 1.动态SQL 出现原因:有些时候业务逻辑复杂时,我们的 SQL 是动态变化的,此时在前面的学习中我们的 SQL 就不能满足要求了 1.1.if标签 我们根据实体类的不同取值,使用不同的 SQL 语句来进行查询.比如在 id 如果不为空时可以根据 id 查询,如果 username 不同空时还要加入用户名作为条件.这种情况在我们的多条件组合查询中经常会碰到. 1.1.1.持久层接口 /** * 通过用户信息查询用户列表 * @param user * @retur…
Mybatis(5)数据库连接池及事务 1.Mybatis连接池 ​ Mybatis 中也有连接池技术,但是它采用的是自己的连接池技术.在 Mybatis 的 SqlMapConfig.xml 配置文件中,通过 dataSource type="pooled" 来实现 Mybatis 中连接池的配置.使用连接池可以减少因为获取连接而浪费的时间. 1.1.mybatis中的三种连接池配置方式 配置位置: ​ 主配置文件SqlMapConfig.xml中的dataSource标签,其中ty…
Mybatis(4)SqlMapConfig.xml SqlMapConfig.xml 中配置的内容和顺序 -properties (属性) --property -settings(全局配置参数) --setting -typeAliases (类型别名) --typeAliase --package -typeHandlers(类型处理器) -objectFactory(对象工厂) -plugins(插件) -environments(环境集合属性对象) --environment(环境子属…
Mybatis(3)dao层开发 以实现类完成CRUD操作 1.持久层dao层接口的书写 src\main\java\dao\IUserDao.java package dao; import domain.QueryVo; import domain.User; import java.util.List; public interface IUserDao { /** * 查询所有数据 * @return */ List<User> findAll(); //List<User>…
Mybatis(2)CRUD 1.基于代理Dao实现CRUD操作 使用要求: 1.持久层接口(src\main\java\dao\IUserDao.java)和持久层接口的映射配置(src\main\resources\dao\IUserDao.xml)必须在相同的包下 2.持久层映射配置中 mapper 标签的 namespace 属性取值必须是持久层接口的全限定类名 <mapper namespace="dao.IUserDao"> 3.SQL 语句的配置标签,,,的…
Mybatis(1)入门 1.mybatis的概述 mybatis是一个持久层框架,用java编写的. 它封装了jdbc操作的很多细节,使开发者只需要关注sql语句本身,而无需关注注册驱动,创建连接等繁杂过程 它使用了ORM思想实现了结果集的封装. ORM: Object Relational Mappging 对象关系映射 简单的说: 就是把数据库表和实体类及实体类的属性对应起来 让我们可以操作实体类就实现操作数据库表. user User id userId user_name userNa…
Mybatis(下) 一.MaBatis核心配置文件 Mybatis 中文文档 Mybatis 中文文档 1. properties 定义属性及读取属性文件,取的时候用 $(name) ,name 为之前定义的name 定义属性 SqlMappingConfig.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.or…
通过项目逐步深入了解Mybatis(一) 2017-06-12 文章导航 Mybatis 和 SpringMVC 通过订单商品案例驱动 官方中文地址:http://www.mybatis.org/mybatis-3/zh/ 官方托管地址:https://github.com/mybatis/mybatis-3 本项目全部代码地址:https://github.com/zhisheng17/mybatis 如果觉得不错的话,欢迎给个 star , 如果你想完善这个项目的话,你也可以 fork 后修…
实际的开发中,对数据库的操作常常会涉及到多张表,这在面向对象中就涉及到了对象与对象之间的关联关系. 针对多表之间的操作,MyBatis提供了关联映射,通过关联映射就可以很好的处理对象与对象之间的关联关系. 目录 你需要了解的知识点 1.关联关系种类 数据库: java 2.关联查询方式 使用 1.创建实体类 2.创建SQL映射的XML文件 3.注册SQL映射的XML文件 4.创建表格 5.测试一对一关联映射 你可能会出现的问题 问题一:提示缺少构造函数 写在最后 你需要了解的知识点 1.关联关系…
在上一篇文章中,我们由一个快速案例剖析了 MyBatis 的整体架构与整体运行流程,在本篇文章中笔者会根据 MyBatis 的运行流程手写一个自定义 MyBatis 简单框架,在实践中加深对 MyBatis 框架运行流程的理解.本文涉及到的项目代码可以在 GitHub 上下载: my-mybatis . 话不多说,现在开始! 1. MyBatis 运行流程回顾 首先通过下面的流程结构图回顾 MyBatis 的运行流程.在 MyBatis 框架中涉及到的几个重要的环节包括配置文件的解析. SqlS…
在前面的文章中,笔者详细介绍了 MyBatis 框架的底层框架与运行流程,并且在理解运行流程的基础上手写了一个自己的 MyBatis 框架.看完前两篇文章后,相信读者对 MyBatis 的偏底层原理和执行流程已经有了自己的认知,并且对其在实际开发过程中使用步骤也已是轻车熟路.所谓实践是检验真理的唯一标准,本文将为大家介绍一些 MyBatis 使用中的一些实用插件与自定义插件.本文涉及到的代码已上传至 GitHub: mypagehelper-demo . 话不多说,现在开始! 1. Lombok…
在前面几篇文章中,笔者介绍了 MyBatis 的运行流程,在此基础上简单介绍了手写 MyBatis 简易框架与自定义 MyBatis 插件的步骤,相信大家对于 MyBatis 框架的使用流程已经游刃有余了.然而,面对实际开发过程中大量的数据库表单,传统的 MyBatis 使用步骤已经显得繁琐不堪,本文介绍的就是利用 MyBatis 逆向工程把 MyBatis 框架使用的前期配置准备工作交给代码生成器完成,从而节省时间提高开发效率.本文涉及到的代码已上传至 GitHub: mybatis-gene…
3.mybatis(CRUD) 有了mybatis,我们要对数据库进行增删改查只需要操作接口和mapper.xml文件,然后进行测试就可以了. 实例代码如下: 接口 public interface UserMapper { List<User> getUserList(); //查 User getUserById(int id); //增 int addUser(User user); //改 int updateUser(User user); //删 int deleteUser(in…
前言 前一篇文章,讲了MyBatis入门,讲到了MyBatis有两个基本的配置文件,一个用来配置环境信息,一个用来写SQL语句.前者我把它命名为config.xml,config.xml的内容是: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configurati…
第十六章回顾SQL99中的连接查询 1)内连接 2)外连接 3)自连接 第十七章回顾hibernate多表开发 1)一对一 2)一对多 3)多对多 第十八章 mybatis一对一映射[学生与身份证] 1)参见<<一对一图示.JPG>> 2)创建students.sql和cards.sql drop table students; drop table cards; create table cards( id    int(5)      primary key, num varc…
项目模型: 一.创建一个web项目ssm001 1.1准备数据 在数据创建表并添加数据 user表: dept表: /* Navicat MySQL Data Transfer Source Server : ybt Source Server Version : 50137 Source Host : 127.0.0.1:3306 Source Database : ssm001 Target Server Type : MYSQL Target Server Version : 50137…
前一篇文章复习了MyBatis的基本使用以及使用Spring管理MyBatis的事务的做法,本文的目的是在这个的基础上稍微做一点点的进阶:多数据的事务处理.文章内容主要包含两方面: 1.单表多数据的事务处理 2.多库/多表多数据的事务处理 这两种都是企业级开发中常见的需求,有一定的类似,在处理的方法与技巧上又各有不同,在进入文章前,先做一些准备工作,因为后面会用到多表的插入事务管理,前面的文章建立了一个Student相关表及类,这里再建立一个Teacher相关的表及类.第一步是建立一张Teach…
单独使用MyBatis对事务进行管理 前面MyBatis的文章有写过相关内容,这里继续写一个最简单的Demo,算是复习一下之前MyBatis的内容吧,先是建表,建立一个简单的Student表: 1 2 3 4 5 6 create table student (     student_id    int            auto_increment,     student_name  varchar(20)    not null,     primary key(student_id…
 jdbc开发 1)优点:简单易学,上手快,非常灵活构建SQL,效率高 2)缺点:代码繁琐,难以写出高质量的代码(例如:资源的释放,SQL注入安全性等) 开发者既要写业务逻辑,又要写对象的创建和销毁,必须管底层具体数据库的语法 (例如:分页). 3)适合于超大批量数据的操作,速度快 hibernate单表开发 1)优点:不用写SQL,完全以面向对象的方式设计和访问,不用管底层具体数据库的语法,(例如:分页)便于理解. 2)缺点:处理复杂业务时,灵活度差, 复杂的HQL难写难理解,例如多表查询的H…
1 Mybaits--动态SQL 动态SQL是Mybatis强大特性之一.极大的简化我们拼装SQL的操作. 动态SQL元素和使用JSTL或其他类似基于XML的文本处理器相似. Mybatis采用功能强大的基于OGNL的表达式来简化操作. if choose(when ,otherwise) trim(where,set) foreach 1.1 动态SQL之if package cn.demo2; /** * 描述:POJO */ public class Employee { private…
Mybatis参数(Parameters)传递  1..单个参数 可以接受基本类型,对象类型,集合类型的值.这种情况MyBatis可直接使用这个参数,不需要经过任何处理. <!-- 根据id查询数据表中的一条记录,并封装User对象 --> <select id="selectById" resultType="com.softjx.model.User"> select t_id as id,t_username as username,t…
一.Mybatis 简介 Mybatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为Mybatis  , 2013年11月迁移到Github , iBATIS一词来源于"internet"和"abatis"的组合,是一个基于Java的持久层框架.iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)Myb…
MyBatis简介 MyBatis本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis.它支持定制化SQL.存储过程.高级映射及缓存.是一个轻量级的持久层框架. 目前主流的持久层框架还是Mybatis.Hibernate及JDBC Template,这些持久层框架各有利弊. 一.MyBatis注解版(Annotation) 注解版本可以优雅的去除配置文件,并和springbo…
mybatis第二天    高级映射 查询缓存 和spring整合          课程复习:         mybatis是什么?         mybatis是一个持久层框架,mybatis是一个不完全的ORM框架.SQL语句需要程序员自己去编写,但是mybatis也有映射(输入参数映射.输出结果映射).         mybatis入门门槛不高,学习成本低,让程序员把精力放在sql语句上,对sql语句优化非常方便,适用于需求变化较多的项目,比如互联网项目. mybatis框架执行过…
mybatis-day01     1.对原生态jdbc程序中的问题总结         1.1环境             java环境:jdk             eclipse:indigo             mysql:xx mybatis x.x.x 1.2jdbc程序             使用jdbc查询mysql数据中用户表的记录 1.4问题总结             1.数据库连接,使用时就创建,不适用就立即释放,对数据库进行频繁的连接开启和关闭,造成了数据库资源…
这里总结了关于多参数传递时,MyBatis接收的三种方式. (1)接口中编写方法 public Emp getEmpByParams(Integer id,String lastNmae); public Emp getEmpByParam(@Param("id")Integer id,@Param("lastName")String lastNmae); public Emp getEmpByParam(Map<String, Object> map)…