用eclipse開發第一個MyBatis

一、引入架包


二、定義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();
	}
	
	

}

發佈了62 篇原創文章 · 獲贊 9 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章