Mybatis

简介: Mybatis

Mybatis概述:


  • Myba是一款优秀的持久层框架
  • MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程,减少了代码的冗余,减少程序员的操作。


持久化

即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在数据库中,或者存储在磁盘文件中、XML数据文件中等等。

JDBC就是一种持久化机制。文件IO也是一种持久化机制。


为什么需要持久化服务?


     内存断点后数据会丢失,但是有些业务不允许这种情况的存在


     比起硬盘,内存过于昂贵,如果有够量的内存,则不需要持久化服务,但是正是因为内存太贵,储存有限,因此需要持久化来缓存


Mybatis的作用


Mybatis帮助程序员将数据存取到数据库里面。


传统的jdbc操作 , 有很多重复代码块 .比如 : 数据取出时的封装 , 数据库的建立连接等等… , 通过框架可以减少重复代码,提高开发效率 .


MyBatis的优点

简单易学:本身就很小且简单。

灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。sql写在xml里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求。


Mybatis操作数据库的具体实现步骤如下:


  1. 创建一个数据库表。
  2. 创建一个Maven项目,并在pom.xml文件中配置相关依赖。
  3. 创建Mybatis的核心配置文件(mybatis-config.xml),配置数据库连接信息和映射文件路径等。
  4. 创建与数据库表对应的实体类,用于封装数据库表中的数据。
  5. 创建数据操作持久层接口,定义数据库操作的方法。
  6. 创建数据操作持久层接口的实现类,并在实现类中编写SQL语句。
  7. 创建测试类,测试数据库操作的功能。


Mybatis知识


1.从数据库查询数据时,若返回字段在java实体类中没有该属性,则可以返回map集合

例如:Map<String,Object>

若返回数据为多行数据时,可以使用List<Map<String,Object>>或者加上@Mapkey注解,以一个字段名为大的键,例:@Mapkey("id") {1={uname="hahah",id=1},2={uname="wowowo",id=2}}


2.模糊查询时,like ?

最优: select * from users where uname like "%"#{uname}"%"   ("%")双引号

或者:like '%${uname}%' (字符串拼接 )   或者 like concat ('%' ,#{uname}, '%')


3.使用级联处理多对一的映射关系

多表查询时,返回数据之间具有一对多的关系

例:班级和学生之间一对多 可以在 学生实体类 中添加  班级属性

在ResultMap中绑定 colum="class_id"  property="class.classId"


4.一对多查询数据时 在一的实体类中加入  集合属性

1.在ResultMap中使用<collection>标签 property绑定集合属性  ofType="Student"(集合中的类型)

2.  <collection property="students"     ofType="student">

           <result column="studentName"     property="studentName"/>

           <result column="studentAge"         property="studentAge"/>

           <result column="classId"             property="classId"/>

       </collection>


5.分步查询数据

1.写两个查询sql

2.给两个sql绑定联系:

fetchType加载形式:eager(直接加载)  lazy(懒加载)

select: 用来设置分步查询的唯一标识(绑定到第二个查询sql)

column:查询的条件 两表之间的关系

 <collection property="students" fetchType="eager"

                   select="com.shutu.Mapper.StudentMapper.getClassAndStudentStepTwo"

                   column="classId"/>


目录
相关文章
|
9月前
|
SQL Java 数据库连接
|
9月前
|
SQL XML Java
|
1月前
|
SQL Java 数据库连接
|
1月前
|
SQL Java 数据库连接
从0开始回顾Mybatis
Mybatis 1、什么是Mybatis? 概念: 1. Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性能,灵活度高。 2. MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。 缺点: 1. SQL语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写SQL语句的功底有一定要求
|
6月前
|
Java 数据库连接 测试技术
mybatis中@Many
mybatis中@Many
61 0
|
6月前
|
SQL 安全 Java
Mybatis中# 和 $ 的使用详解
Mybatis中# 和 $ 的使用详解
108 0
|
10月前
|
SQL Java 数据库连接
Mybatis Plus
Mybatis Plus
|
10月前
|
SQL Java 数据库连接
MyBatis(下)
MyBatis(下)
|
11月前
|
SQL XML 算法
MyBatis-Plus
简称MP,是在Mybatis的基础上进行增强,用户简化开发,提高效率。只做增强不做改变 支持主键自动生成、内置代码生成器、内置分页插件
79 0
|
SQL XML 存储