Mybatis___简单小案例

简单的mybatis的使用,后面会一步步的说明以及进一步的使用

一、依赖

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.mapper</groupId>
    <artifactId>Mybatis-mapping</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <dependencies>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version>
        </dependency>

        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
        </dependency>

        
    </dependencies>

</project>

二、全局配置文件mybatis-mapper.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="development">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="${driver}" />
                <property name="url" value="${url}" />
                <property name="username" value="${user_name}" />
                <property name="password" value="${password}" />
            </dataSource>
        </environment>
    </environments>
    
    <mappers>
        <mapper resource="com/mapper/IEmpDao.xml" /> 
        <!--<package name="com.mapper"/>-->
    </mappers>
</configuration>

三、映射文件
这里主配置文件mybatis-mapper.xml中:
将映射文件添加到主配置文件中

<mappers>
        <mapper resource="com/mapper/IEmpDao.xml" />    
</mappers>


可以发现,UserDao中的代码都是模板化代码,都可以通过配置自动生成,因此,在实际开发中,Mapper接口中,只需要声明方法名,方法参数、方法返回等信息,无需写实现类。
IEmpDao.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="emp">
    <insert id="addEmp" parameterType="com.dao.EmpDao">
        insert into emp (ename,job)values(#{ename },#{ job })
    </insert>
    <delete id="deleteEmpById" parameterType="java.lang.Integer"> 
        delete from emp where empno =#{empno}    
    </delete>
    <update id="updateEmpById" parameterType=" com.dao.EmpDao"> 
        update emp set ename = #{ ename } where empno =#{ empno }    
    </update>
    <select id="getEmpById" parameterType="java.lang.Integer" resultType=" com.dao.EmpDao "> 
        select * from emp where empno =#{ empno }   
    </select>
</mapper>

Pojo类Emp:

package com.pojo;

import java.util.Date;

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;
private String pwd;

private Dept dept;
/**
 * @return the empno
 */
public Integer getEmpno() {
    return empno;
}
/**
 * @param empno the empno to set
 */
public void setEmpno(Integer empno) {
    this.empno = empno;
}
/**
 * @return the ename
 */
public String getEname() {
    return ename;
}
/**
 * @param ename the ename to set
 */
public void setEname(String ename) {
    this.ename = ename;
}
/**
 * @return the job
 */
public String getJob() {
    return job;
}
/**
 * @param job the job to set
 */
public void setJob(String job) {
    this.job = job;
}
/**
 * @return the mgr
 */
public Integer getMgr() {
    return mgr;
}
/**
 * @param mgr the mgr to set
 */
public void setMgr(Integer mgr) {
    this.mgr = mgr;
}
/**
 * @return the hiredate
 */
public Date getHiredate() {
    return hiredate;
}
/**
 * @param hiredate the hiredate to set
 */
public void setHiredate(Date hiredate) {
    this.hiredate = hiredate;
}
/**
 * @return the sal
 */
public Double getSal() {
    return sal;
}
/**
 * @param sal the sal to set
 */
public void setSal(Double sal) {
    this.sal = sal;
}
/**
 * @return the comm
 */
public Double getComm() {
    return comm;
}
/**
 * @param comm the comm to set
 */
public void setComm(Double comm) {
    this.comm = comm;
}
/**
 * @return the deptno
 */
public Integer getDeptno() {
    return deptno;
}
/**
 * @param deptno the deptno to set
 */
public void setDeptno(Integer deptno) {
    this.deptno = deptno;
}
/**
 * @return the pwd
 */
public String getPwd() {
    return pwd;
}
/**
 * @param pwd the pwd to set
 */
public void setPwd(String pwd) {
    this.pwd = pwd;
}
public Emp() {
    super();
    // TODO Auto-generated constructor stub
}
public Dept getDept() {
    return dept;
}
public void setDept(Dept dept) {
    this.dept = dept;
}
public Emp(Integer empno, String ename, String job, Integer mgr, Date hiredate, Double sal, Double comm, Integer deptno,
        String pwd, Dept dept) {
    super();
    this.empno = empno;
    this.ename = ename;
    this.job = job;
    this.mgr = mgr;
    this.hiredate = hiredate;
    this.sal = sal;
    this.comm = comm;
    this.deptno = deptno;
    this.pwd = pwd;
    this.dept = dept;
}
@Override
public String toString() {
    return "Emp [empno=" + empno + ", ename=" + ename + ", job=" + job + ", mgr=" + mgr + ", hiredate=" + hiredate
            + ", sal=" + sal + ", comm=" + comm + ", deptno=" + deptno + ", pwd=" + pwd + ", dept=" + dept + "]";
}
    


}

