MyBatis 本是 apache 的一个开源项目 iBatis, 2010 年这个项目由 apache software foundation 迁移到了 google code,并且改名为 MyBatis 。
这篇文章主要介绍了 MyBatis 如何使用 (一) 的相关资料, 非常不错,具有参考借鉴价值,需要的朋友可以参考下
mybatis 作为 ORM 轻量级框架一出现就吸引了无数人的眼球,比 hibernate 要简单且入门较容易,下面开始我的第一个 mybatis 程序。
一、下载 mybatis 的包
我们知道任何一个框架都会有其包,我们从其官方网站下载其包,官网网址为:http://www.mybatis.org/mybatis-3/,我这里使用的版本为 3.3.0。下载完成之后解压可看到如下的目录结构:
mybatis-3.3.0.jar 是其包,lib 目录下是其依赖包,我们把这些包放到我们的项目中。我这里创建的是 javaweb 项目,方便以后做 web 测试,编写的程序是普通的 java 程序。
二、配置环境
把 mybatis 的包放到项目的 lib 目录下之后,接下来时配置 mybatis 的环境,我们知道 mybatis 做为 ORM 框架,属于开发中的 DAO 层,是和数据库打交道的,所以我们必须有数据,这里以 mysql 数据为例,具体的建库和建表这里不阐述。
在 src 目录下创建 mybatis 的配置文件,文件名称为:configuratin.xml,文件内容如下:
xml version="1.0" encoding="UTF-8" ?>
alias="Message" type="com.cn.imooc.entity.Message" />
default="development">
id="development">
type="JDBC" />
type="POOLED">
name="driver" value="com.mysql.jdbc.Driver" />
name="url" value="jdbc:mysql://127.0.0.1:3306/weixin?useUnicode=true&characterEncoding=UTF-8"
/>
name="username" value="root" />
name="password" value="123456" />
resource="com/cn/mappers/message.xml" />
在 mybatis 配置文件中还有很多的配置项这里仅仅使用了这几个,
<typeAliases> 别名配置,即把实体类做个别名,目的在于在映射文件中使用实体类时不使用全限类名,而是使用别名,起到简单的作用
<environments> 配置了一些环境 比如数据配置,这里我们配置了数据源
<mappers> 配置映射文件,这里配置了 com.cn.mappers 包下的 message.xml 映射文件
下面对 Message 实体类进行说明,此实体类里是一些属性,如下,
package com.cn.imooc.entity;
public class Message {
private String id;
private String command;
private String description;
private String comment;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getCommand() {
return command;
}
public void setCommand(String command) {
this.command = command;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}@Override public String toString() {
return "Message [id=" + id + ", command=" + command + ", description=" + description + ", comment=" + comment + "]";
}
}
提供了 getXXX 和 setXXX 方法,其中 setXXX 方法很关键,我这里的属性和数据库的字段名是一致,可以方便使用 mybatis 查询出结果之后反射到实体类中,当然也可以和数据库表字段名不一致,后续会进行说明。
message.xml 映射文件如下,
namespace="com.cn.inter.IMessageOperation">
id="selectUserByID" parameterType="int" resultType="com.cn.imooc.entity.Message">
select * from `message` where id = #{id}
id="selectMessages" resultType="Message">
select id,
command,
description,
comment
from message;
这是我的 mapper 映射文件,里边有两个方法,一个是:selectUserById 根据 id 查询,另一个是 selectMessages 查询所有
好了,到此为止,我们的 mybatis 的环境搭建完成,下面可以进行测试了。
三、测试
下面是测试代码,
package com.cn.test;
import java.io.IOException;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.cn.imooc.entity.Message;
public class MyTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Reader reader;
SqlSession sqlSession = null;
try {
//1、获得sqlSessionFactory
reader = Resources.getResourceAsReader("Configuration.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
//2、获得sqlSession
sqlSession = sqlSessionFactory.openSession();
//3、查询
Message message = sqlSession.selectOne("com.cn.inter.IMessageOperation.selectUserByID", 1);
System.out.println(message);
} catch(IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
sqlSession.close();
}
}
}
从上面可以看出,首先需要一个 SqlSessionFactory,然后由 sqlSessionFactory 获得 sqlSession,由 sqlSession 执行查询,使用了 selectOne 方法,第一个参数是映射文件中的 nameSpace+"." 方法名,第二个参数是查询参数。
以上所述是小编给大家介绍的 MyBatis 如何使用 (一) 的全部叙述,希望对大家有所帮助。后续还会介绍别的版本,更多内容敬请关注 PHPERZ!
来源: http://www.phperz.com/article/17/1207/360338.html