简单的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("方法结束");
}
}