当前位置: 移动技术网 > IT编程>开发语言>Java > MyBatis如何使用(一)

MyBatis如何使用(一)

2019年07月22日  | 移动技术网IT编程  | 我要评论
mybatis作为orm轻量级框架一出现就吸引了无数人的眼球,比hibernate要简单且入门较容易,下面开始我的第一个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" ?>
<!doctype configuration public "-//mybatis.org//dtd config 3.0//en"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--别名--> 
<typealiases> 
<typealias alias="message" type="com.cn.imooc.entity.message"/> 
</typealiases> 
<environments default="development">
<environment id="development">
<transactionmanager type="jdbc"/>
<datasource type="pooled">
<property name="driver" value="com.mysql.jdbc.driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/weixin?useunicode=true&characterencoding=utf-8" />
<property name="username" value="root"/>
<property name="password" value="123456"/>
</datasource>
</environment>
</environments>
<!--映射文件--> 
<mappers>
<mapper resource="com/cn/mappers/message.xml"/>
</mappers>
</configuration>

在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映射文件如下,

<mapper namespace="com.cn.inter.imessageoperation">
<select id="selectuserbyid" parametertype="int" resulttype="com.cn.imooc.entity.message">
select * from `message` where id = #{id}
</select>
<select id="selectmessages" resulttype="message">
select id,
command,
description,
comment
from message;
</select>
</mapper>

这是我的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如何使用(一)的全部叙述,希望对大家有所帮助。后续还会介绍别的版本,更多内容敬请关注移动技术网!

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网