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("方法结束");
	}
	
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

偷偷学习被我发现

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值