MyBatis框架

Posted superbc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis框架相关的知识,希望对你有一定的参考价值。

一  什么是框架:一组可重用组件,按照一定规则而组成的半成品软件

二 什么是MyBatis框架 :

  mybatis 是一个优秀的基于 java 的持久层框架,它内部封装了 jdbc,使开发者只需要关注 sql 语句本身,
  而不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。
  mybatis 通过 xml 或注解的方式将要执行的各种 statement 配置起来,并通过 java 对象和 statement 中
  sql 的动态参数进行映射生成最终执行的 sql 语句,最后由 mybatis 框架执行 sql 并将结果映射为 java 对象并
  返回.

三  MyBatis框架快速入门

  1.创建maven工程 添加mybatis依赖

<dependencies>
   <dependency>
     <groupId>org.mybatis</groupId>
     <artifactId>mybatis</artifactId>
     <version>3.4.5</version>
   </dependency>

  </dependency>
     <dependency>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
     <version>4.10</version>
     <scope>test</scope>
   </dependency>
   <dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <version>5.1.6</version>
     <scope>runtime</scope>
   </dependency>
   <dependency>
     <groupId>log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>1.2.12</version>
   </dependency>
 </dependencies>

  2.创建一个实体类

  3.编写持久成接口

  4.编写接口映射的文件

技术分享图片

技术分享图片

 

  5. 编写 SqlMapConfig.xml 配置文件

技术分享图片

    6 编写测

技术分享图片

 

 总结:

技术分享图片

 

 四:CRUD

  1查询

技术分享图片

技术分享图片

  2.添加

技术分享图片

#{}中内容的写法:
由于我们保存方法的参数是 一个 User 对象,此处要写 User 对象中的属性名称。
它用的是 ognl 表达式。
ognl 表达式:
它是 apache 提供的一种表达式语言,全称是:
Object Graphic Navigation Language 对象图导航语言
它是按照一定的语法格式来获取数据的。
语法格式就是使用 #{对象.对象}的方式

问题扩展:新增用户 id 的返回值

  <!-- 配置保存时获取插入的 id -->
  <selectKey keyColumn="id" keyProperty="id" resultType="int">
    select last_insert_id();
  </selectKey>

   3.用户更新

技术分享图片

  4.删除

技术分享图片

  5.模糊查询

技术分享图片

补充:#{}与${}的区别

#{}表示一个占位符号
通过#{}可以实现 preparedStatement 向占位符中设置值,自动进行 java 类型和 jdbc 类型转换,
#{}可以有效防止 sql 注入。 #{}可以接收简单类型值或 pojo 属性值。 如果 parameterType 传输单个简单类
型值,#{}括号中可以是 value 或其它名称。
${}表示拼接 sql 串
通过${}可以将 parameterType 传入的内容拼接在 sql 中且不进行 jdbc 类型转换, ${}可以接收简
单类型值或 pojo 属性值,如果 parameterType 传输单个简单类型值,${}括号中只能是 value。

 

第4章 Mybatis 的输出结果封装

resultMap 结果类型

<resultMap type="com.itheima.domain.User" id="userMap">
  <id column="id" property="userId"/>
  <result column="username" property="userName"/>
  <result column="sex" property="userSex"/>
  <result column="address" property="userAddress"/>
  <result column="birthday" property="userBirthday"/>
</resultMap>

type 属性:指定实体类的全限定类名

id 属性:给定一个唯一标识,是给查询 select 标签引用用

id 标签:用于指定主键字段
result 标签:用于指定非主键字段
column 属性:用于指定数据库列名
property 属性:用于指定实体类属性名称

 

 

 

第6章 SqlMapConfig.xml配置文件

SqlMapConfig.xml 中配置的内容和顺序

-properties(属性)
--property
-settings(全局配置参数)
--setting
-typeAliases(类型别名)
--typeAliase
--package
-typeHandlers(类型处理器)
-objectFactory(对象工厂)
-plugins(插件)
-environments(环境集合属性对象)
--environment(环境子属性对象)
---transactionManager(事务管理)
---dataSource(数据源)
-mappers(映射器)
--mapper
--package

 

 

技术分享图片

<properties>

技术分享图片

</properties>

 技术分享图片

 

 

Mybatis 自动提交事务的

技术分享图片

 Mybatis 的动态 SQL 语句

动态 SQL 之<if>标签
技术分享图片

 

动态 SQL 之<where>标签

技术分享图片

动态标签之<foreach>标签

 技术分享图片

一对多查询

技术分享图片

技术分享图片

 

 多对多查询

技术分享图片

MyBatis延迟加载 缓存 注解开发

 






































































以上是关于MyBatis框架的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis

Mybatis

Mybatis框架

SSM框架专题-MyBatis框架从零入门老杜版笔记(上)

mybatis框架的主要作用

Mybatis框架入门