一、引入架包
二、定义MyBatis全局配置文件
<?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>
<!-- 配置开发环境 -->
<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:@localhost:1521:orcl"/>
<property name="username" value="scott"/>
<property name="password" value="123"/>
</dataSource>
</environment>
</environments>
<!-- 配置sql语句映射文件 -->
<mappers>
<mapper resource="com/mingde/mapper/EmpMapper.xml"/>
</mappers>
</configuration>
三、定义实体类的映射文件
<?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="test">
<!-- 查询所有员工信息 -->
<select id="seeAll" resultType="com.mingde.po.Employee">
select * from Employee
</select>
<!-- 根据id查询员工 -->
<select id="findOne" parameterType="String" resultType="com.mingde.po.Employee" >
select * from Employee where eid=#{eid}
</select>
<!-- 添加员工 -->
<insert id="insert" parameterType="com.mingde.po.Employee">
insert into Employee values(#{eid},#{ename},#{sex},#{age},${birth})
</insert>
<!-- 修改员工 -->
<update id="update" parameterType="com.mingde.po.Employee">
update Employee set ename=#{ename},sex=#{sex},age=#{age},birth=${birth} where eid=#{eid}
</update>
<!-- 删除员工 -->
<delete id="delete" parameterType="int">
delete from Employee where eid=#{eid}
</delete>
<!-- 插入员工信息时,用序列插入 -->
<!-- <insert id="add" parameterType="com.minde.po.Students">
<selectKey resultType="int" order="BEFORE" keyProperty="sid">
select seq_studnt.nextval as sid from dual
</selectKey>
insert into Students values(#{sid},#{sname},#{ssex},${sdate},#{cid})
</insert> -->
</mapper>
四、配置MyBatisUtils
package com.mingde.utils;
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 {
//获取资源文件,创建SqlSessionFactory工厂
public static SqlSessionFactory getSqlSessionFactory()throws Exception{
InputStream inputStream = Resources.getResourceAsStream("myBatisConfig.xml");
return new SqlSessionFactoryBuilder().build(inputStream);
}
//打开SqlSessoinFactory工厂,获取Sqlsession
public static SqlSession getSqlSession()throws Exception{
return getSqlSessionFactory().openSession();
}
//打开SqlSessoinFactory工厂,获取Sqlsession,并且自动提交commit;
public static SqlSession getSqlSessionAutoCommit()throws Exception{
//注意:如果为true,则进增删改时,会自动commit提交,如果不写或为false的话则不会自动commit提交,则需要在写完增删改之后,session.commmit();
return getSqlSessionFactory().openSession(true);
}
}
五、测试类
package com.mingde.test;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import com.mingde.po.Employee;
import com.mingde.utils.MyBatisUtils;
public class Test {
@org.junit.Test
public void test() throws Exception {
SqlSession session = MyBatisUtils.getSqlSession();
List selectList = session.selectList("test.seeAll");
System.out.println(selectList);
session.close();
}
@org.junit.Test
public void Test2() throws Exception {
SqlSession session = MyBatisUtils.getSqlSessionAutoCommit();
Employee employee = new Employee(1005, "赵7", "男", 12, "to_date('2017-3-2','yyyy-mm-dd')");
session.insert("test.insert", employee);
session.close();
}
@org.junit.Test
public void test3() throws Exception {
SqlSession session = MyBatisUtils.getSqlSession();
Object selectOne = session.selectOne("test.findOne", "1001");
System.out.println(selectOne);
session.close();
}
@org.junit.Test
public void test4() throws Exception {
SqlSession session = MyBatisUtils.getSqlSession();
session.update("test.update", new Employee(1005, "赵七", "男", 17, "to_date('2017-7-7','yyyy-mm-dd')"));
session.commit();
session.close();
}
@org.junit.Test
public void test5() throws Exception {
SqlSession session=MyBatisUtils.getSqlSessionAutoCommit();
session.delete("test.delete",1005);
session.close();
}
}