MyBatis实现简单的用户查询

来源:互联网 发布:ip网络广播控制中心 编辑:程序博客网 时间:2024/06/03 21:23

首先导入的jar包:
mybatis-3.2.7.jar
mysql-connector-java-5.1.23-bin.jar
在数据库中创建一个users的数据库,建一张表名为user的表,分别有id,userName,userPwd三个字段。随便填上一些数据
根据表建立pojo实体类User.java.属性名对应数据库的三个字段

package javastudy;public class User {    private int id;    private String userName;    private String userPwd;    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getUserName() {        return userName;    }    public void setUserName(String userName) {        this.userName = userName;    }    public String getUserPwd() {        return userPwd;    }    public void setUserPwd(String userPwd) {        this.userPwd = userPwd;    }    @Override    public String toString() {        return "User [id=" + id + ", userName=" + userName + ", userPwd=" + userPwd + "]";    }}

用xml实现映射器
userMapper.xml

<?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="javastudy.UserMapper">    <!-- 查询 -->    <select id="selectUser" resultType="javastudy.User">        select * from User where id=#{id}    </select></mapper>

这里我们只是使用了select语句。根据id查询相应的字段。

在mybatis中xml分为两类。一类是基础配置文件mybatis-cfg.xml,通常只有一个,主要是配置一些最基础的上下文参数和运行环境;另一类是映射文件,它可以配置映射关系,SQL,参数等信息。建立mybatis-cfg.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>    <properties resource="db.properties"/>    <environments default="development">    <environment id="users">        <transactionManager type="JDBC"/>        <dataSource type="POOLED">            <property name="driver" value="${db.driver}"/>            <property name="url" value="${db.url}"/>            <property name="username" value="${db.username}"/>            <property name="password" value="${db.password}"/>        </dataSource>    </environment>    </environments>    <mappers>        <mapper resource="javastudy/userMapper.xml"/>    </mappers></configuration>

这里值得注意的是environment的id,后面在MyBatisUtis中SqlSessionFactoryBuilder().build(InputStream,String environment)中会用到。
建立数据库的properties文件,我们可以配置多个键值放在一个properties中,方便日后维护和修改。db.properties代码如下:

db.driver=com.mysql.jdbc.Driverdb.url=jdbc:mysql://localhost:3306/usersdb.username=rootdb.password=root

接下来我们利用mybatis-cfg.xml文件,通过SqlSessionFactoryBuilder来构建SqlSessionFactory。代码如下

package utility;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;public class MyBatisUtils {    public static SqlSession openSession() throws IOException{        String resource="mybatis-cfg.xml";//制定主配置文件        InputStream in=Resources.getResourceAsStream(resource);        SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(in, "users");        return sessionFactory.openSession();    }}

到这里基本构建好了,接下来我们通过JUnit来测试我们写的代码。新建一个MyTest.java类

package Test;import static org.junit.Assert.*;import java.io.IOException;import org.apache.ibatis.session.SqlSession;import org.junit.Test;import javastudy.User;import utility.MyBatisUtils;public class MyTest {    @Test    public void testSelect() throws IOException {        SqlSession session=MyBatisUtils.openSession();        String statement="javastudy.UserMapper.selectUser";//确定sql语句        User user=session.selectOne(statement,1);//返回一条记录,返回一条对象        System.out.println(user);        session.close();    }}

程序打印结果为:
User [id=1, userName=张三, userPwd=111]