工具类MybatisUtils
获取SqlSessionFactory对象
获取SqlSession对象

package com.common;

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 SqlSessionFactory getSqlSessionFactory() throws IOException {
        // 获取配置文件对应的字节输入流
                    InputStream in = Resources.getResourceAsStream("mybatis-mapper.xml");
                    // 获取SqlSessionFactory对象
                    SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in );
                            return factory;
    }
    
    
    public static SqlSession getSqlSession() throws IOException {
        
        SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
        SqlSession session = sqlSessionFactory.openSession();
        // TODO Auto-generated method stub
        return session;
    }
    
}

测试:

package com.typeHandler;

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

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.apache.log4j.Logger;

import com.common.MybatisUtils;
import com.mapper.IDeptDao;
import com.mapper.IEmpDao;
import com.pojo.Dept;
import com.pojo.Emp;
import com.pojo.EmpA;
import com.pojo.GetEmp;

public class Test {
    private static Logger logger = Logger.getLogger (Test.class);
    public void empTest() throws IOException {
        // TODO Auto-generated method stub
        // 获取配置文件对应的字节输入流
        
        InputStream in = Resources.getResourceAsStream("mybatis-mapper.xml");
        // 获取SqlSessionFactory对象
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in );
        // 通过SqlSessionFactory对象获取SqlSession对象
        SqlSession session = factory.openSession();
        // 参数  namespace+"."+id
        List<Emp> list = session.selectList("emp.emp");
        for (Emp emp : list) {
            System.out.println(emp);
        }
        session.close();
    }

    public void selEmp() throws IOException {
        // TODO Auto-generated method stub
        SqlSession session = MybatisUtils.getSqlSession();
        IEmpDao dao = session.getMapper(IEmpDao.class);
        List<Emp> list = dao.selEmp();
        logger.info("方法中");
        for (Emp emp : list) {
            System.out.println(emp);
        }
    
        session.close();
    }
    
    public void selEmp1(Integer empno) throws IOException {
        // TODO Auto-generated method stub
        SqlSession session = MybatisUtils.getSqlSession();
        IEmpDao dao = session.getMapper(IEmpDao.class);
        Emp emp1 = dao.selEmp1(empno);
        System.out.println(emp1);
    /*  List<Emp> list = dao.selEmp();
        logger.info("方法中");
        for (Emp emp : list) {
            System.out.println(emp);
        }*/
    
        session.close();
    }
    
    public void selEmp2(Integer empno) throws IOException {
        // TODO Auto-generated method stub
        SqlSession session = MybatisUtils.getSqlSession();
        IEmpDao dao = session.getMapper(IEmpDao.class);
        Emp emp2 = dao.selEmp2(empno);
        System.out.println(emp2);
    /*  List<Emp> list = dao.selEmp();
        logger.info("方法中");
        for (Emp emp : list) {
            System.out.println(emp);
        }*/
    
        session.close();
    }
    
    public void selEmp3() throws IOException {
        // TODO Auto-generated method stub
        SqlSession session = MybatisUtils.getSqlSession();
        IEmpDao dao = session.getMapper(IEmpDao.class);
        List<EmpA> selEmP3 = dao.selEmp3();
        logger.info("方法中");
        for (EmpA empa : selEmP3) {
            System.out.println(empa);
        }
    
        session.close();
    }
    
    public void selEmp4() throws IOException {
        // TODO Auto-generated method stub
        SqlSession session = MybatisUtils.getSqlSession();
        IEmpDao dao = session.getMapper(IEmpDao.class);
        List<EmpA> selEmp4 = dao.selEmp4();
        logger.info("方法中");
        for (EmpA empa : selEmp4) {
            System.out.println(empa);
        }
    
        session.close();
    }
    
    public int insEmp(Emp emp) throws IOException {
        // TODO Auto-generated method stub
        SqlSession session = MybatisUtils.getSqlSession();
        IEmpDao dao = session.getMapper(IEmpDao.class);
        int insEmp1 = dao.insEmp(emp);
        session.commit();
        return insEmp1;
    }
    
    public int insEmp1(String ename,String job) throws IOException {
        // TODO Auto-generated method stub
        SqlSession session = MybatisUtils.getSqlSession();
        IEmpDao dao = session.getMapper(IEmpDao.class);
        int insEmp1 = dao.insEmp1(ename, job);
        session.commit();
        return insEmp1;
    }
    
    
    public int insEmp2(String ename,String job) throws IOException {
        // TODO Auto-generated method stub
        SqlSession session = MybatisUtils.getSqlSession();
        IEmpDao dao = session.getMapper(IEmpDao.class);
        int insEmp2 = dao.insEmp2(ename, job);
        session.commit();
        return insEmp2;
    }
    
    public int insEmp3(GetEmp gEmp) throws IOException {
        // TODO Auto-generated method stub
        SqlSession session = MybatisUtils.getSqlSession();
        IEmpDao dao = session.getMapper(IEmpDao.class);
        int insEmp3 = dao.insEmp3(gEmp);
        session.commit();
        return insEmp3;
    }
    
    public void selDept() throws IOException {
        // TODO Auto-generated method stub
        SqlSession session = MybatisUtils.getSqlSession();
        IDeptDao dao = session.getMapper(IDeptDao.class);
        List<Dept> list = dao.selDept();
        for (Dept dept : list) {
            System.out.println(dept);
        }
    }
    
    public static void main(String[] args) {
        
        Test test = new Test();
        try {
//          logger.debug("进入方法");
//          test.selEmp1(7788);
            /*GetEmp getEmp = new GetEmp();
            Emp emp = new Emp();
            emp.setEname("zz");
            emp.setJob("ss");
            emp.setMgr(200);
            emp.setSal(1000.0);
            emp.setComm(2000.0);
            getEmp.setEmp(emp);
            int insEmp = test.insEmp3(getEmp);*/
            /*Emp emp = new Emp();
            emp.setEname("zz");
            emp.setJob("ss");
            emp.setMgr(200);
            emp.setSal(1000.0);
            emp.setComm(2000.0);
            int insEmp = test.insEmp(emp);
            Integer empno = emp.getEmpno();
            System.out.println(" "+empno+":"+" "+insEmp);*/
            /*int insEmp = test.insEmp2("zz","zz");
            System.out.println(insEmp);*/
//          test.selEmp4();
//          test.selDept();
            
            SqlSession session = MybatisUtils.getSqlSession();
            IEmpDao dao = session.getMapper(IEmpDao.class);
            Emp emp1 = dao.selEmp1(7902);
            System.out.println(emp1);
            System.out.println("----------");
            
            session.close();
            
            session = MybatisUtils.getSqlSession();
            dao = session.getMapper(IEmpDao.class);
            emp1 = dao.selEmp1(7902);
            System.out.println(emp1);
            System.out.println("----------");
            
            session.close();
            
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
//          logger.error("方法出错");
        }
//      logger.error("方法结束");
    }
    
}

猜你喜欢

转载自www.cnblogs.com/zhangsonglin/p/10975848.html