Mybatis(一)

来源:互联网 发布:优质的企业排名优化 编辑:程序博客网 时间:2024/06/05 17:49

Mybatis是一个优秀的数据持久层框架在实体类和SQL语句之间建立映射关系,是一种半自动化ORM实现,其封装性要低于Hibernate。主要思想是将程序中大量SQL语句剥离出来,配置在配置文件中,实现SQL的灵活配置。这样做使得SQL与程序代码分离,可以不修改程序代码直接在配置文件修改SQL。

数据持久化:
将内存中的数据模型转换成存储模型,以及将存储模型转换为内存中的数据模型的统称(数据模型、存储模型的互相转换)。例如:文件的存储,数据的读取都是持久化操作。

ORM:
ORM(Object/Relational Mapping)即对象关系映射,是一种持久化技术,在对象模型关系型数据库之间建立起对应关系,并且提供一种机制,通过JavaBean对象去操作数据库表的数据。

Mybatis是一种半自动化的ORM实现,通过简单的XML或者注解进行配置和原始映射,将实体类和SQL语句之间建立映射关系。


Mybatis环境搭建:

1.下载jar包
2.部署jar包
3.编写Mybatis核心配置文件(mybatis-config.xml)
4.创建实体类
5.创建Dao接口
6.创建Sql映射文件
7.编写测试类


1.下载jar包

2.部署jar包
mybatis-3.2.2.jar
mysql-connector-java-5.1.0-bin.jar(MySQL数据库驱动文件)
log4j-1.2.17.jar(负责日志输出)

3.编写Mybatis核心配置文件(mybatis-config.xml)
配置数据库连接和MyBatis运行所需的各种特性,包含了设置和影响MyBatis行为的属性。mybatis-config.xml建立在resources文件夹下,具体配置如下:

<?xml version="1.0" encoding="UTF-8"?><!-- 提示信息(需要配置DTD文件) --><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><!-- 配置文件根节点configuration --><configuration>    <!-- 引入database文件 -->    <properties resource="database.properties"/>    <!-- 配置MyBatis实现为log4j -->    <settings>        <setting name="logImpl" value="LOG4J"/>    </settings>    <!-- 配置MyBatis多套运行环境 -->    <environments default="development">        <environment id="development">        <!-- 配置事务管理,才用JDBC -->        <transactionManager type="JDBC"></transactionManager>        <!-- POOLED:MyBatis自带的数据源,JNDI:tomcat的数据源 -->        <dataSource type="POOLED">        <!-- 注意name里的格式固定不能改,value对应database里的命名 -->            <property name="driver" value="${driver}"/>            <property name="url" value="${url}"/>            <property name="username" value="${user}"/>            <property name="password" value="${password}"/>        </dataSource>        </environment>    </environments>    <!-- 将一个或者多个mapper文件加载到配置文件中 -->    <mappers>        <mapper resource="user/dao/UserMapper.xml"/>    </mappers></configuration>

4.创建实体类
5.创建Dao接口

MyBatis一般采用POJO编程模型来实现持久化类,POJO(Plain Ordinary Java Object)简单的Java对象,是为了避免和EJB混淆所创造的简称。实际就是普通JavaBeans,可以理解为符合JavaBean规范的实体类,不需要实现和继承任何接口或者基类。对象状态保存在属性中,访问要通过getter和setter方法。

POJO与javabean的区别:
POJO(Plain Old Java Object)这个名字用来强调它是一个普通java对象,而不是一个特殊的对象。“POJO”主要用来指代那些没用遵从特定的Java对象模型,约定或框架如EJB的Java对象。

理想地讲,一个POJO是一个不受任何限制的Java对象(除了Java语言规范)。例如一个POJO不应该是
扩展预定的类,如 public class Foo extends javax.servlet.http.HttpServlet { …
实现预定的接口,如 public class Bar implements javax.ejb.EntityBean { …
包含预定的标注,如 @javax.ejb.Entity public class Baz{ …
然后,因为技术上的困难及其他原因,许多兼容POJO风格的软件产品或框架事实上仍然要求使用预定的标注,譬如用于更方便的持久化。

JavaBean 是一种JAVA语言写成的可重用组件。它的方法命名,构造及行为必须符合特定的约定:
1.这个类必须有一个公共的缺省构造函数。
2.这个类的属性使用getter和setter来访问,其他方法遵从标准命名规范。
3.这个类应是可序列化的。
因为这些要求主要是靠约定而不是靠实现接口,所以许多开发者把JavaBean看作遵从特定命名约定的POJO。

简而言之,当一个Pojo可序列化,有一个无参的构造函数,使用getter和setter方法来访问属性时,他就是一个JavaBean。

package user.pojo;public class User {private Integer id;private String user;private String pwd;public Integer getId() {    return id;}public void setId(Integer id) {    this.id = id;}public String getUser() {    return user;}public void setUser(String user) {    this.user = user;}public String getPwd() {    return pwd;}public void setPwd(String pwd) {    this.pwd = pwd;}}

6.创建Sql映射文件(UserMapper.xml)

原创粉丝点击