mybatis 3.3.0是一个专业的持久层框架,主要是用于普通SQL查询、存储过程和高级映射。提起持久层框架,专业的人士肯定会想到mybatis和hibernate这两个程序,这两款程序都是专业的持久层框架程序,那两者有何区别呢:“简单的来说两者的的数据操作是不一致,hibernate会自动生成相关的SQL语句,而mybatis则需要用户自己进行相关SQL语句的编写,所以相对于hibernate的智能化来说,mybatis的SQL语句对于用户来说在设计上更为的自由”。
新版mybatis 3.3.0大幅度的消除了JDBC代码和参数的手工设置以及结果集的检索。同时mybatis用户可以使用更为简单的XML或注解来进行配置和原始映射,并将接口和Java的POJOs映射成数据库中的记录。mybatis相关的应用程序主要都是在使用SqlSessionFactory实例。此外,mybatis的功能架构主要分为三层,包括api接口层、数据处理层和基础支撑层。其中数据处理层是最为关键的一个层,主要就是帮组用户进行SQL查找、SQL解析、SQL执行和执行结果映射处理等操作。
PS:mybatis 3.3.0需要mysql数据库才可以完整运行,没有的用户可以到此下载MySQL官方下载
持久层是什么?
持久层,英文即persistence,简单的来说就是把数据保存到可掉电式存储设备中。大多数情况下特别是企业级应用,数据持久化往往也就意味着将内存中的数据保存到磁盘上加以固化,而持久化的实现过程则大多通过各种关系数据库来完成。那么持久层呢?延续思路,所谓“持久层”,也就是在系统逻辑层面上,专著于实现数据持久化的一个相对独立的领域(Domain)。持久层是负责向(或者从)一个或者多个数据存储器中存储(或者获取)数据的一组类和组件。这个层必须包括一个业务领域实体的模型(即使只是一个元数据模型)。不过这里有一个字需要特别强调,也就是所谓的“层”。对于应用统而言,数据持久功能大多是必不可少的组成部分。那不就是说,知识兔的系统中,已经天然的具备了“持久层”概念?也许是,但也许实际情况并非如此。之所以要独立出一个“持久层”的概念,而不是“持久模块”,“持久单元”,也就意味着,知识兔的系统架构中,应该有一个相对独立的逻辑层面,专著于数据持久化逻辑的实现.与系统其他部分相对而言,这个层面应该具有一个较为清晰和严格的逻辑边界。
教程
准备开发环境
1、创建测试项目,普通java项目或者是JavaWeb项目均可,如下图所示:
2、然后将mybatis 3.3.0加入到项目当中
3、创建数据库和表,针对MySQL数据库
SQL脚本如下:
将SQL脚本在MySQL数据库中执行,完成创建数据库和表的操作,如下
使用MyBatis查询表中的数据
1、添加Mybatis的配置文件conf.xml在src目录下创建一个conf.xml文件,如下图所示:
conf.xml文件中的内容如下:
2、定义表所对应的实体类,如下图所示:
User类的代码如下:
3、定义操作users表的sql映射文件userMapper.xml
创建一个me.gacl.mapping包,专门用于存放sql映射文件,在包中创建一个userMapper.xml文件,如下图所示:
userMapper.xml文件的内容如下:
4、在conf.xml文件中注册userMapper.xml文件
5、编写测试代码:执行定义的select语句创建一个Test1类,编写如下的测试代码:
6、执行结果如下:
功能架构层次功能介绍
1、API接口层
分享给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理
2、数据处理层
负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。
3、基础支撑层
负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层分享最基础的支撑
相关问题解答
1、mybatis配置文件详解
知识兔小编在mybatis 3.3.0安装包内为用户分享了一个最为完整的mybatis主配置文件,包括properties属性、settings设置、typeAliases类型别名以及typeHandlers类型句柄等。有兴趣的用户可以进入浏览
2、mybatis sql语句
同样在mybatis 3.3.0安装包为有着最为完整的mybatis sql的动态sql语句,内容包括if标签、where、set、trim标签和set语句等。有需要的用户可以进入图区
3、mybatis和hibernate的区别
Hibernate
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
MyBatis
使用MyBatis分享的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象, 这一层与通过Hibernate实现ORM而言基本一致,而对于具体的数据操作,Hibernate会自动生成SQL 语句,而MyBatis则要求开发者编写具体的SQL语句。相对Hibernate等 “全自动”ORM机制而言,MyBatis 以SQL开发的工作量和数据库移植性上的让步,为系统 设计分享了更大的自由空间。作为“全自动”ORM 实现的一种有益补充,MyBatis 的出现显 得别具意义。
下载体验