Mybatis

目录

Mybatis概述:

持久化

Mybatis的作用

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"/>

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值