您的位置:首页 > 其它

MyBatis的第一个HelloWorld小例子(不用接口)

2017-07-09 21:06 239 查看
首先要创建好相应的数据库和表,导入Mybatis相关的jar包以及数据库驱动的jar包。



在Eclipse中创建一个项目,将相关的包导入进去。



创建一个mybatis-config(名字可以随便取,但是最好用这个名字)作为全局配置文件。内容如下:

<?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>
<!-- environments 配置MyBatis的运行环境-->
<environments default="development">
<environment id="development">
<!-- type="JDBC" 代表直接使用 JDBC 的提交和回滚设置 -->
<transactionManager type="JDBC" />
<!-- POOLED 表示支持JDBC数据源连接池 -->
<!-- 数据库连接池,由 Mybatis 管理,数据库名是 mybatis,MySQL 用户名 root,密码为123456 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="EmployeeMapper.xml" />
</mappers>
</configuration>


然后创建一个与数据库表相对应的bean文件,

package com.mybatis.bean;

public class Employee {
private int id;
private String lastName;
private String sex;
private String email;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "Employee [id=" + id + ", lastName=" + lastName + ", sex=" + sex + ", email=" + email + "]";
}

}


接下来创建一个与bean相对应的Mapper文件,只写一个sql语句作为例子。即根据ID查找Employee表中的某一条记录。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mybatis.dao.EmployeeMapper">
<!--
namespce:命名空间
id:用作唯一标识,与查询语句相对应
resultType:查询返回结果类型
id = #{id}:从传递过来的值中与其对应
-->
<select id="getEmpById" resultType="com.mybatis.bean.Employee">
select * from tbl_employee where id = #{id}
</select>
</mapper>


注意,Mapper.xml文件需要在全局配置文件中注册。

<?xml version="1.0" encoding="UTF-8" ?>
<!
4000
DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- environments 配置MyBatis的运行环境-->
<environments default="development">
<environment id="development">
<!-- type="JDBC" 代表直接使用 JDBC 的提交和回滚设置 -->
<transactionManager type="JDBC" />
<!-- POOLED 表示支持JDBC数据源连接池 -->
<!-- 数据库连接池,由 Mybatis 管理,数据库名是 mybatis,MySQL 用户名 root,密码为123456 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>
<!--注册相对应的Mapper-->
<mappers>
<mapper resource="EmployeeMapper.xml" />
</mappers>
</configuration>


接下来,就可以创建一个测试类来进行测试了。

import java.io.IOException;
import java.io.InputStream;

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.mybatis.bean.Employee;
import com.mybatis.dao.EmployeeMapper;

public class Test {

public SqlSessionFactory getSqlSessionFactory() throws IOException{
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
return sqlSessionFactory;
}

@org.junit.Test
public void test() throws IOException{
//1.获取一个SqlSessionFactory对象
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

//2.使用一个SqlSessionFactory对象open一个SqlSession对象
SqlSession sqlSession=sqlSessionFactory.openSession();
try {
//3.设置返回对象类型,使用sqlSession实例调用对应Mapper.xml文件中的查询语句
//执行查询语句对应的mapper,第一个参数为对应的查询ID(注意这个查询ID是Mapper.xml中自己设置的),第二个参数为查询的关键字

Employee emp=sqlSession.selectOne("getEmpById", 1);
System.out.println(emp.toString());

} finally {
//4.关闭sqlSession
sqlSession.close();
}

}


使用Junit进行测试,运行,结果如下:



测试成功!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mybatis