MyBatis
文章平均质量分 78
我不会写代码啊啊啊
这个作者很懒,什么都没留下…
展开
-
框架和MyBatis介绍
了解MyBatis及其他一些概念一、框架的概念框架(framework)是一个提供了可重用的公共结构的半成品。它为我们构建新的应用程序提供了最大的便利。一方面提供了拿来就用的工具,更重要的是,提供了可重用的设计。框架技术是一个应用程序的半成品,提供了可重用的公共结构,按一定规则组织的一组组件。框架的意义:减少重复劳动 便于团队合作 增强安全性二、数据持久化概念数据持久化是将内存...原创 2019-08-08 16:01:45 · 179 阅读 · 0 评论 -
MyBatis——使用@Param注解实现多参数入参
数据库有emp表如下:假如我想要实现根据eid修改ename的操作。对于此需求,也是修改操作,但是可以明确方法的传入参数只有2个:职员id和新名字。若按照以前的封装成Emp对象的方式进行传参,并不是很合适,可以用更灵活的方式处理:直接进行多参数入参即可,代码可读性高,可以清晰的看到这个方法所需的参数是什么。当方法参数有多个时,每个参数前都需要增加@Param注解:public int up...原创 2019-08-15 20:49:13 · 3934 阅读 · 0 评论 -
resultMap标签中里的association标签
association:映射到JavaBean的某个“复杂类型”属性,比如JavaBean类,即JavaBean,即JavaBean内部嵌套一个复杂数据类型(JavaBean)属性,这种情况就属于复杂类型的关联。但是需要注意:association仅处理一对一的关联关系。下面通过一个示例来演示association具体的应用,示例需求:查询学生表的全部数据信息。首先修改Student,增加G...原创 2019-08-15 21:35:06 · 13282 阅读 · 0 评论 -
resultMap标签中里的collection标签
collection元素的作用和association元素的作用差不多一样,事实上,它们非常类似,也是映射到JavaBean的某个“复杂类型” 属性,只不过这个属性是一个集合列表,即JavaBean内部嵌套一个复杂数据类型(集合)。和使用association元素一样,我们使用嵌套查询, 或者从连接中嵌套结果集。下面通过一个示例来演示coeltien 的具体应用,示例需求获取指定用户的相关的信息...原创 2019-08-16 15:47:16 · 9974 阅读 · 0 评论 -
MyBatis缓存
正如大多数持久化框架一样,MyBatis提供了一级缓存和二级缓存。1.一级缓存一级缓存是基于 PerpetualCache (MyBatis自带)的HashMap本地缓存,作用范围为session域内,当session flush或者close之后,该session中所有的cache就会被清空。2.二级缓存二级缓存就是global caching,它超出session范围之外,可以被所有S...原创 2019-08-16 16:55:09 · 86 阅读 · 0 评论 -
MyBatis框架的优缺点及其适用场合
回顾DAO层代码,以查询学生表记录数为例,直接使用JDBC和MyBatis查询的两种实现方式的代码如图所示: Class.forName("com.mysql.jdbc.Driver"); Connection connection=DriverManager.getConnection(url, user, password); String sql="select count(*)...原创 2019-08-13 11:32:25 · 1111 阅读 · 0 评论 -
MyBatis实现多表查询方式一
实现多表查询与之前的几乎一样,只是实体类和映射文件里稍有变化有数据表student , grade 与 gendergrade表如下:gender表如下:student表如下:(ggid与gender表的gid建立关联,gid与grade表的gid建立关联)分别有对应的实体类:Grade类:package com.xyj.entity;import lombok.AllAr...原创 2019-08-17 14:35:23 · 150 阅读 · 0 评论 -
MyBatis实现多表查询方式二
上次我们的SQL映射全部写在了一个文件中,不利于复用和维护,接下来对上次的代码做出修改。修改映射文件未多个,分开来写:gender表的映射<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.o...原创 2019-08-17 14:51:58 · 184 阅读 · 0 评论 -
MyBatis实现多表查询方式三(注解的方式)
在没有映射文件的情况下,如何实现查询呢。在上次的代码上(MyBatis实现多表查询方式二)删掉3个映射文件,然后修改配置文件中加载映射文件为加载Dao接口: <mappers> <mapper class="com.xyj.dao.GenderDao"/> <mapper class="com.xyj.dao.GradeDao"/> <ma...原创 2019-08-17 15:00:25 · 316 阅读 · 0 评论 -
MyBatis映射文件里的resultMap标签
我们在哪里使用resultMap?resultMap是做什么的resultMap是对外部resultMap定义的引用,对应外部resultMap的id,表示返回结果映射到哪一个resultMap上。它的应用场景一般是:数据库字段信息与对象属性不一致或者需要做复杂的联合查询以便自由控制映射结果。最开始我们用的是resultType,它和resultType有什么关联和区别呢result...原创 2019-08-15 20:14:47 · 719 阅读 · 0 评论 -
MyBatis配置文件之数据源的配置方式
MyBatis配置文件中数据源的几种配置方式第一种方式第一种方式就是直接写mybatis-config配置文件中的dataSource标签下的property标签中,如: <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <prop...原创 2019-08-09 20:32:26 · 1992 阅读 · 1 评论 -
MyBatis基础——映射文件的方式实现基本的增删改查
使用Mybatis配置文件+映射文件的方式实现基本的增删改查一、下载和部署jar包首先要使用MyBatis框架,肯定要先下载相关jar包才能使用。所需jar包:当然lombok这个jar包可以不使用。二、编写MyBatis核心配置文件MyBatis核心配置文件主要用于配置数据库连接和MyBatis运行时所需的各种特性,包含了设置和影响MyBatis行为的属性。创建mybatis-...原创 2019-08-08 16:33:34 · 358 阅读 · 0 评论 -
MyBatis基础——Dao+映射文件实现基本的增删改查
使用Dao层+映射文件的方式实现增删改查,映射文件就相当于是Dao层的实现类。MyBatis配置文件只需要在上次的操作上稍作修改即可。这次我们使用Log4j日志输出,在配置文件设置setting节点节点,修改后如下:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//myb...原创 2019-08-08 17:39:23 · 378 阅读 · 0 评论 -
MyBatis基本要素——核心对象及其生命周期
MyBatis的三个基本要素:·核心接口和类·MyBatis核心配置文件(mybatis-config.xml)·SQL映射文件(mapper.xml)MyBatis的核心接口和类每个MyBatis的应用程序都以SqlSessionFactory对象的实例为核心。首先获取SqlSessionFactoryBuilder对象,可以根据XML配置文件或Configuration类的...原创 2019-08-13 14:24:43 · 452 阅读 · 0 评论 -
MyBatis基础——Dao+注解实现基本的增删改查
只利用Dao层实现基本的增删改查操作在上次的基础之上,映射文件就没有用啦,可以删掉,只需要修改Dao接口和配置文件即可。Dao层package com.xyj.dao;import java.util.List;import org.apache.ibatis.annotations.Delete;import org.apache.ibatis.annotations.Inser...原创 2019-08-08 18:03:12 · 890 阅读 · 0 评论 -
MyBatis基础——实体类属性名与数据库表列名不一致时怎么查询数据
假如我们使用Dao+映射文件的方式操作数据表时,实体类的属性名与数据库列名不一致时我们该怎么查询数据。实体类的属性名与数据库列名不一致时查询全部数据:执行结果为:我们发现只有money一个属性有值,其余属性均为默认值这种情况下,如果想要查询数据,则需要修改映射文件第一步,在映射文件下面加入resultMap标签:<!-- 实体类属性与数据库的列的对应关系 --> &l...原创 2019-08-08 18:34:43 · 2497 阅读 · 0 评论 -
MyBatis配置之实体类起别名
为什么要给实体类起别名?首先看一下之前的映射文件<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- mapp...原创 2019-08-08 19:06:20 · 3152 阅读 · 0 评论 -
MyBatis实现多条件模糊查询
使用MyBatis实现数据库表的单条件查询和多条件查询前提:有数据表emp如下:配置文件、实体类、工具类与之前相仿,不再展示。使用MyBatis实现单条件查询首先在映射文件中编写SQL语句映射如下: <!-- 根据职员名模糊查询职员列表 --> <select id="findByName" resultType="emp"> select * fro...原创 2019-08-13 16:07:09 · 1970 阅读 · 0 评论 -
MyBatis之RowBounds实现分页查询
使用RowBounds实现分页查询很简单。MyBatis的分页是基于内存的分页,即查出来所有记录,再按起始位置和页面容量取出结果。Sql映射: <!-- RowBounds实现分页 --> <select id="selectByPage" resultType="Emp"> select * from emp </select>对应的Dao层...原创 2019-08-18 22:01:27 · 1112 阅读 · 3 评论 -
MyBatis动态SQL
动态 SQLMyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦。例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。虽然在以前使用动态 SQL 并非一件易事,但正是 MyBatis 提供了可以被用在任意 SQL 映射语句中的强大...原创 2019-08-22 22:19:20 · 276 阅读 · 0 评论