搭建搭建 Mybatis 开发环境

1.创建maven工程

创建 mybatis01 的工程,工程信息如下:
Groupid:com.itheima
ArtifactId:mybatisfirst
Packing:jar
2.添加Mybatis3.4.5的坐标
在 pom.xml 文件中添加 Mybatis3.4.5 的坐标,如下
    <dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.5</version>
        </dependency>
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>sqljdbc4</artifactId>
            <version>4.0</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

3、编写User实体类

public class Users implements Serializable {
    private  String ID;
    private  String Name;
    private  String Account;
    private  String Password;
    private  Integer Status;
    private  Integer Sort;
    private String Note;

    public String getID() {
        return ID;
    }

    public void setID(String ID) {
        this.ID = ID;
    }

    public String getName() {
        return Name;
    }

    public void setName(String name) {
        Name = name;
    }

    public String getAccount() {
        return Account;
    }

    public void setAccount(String account) {
        Account = account;
    }

    public String getPassword() {
        return Password;
    }

    public void setPassword(String password) {
        Password = password;
    }

    public Integer getStatus() {
        return Status;
    }

    public void setStatus(Integer status) {
        Status = status;
    }

    public Integer getSort() {
        return Sort;
    }

    public void setSort(Integer sort) {
        Sort = sort;
    }

    public String getNote() {
        return Note;
    }

    public void setNote(String note) {
        Note = note;
    }
}

4.编写持久层接口IUserDao

public interface IUserDao  {

    List<Users> FindAll();
    Users FindByName(String Name);
}

5、编写持久层的映射文件IUserDao.xml

要求:
创建位置:必须和持久层接口在相同的包中。
名称:必须以持久层接口名称命名文件名,扩展名是.xml

<?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.mingqi.dao.IUserDao">
    <select id="FindAll" resultType="com.mingqi.domin.Users">
        select * from Users
    </select>
    <select id="FindByName" resultType="com.mingqi.domin.Users">
        select * from Users where name  like #{name}
    </select>
</mapper>

6、编写SqlMapConfig.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="">
        <environment id="SqlServer">
            <!---配置事务类型-->
            <transactionManager type="JDBC"></transactionManager>
            <!---配置数据源-->
            <dataSource type="POOLED">
                <!---配置链接数据库的基本信息-->

                <property name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
                <property name="url" value="jdbc:sqlserver://localhost:1433;DatabaseName=test"/>
                <property name="username" value="sa"/>
                <property name="password" value="123sa"/>
            </dataSource>
        </environment>
    </environments>
    <!---映射-->
    <mappers>
        <mapper resource="com/mingqi/dao/IUserDao.xml"></mapper>
    </mappers>
</configuration>

7、编写测试类

package com.mingqi;
import com.mingqi.dao.IUserDao;
import com.mingqi.domin.Users;
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 org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class mybatisTest {
    private InputStream in;
    private SqlSession session;
    private  IUserDao userdao;
    @Before//用于在测试方法执行之前执行
    public void init()throws Exception{
        //1.读取配置文件,生成字节输入流
        in = Resources.getResourceAsStream("SqlMapConfig.xml");
        //2.获取SqlSessionFactory
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in,"SqlServer");
        //3.获取SqlSession对象
        session = factory.openSession();
        //4.获取dao的代理对象
        userdao = session.getMapper(IUserDao.class);
    }
    @After//用于在测试方法执行之后执行
    public void destroy()throws Exception{
        //提交事务
        session.commit();
        //6.释放资源
        session.close();
        in.close();
    }
    @Test
    public  void TestFindAll() throws Exception {
        //1读取配置文件
        //InputStream inputStream;
  /*      InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
        //2创建SqlSessionFactory工厂
        SqlSessionFactoryBuilder sfb =new SqlSessionFactoryBuilder();
        SqlSessionFactory factory=sfb.build(inputStream,"SqlServer");

        //3使用工厂生产SqlSession 对象
        SqlSession session=factory.openSession();
        // 4使用Sql 创建Dao 接口的代理对象
        IUserDao userdao=session.getMapper(IUserDao.class);*/
        //5使用代理对象执行放放
        List<Users> users=userdao.FindAll();
        for (Users User :users)
        {
            System.out.println(User.getName());
        }
        //6释放方法
      /*  session.close();
        inputStream.close();*/
    }
    @Test
    public void TestFindByName() throws IOException {
        //1读取配置文件
        //InputStream inputStream;
/*        InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
        //2创建SqlSessionFactory工厂
        SqlSessionFactoryBuilder sfb =new SqlSessionFactoryBuilder();
        SqlSessionFactory factory=sfb.build(inputStream,"SqlServer");
        //3使用工厂生产SqlSession 对象
        SqlSession session=factory.openSession();
        // 4使用Sql 创建Dao 接口的代理对象
        IUserDao userdao=session.getMapper(IUserDao.class);*/
        //5使用代理对象执行放放
       Users user=userdao.FindByName("%李%");
      //  for (Users User :users)
        //{
            System.out.println(user.getName());
      //  }
        //6释放方法
       // session.close();
      //  inputStream.close();

    }
}
通过快速入门示例,我们发现使用 mybatis 是非常容易的一件事情,因为只需要编写 Dao 接口并且按照
mybatis 要求编写两个配置文件,就可以实现功能。远比我们之前的 jdbc 方便多了。
SqlMapConfig.xml 配置文件

 

posted @ 2020-06-03 11:06  心有玲曦遇奇缘  阅读(169)  评论(0编辑  收藏  举报