1.加入所需jar
class12.jar
mybatis-3.2.2.jar
3.创建Emp实体类
package com.nantian.domain;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.text.SimpleAttributeSet;
public class Emp {
private Integer empNo;
private String ename;
private String job;
private Integer mgr;
private String hireDate;
private Double sal;
private Double comm;
private Integer deptNo;
public Emp() {
super();
// TODO Auto-generated constructor stub 一定要加上此构造方法,否则会报错!
}
public Emp(Integer empNo, String ename, String job, Integer mgr,
String hireDate, Double sal, Double comm, Integer deptNo) {
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;
}
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 String getHireDate() {
return hireDate;
}
public void setHireDate(String 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 String toString() {
return "Emp [comm=" + comm + ", deptNo=" + deptNo + ", empNo=" + empNo
+ ", ename=" + ename + ", hireDate=" + hireDate + ", job="
+ job + ", mgr=" + mgr + ", sal=" + sal + "]";
}
}
4. 创建EmpMapper.java接口
package com.nantian.dao;
import java.util.Map;
import com.nantian.domain.Emp;
public interface EmpMapper {
public Emp findById(Integer id);
public boolean updateEmp(Map map);
}
5.建立相应的映射文件EmpMapper.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"
>
<!--这块等于dao接口的实现 namespace必须和接口的类路径一样-->
<mapper namespace="com.nantian.dao.EmpMapper">
<resultMap id="Emp" type="com.nantian.domain.Emp" />
<!-- findById必须和接口中的方法名一样 返回一个Emp
就是刚才的别名 如果不弄别名要连类路径一起写 麻烦-->
<select id="findById" parameterType="HashMap" resultMap="Emp">
select * from emp where empNo=#{empNo}
</select>
<update id="updateEmp" parameterType="HashMap">
update temp set ENAME=#{ename} where EMPNO=#{empno}
</update>
</mapper>
6. 建立configuration.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>
<typeAliases>
<!--给实体类起一个别名 Emp -->
<typeAlias type="com.nantian.domain.Emp" alias="Emp" />
</typeAliases>
<environments default="development">
<environment id="development">
<!--数据源配置 -->
<transactionManager type="jdbc" />
<dataSource type="POOLED">
<property name="driver" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/>
<property name="username" value="scott" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
<mappers>
<!--EmpMapper.xml装载进来 同等于把“dao”的实现装载进来 -->
<mapper resource="com/nantian/dao/EmpMapper.xml"/>
</mappers>
</configuration>
7.测试
package com.nantian.dao;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
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 test {
/**
* 获得MyBatis SqlSessionFactory
* SqlSessionFactory负责创建SqlSession,一旦创建成功,就可以用SqlSession实例来执行映射语句,commit,rollback,close等方法。
* @return
*/
private static SqlSessionFactory getSessionFactory(){
SqlSessionFactory sessionFactory = null;
String resource = "configuration.xml";
try {
sessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader(resource));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sessionFactory;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SqlSession sqlSession = getSessionFactory().openSession();
EmpMapper empMapper = (EmpMapper) sqlSession.getMapper(EmpMapper.class);
//Emp emp = empMapper.findById(new Integer(7369));
//System.out.println(emp.getHireDate());
Map map = new HashMap();
map.put("ename", "wjn");
map.put("empno", new Integer(7369));
if(empMapper.updateEmp(map)){
System.out.println("succ");
}
sqlSession.commit();
}
}
8.总结
myBatis接口中的方法名字和EmpMapper.xml中对应的id应该一致,且接口无需实现,直接调用接口即可现实CRUD操作!