Mybatis基本环境搭建

来源:互联网 发布:i started a joke 知乎 编辑:程序博客网 时间:2024/06/04 01:28

 一、  MyBatis简述(来自官方doc)

MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

二、MyBatis基本环境搭建

1.需要的jar包分析

新建Java项目MybatisTest,将mybatis和mysql的两个jar包复制到src目录下。这里是这两个jar包


选中这两个jar包,右键 选择Build Path-->add to Build path


2.建立数据库mybatisusers,在其中表user(id,userName,userPwd)。交互式操作插入一条数据(张三,"123456")用作测试用。这里id字段是主键并且设置为自动增长


3.src目录下新建配置文件mybatis-config.xml。这里可以参考文档(http://www.mybatis.org/mybatis-3/getting-started.html)来写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>      <!-- 对事务的管理和连接池的配置 -->      <environments default="development">          <environment id="mybatisusers">              <transactionManager type="JDBC" />              <dataSource type="POOLED">  <property name="driver" value="${db.driver}" />  <property name="url" value="${db.url}" />  <property name="username" value="${db.user}" />  <property name="password" value="${db.password}" />             </dataSource>          </environment>      </environments>  
这里jdbc中一些参数的设置,也是采用占位符的形式引用。下面要在外加的properties文件中配置这些值


4.建立db.properties文件并在mybatis.config.xml文件中引入这个文件

db.properties:

db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://localhost/mybatisusers?characterEncoding=utf8&useSSL=true
db.user=jack
db.password=12345678

在mybatis.config.xml中引入即添加标签<properties resource="db.properties"></properties>


5.编写数据库user表对应的实体类:User.java  

这里重写toString方法是为了后边测试方便

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;}@Overridepublic String toString() {return "User [id=" + id + ", userName=" + userName + ", userPwd=" + userPwd + "]";}}


6.在实体类所在包下,编写userMapper.xml文件(映射文件)。用来描述针对这个实体类执行的所有方法

这里是做的根据id值去查询记录结果的sql语句

<?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="javastudy.userMapper">    <select id="selectUser" parameterType="int" resultType="javastudy.User">        select * from User where id = #{id}    </select></mapper>

在mybatis.config.xml文件中配置这个映射文件

    <!-- 为userMapper.xml配置路径  -->    <mappers>    <mapper resource="javastudy/userMapper.xml"/>    </mappers>

7.编写MyBatis的工具类  (读取配置文件)并且测试。这里类似于hibernate的环境搭建一样,这里在Mybatis中有SqlSession类,这个工具类就是为了解析xml文件并且获取这个session。

package javastudy;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 {//编写MyBatis的工具类  (读取配置文件)public static SqlSession openSession() throws IOException{String resource="mybatis-config.xml";InputStream in= Resources.getResourceAsStream(resource);SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(in,"mybatisusers");return sessionFactory.openSession();}}


三、测试环境搭建

建立单元测试类,写方法testSelectUser,并传进去id值为1。最后打印查询出的user,看看与初始化的(张三,"123456")是否一样。

这里要定义String statement="javastudy.userMapper.selectUser";  用来配置到映射文件的sql语句

package Test;import java.io.IOException;import java.util.List;import org.apache.ibatis.session.SqlSession;import org.junit.Test;import javastudy.MybatisUtils;import javastudy.User;public class MybatisTest {SqlSession session;String statement=null;@Testpublic void testSelectUser() throws IOException {session=MybatisUtils.openSession();statement="javastudy.userMapper.selectUser";User user=session.selectOne(statement, 1);System.out.println(user);session.commit();session.close();}
}


运行单元测试,程序没有问题!这样就算搭建好了Mybatis基本环境。



0 0
原创粉丝点击