mybatis-config.xml配置
这里加了个typeAliases标签,给实体类起别名。
<?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="jdbc/db.properties"></properties>
<typeAliases>
<package name="com.yf.domain"/><!-- 使用类别名 -->
</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 resource="mybatis/mapper/ProvinceMapper.xml"/>
<mapper resource="mybatis/mapper/CityMapper.xml"/>
<mapper resource="mybatis/mapper/DeptMapper.xml"/>
<mapper resource="mybatis/mapper/EmpMapper.xml"/>
</mappers>
</configuration>
db.properties文件
url=jdbc:oracle:thin:@localhost:1521:orcl
username=scott
password=123456
driver=oracle.jdbc.driver.OracleDriver
EmpMapper.xml文件
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="emp">
<select id="selectAllEmps" resultType="emp">
select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp
</select>
<select id="selectEmpByEmpno" parameterType="int" resultType="emp">
select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where empno=#{empno}
</select>
<insert id="insertEmp" parameterType="emp">
insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno)
values(#{empno},#{ename},#{job},#{mgr},#{hiredate},#{sal},#{comm},#{deptno})
</insert>
<update id="updateEmp" parameterType="emp">
update emp set ename=#{ename},job=#{job},mgr=#{mgr},hiredate=#{hiredate},sal=#{sal},comm=#{comm},deptno=#{deptno} where empno=#{empno}
</update>
<delete id="deleteEmp" parameterType="int">
delete from emp where empno=#{empno}
</delete>
</mapper>
包结构
EmpMapperImpl实现类
package com.yf.mapper.impl;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import com.yf.domain.Emp;
import com.yf.mapper.EmpMapper;
import com.yf.util.DBUtil;
/**
* 员工表数据访问对象实现类
* @author YFAN
*
*/
public class EmpMapperImpl implements EmpMapper {
/**
* 查询所有员工
*/
@Override
public List<Emp> selectAllEmps() {
SqlSession session=DBUtil.getSession();
List<Emp> emps=session.selectList("emp.selectAllEmps");
session.close();
return emps;
}
/**
* 通过员工编号查询某个员工
*/
@Override
public Emp selectEmpByEmpno(Integer empno) {
SqlSession session=DBUtil.getSession();
Emp emp=session.selectOne("emp.selectEmpByEmpno",empno);
session.close();
return emp;
}
/**
* 添加员工
*/
@Override
public int insertEmp(Emp emp) {
SqlSession session=DBUtil.getSession();
int result=session.insert("emp.insertEmp", emp);
session.commit();
session.close();
return result;
}
/**
* 更新员工信息
*/
@Override
public int updateEmp(Emp emp) {
SqlSession session=DBUtil.getSession();
int result=session.update("emp.updateEmp", emp);
session.commit();
session.close();
return result;
}
/**
* 删除员工
*/
@Override
public int deleteEmp(Integer empno) {
SqlSession session=DBUtil.getSession();
int result=session.delete("emp.deleteEmp", empno);
session.commit();
session.close();
return result;
}
}
MyBatis原始开发dao,接口、方法、代码存在大量模板,看起来十分笨重,不能充分发挥MyBatis功力。
Test测试类
import java.util.Date;
import java.util.List;
import com.yf.domain.Emp;
import com.yf.mapper.impl.EmpMapperImpl;
public class TestEmp {
public static void main(String[] args) {
EmpMapperImpl empMapper=new EmpMapperImpl();
queryAllemps(empMapper);
// insertEmp(empMapper);
// updateEmp(empMapper);
// deleteEmp(empMapper);
}
private static void deleteEmp(EmpMapperImpl empMapper) {
int rows=empMapper.deleteEmp(9999);
System.out.println(rows);
}
private static void updateEmp(EmpMapperImpl empMapper) {
Emp emp=new Emp(9999, "测试2", "游戏测试", 7839, new Date(), 4000.9, 520.01, 10);
int rows=empMapper.updateEmp(emp);
System.out.println(rows);
}
private static void insertEmp(EmpMapperImpl empMapper) {
Emp emp=new Emp(9999, "测试", "游戏测试", 7839, new Date(), 4000.9, 520.01, 10);
int rows=empMapper.insertEmp(emp);
System.out.println(rows);
}
private static void queryAllemps(EmpMapperImpl empMapper) {
List<Emp> emps=empMapper.selectAllEmps();
System.out.println(emps.toString());
}
}