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

来源:互联网 发布:最优化什么书 编辑:程序博客网 时间:2024/06/05 11:26

首先要创建好相应的数据库和表,导入Mybatis相关的jar包以及数据库驱动的jar包。
这里写图片描述

在Eclipse中创建一个项目,将相关的包导入进去。
这里写图片描述

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

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//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 mapperPUBLIC "-//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" ?><!DOCTYPE configurationPUBLIC "-//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进行测试,运行,结果如下:
这里写图片描述

测试成功!