首页 > Web开发 > 详细

一 Mybatis概述&与Hibernate的区别&CRUD

时间:2019-02-19 00:16:05      阅读:375      评论:0      收藏:0      [点我收藏+]

Mybatis是类似Hibernate的ORM持久层框架

 

为什么学习Mybatis?

1 是目前国内主流的持久层框架,面向sql(相较于Hibernate,Mybatis一定要用sql)

2 Hibernate学习门槛不低,要精通门槛更高(在于如何设计O/R映射,性能和对象模型之间取得平衡,怎样用好Hibernate缓存与数据加载策略)

3 sql优化方面,Hibernate的查询会将表中的所有字段查询出来,会有性能消耗。如果自己写sql语句进行查询,则破坏了Hibernate开发的简洁性。

    如果有个查询要关联多张表,比如5张表,10张表,而我们只取其中几张表的部分字段,这时用Hibernate就会显得非常力不从心,后续维护也令人发狂。

 

JDBC存在的问题

1 频繁的创建和打开,关闭数据库,太消耗资源

2 sql语句存在硬编码,不利于维护

3 sql参数设置硬编码,不利于维护

4 结果集获取与遍历复杂,存在硬编码,不利于维护,期望能够查询后返回一个java对象

 

Mybatis介绍:

Mybatis本是Apache的一个开源项目iBatis.是面向sql的持久层框架,对jdbc进行了封装。

开发中,可以只专注于sql语句本身的拼装,其他复杂过程交给MyBatis完成

 

 

MyBatis入门:

  • 根据用户ID查询用户信息
  • 根据用户名查找用户列表
  • 添加用户
  • 修改用户
  • 删除用户

 

工程搭建:

  1. 导入依赖jar包
  2. 配置SqlMapConfig.xml
  3. 配置log4j.properties
  4. pojo
  5. 配置sql查询映射文件
  6. 加载映射文件

包结构:config为Source文件,与src相同

技术分享图片

 

导入依赖jar包

技术分享图片

 

配置SqlMapConfig.xml映射文件,映射加载:项目名/文件名 , 默认在config文件下,mybatis包下加载

技术分享图片

 

 

配置log4j.properties,输出到控制台

 技术分享图片

 

pojo:与Hibernate的domain相同,提供属性的getset方法

 

配置sql查询映射文件  user.xml , namesapce:命名空间, select  id   等  见下图

技术分享图片

 

 

 

 

 

 

根据用户ID查询用户信息:

  1. 编写sql语句
  2. 配置关系映射
  3. 单元测试

 技术分享图片

 

根据用户名查找用户列表

  1. 编写sql语句
  2. 配置关系映射
  3. 单元测试

方式一:手动在sql语句里面设置查询,#{name}

方式二:直接在user.xml中设置,${}是字符串拼接指令,如果入参为普通数据类型,括号内只能写value

一:

映射:

技术分享图片

单元测试:

技术分享图片

 二:${}是字符串拼接指令,如果入参为普通数据类型,括号内只能写value

技术分享图片

 单元测试:

 技术分享图片

 

 

添加用户

映射:

技术分享图片

单元测试:如果不想手动提交事务,设置openSession(true)

技术分享图片

 

一 Mybatis概述&与Hibernate的区别&CRUD

原文:https://www.cnblogs.com/ltfxy/p/10398634.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!