MyBatis框架(二)使用demo

一、项目结构

在这里插入图片描述

二、添加项目依赖

 <dependencies>
        <!-- MyBatis核心包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
        </dependency>

        <!-- mysql驱动包 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>

        <!-- 单元测试junit测试包 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

        <!-- log4j日志包,方便看sql语句和日志 -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>


    </dependencies>

三、创建SqlMapConfig.xml全局配置文件mybatis-config.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>

    <!-- 将数据源的四要素信息写在jdbc.properties文件中通过properties标签的resource属性引用 -->
    <properties resource="jdbc.properties"/>

    <!-- 将实体类别名设置,package标签标示改路径下的所有实体类,在mapper.xml中resultType均可以使用类名的首字母小写的名字
     否则只可以使用全限定类名-->
    <typeAliases>
        <package name="com.lzw.bean"/>
    </typeAliases>

    <!-- 环境配置   -->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>

	<!-- mappers映射器,可以找到mapper.xml配置文件 -->
    <mappers>
<!--        <mapper resource="org/mybatis/example/BlogMapper.xml"/>-->
        <package name="com.lzw.dao"/>
    </mappers>
</configuration>

四、创建实体类Emp.java

package com.lzw.bean;

import java.util.Date;

/**
 * @Auther: lzw
 * @Date: 2021/2/9 - 02 - 09 - 12:46
 * @Description: com.lzw.bean
 * @version: 1.0
 */
public class Emp {
    
    
    private Integer empno;
    private String ename;
    private String job;
    private Integer mgr;
    private Date hiredate;
    private Double sal;
    private Double comm;
    private Integer deptno;

    @Override
    public String toString() {
    
    
        return "Emp{" +
                "empno=" + empno +
                ", ename='" + ename + '\'' +
                ", job='" + job + '\'' +
                ", mgr=" + mgr +
                ", hiredate=" + hiredate +
                ", sal=" + sal +
                ", comm=" + comm +
                ", deptno=" + deptno +
                '}';
    }

    public Integer getEmpno() {
    
    
        return empno;
    }

    public void setEmpno(Integer empno) {
    
    
        this.empno = empno;
    }

    public String getEname() {
    
    
        return ename;
    }

    public void setEname(String ename) {
    
    
        this.ename = ename;
    }

    public String getJob() {
    
    
        return job;
    }

    public void setJob(String job) {
    
    
        this.job = job;
    }

    public Integer getMgr() {
    
    
        return mgr;
    }

    public void setMgr(Integer mgr) {
    
    
        this.mgr = mgr;
    }

    public Date getHiredate() {
    
    
        return hiredate;
    }

    public void setHiredate(Date hiredate) {
    
    
        this.hiredate = hiredate;
    }

    public Double getSal() {
    
    
        return sal;
    }

    public void setSal(Double sal) {
    
    
        this.sal = sal;
    }

    public Double getComm() {
    
    
        return comm;
    }

    public void setComm(Double comm) {
    
    
        this.comm = comm;
    }

    public Integer getDeptno() {
    
    
        return deptno;
    }

    public void setDeptno(Integer deptno) {
    
    
        this.deptno = deptno;
    }

    public Emp() {
    
    
    }

    public Emp(Integer empno, String ename, String job, Integer mgr, Date hiredate, Double sal, Double comm, Integer deptno) {
    
    
        this.empno = empno;
        this.ename = ename;
        this.job = job;
        this.mgr = mgr;
        this.hiredate = hiredate;
        this.sal = sal;
        this.comm = comm;
        this.deptno = deptno;
    }
}

五、写dao层接口EmpMapper.java

package com.lzw.dao;

import com.lzw.bean.Emp;

import java.util.List;

/**
 * @Auther: lzw
 * @Date: 2021/2/9 - 02 - 09 - 12:57
 * @Description: com.lzw.dao
 * @version: 1.0
 */
public interface EmpMapper {
    
    

    public List<Emp> findAll();

}

六、创建mapper.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.lzw.dao.EmpMapper">
    <select id="findAll" resultType="emp">
        select * from emp
    </select>
</mapper>

注意:namespace为接口的全路径类名,id为接口的接口名

七、创建测试类

import com.lzw.bean.Emp;
import com.lzw.dao.EmpMapper;
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.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

/**
 * @Auther: lzw
 * @Date: 2021/2/9 - 02 - 09 - 13:10
 * @Description: PACKAGE_NAME
 * @version: 1.0
 */
public class MyTest {
    
    

    @Test
    public void Test01() throws IOException {
    
    
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
//        创建sqlsession工厂类
        SqlSessionFactory build = new SqlSessionFactoryBuilder().build(inputStream);
//        创建sqlsession传入true参数表示自动提交事务
        SqlSession sqlSession = build.openSession(true);
//        将mapper接口的class文件传入sqlsession,获取对象,并执行相关sql
        EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
        List<Emp> all = mapper.findAll();
        all.stream().forEach(System.out::println);
//        关闭sqlsession
        sqlSession.close();
    }
}

八、得到的结果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_47402482/article/details/113775309
今日推荐