Ibatis测试demo

今天写了个ibatis3的deom,发上来权当笔记。

ibatis3下载地址 http://repo1.maven.org/maven2/org/mybatis/mybatis/3.2.2/ 下载(mybatis-3.2.2.jar)

1.项目目录


 2.源码解析

Org.java pojo类

package com.ibatis3.test;

public class Org {
	private String id;
	private String orgName;
	private String parentId;
	public Org(){
		
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getOrgName() {
		return orgName;
	}
	public void setOrgName(String orgName) {
		this.orgName = orgName;
	}
	public String getParentId() {
		return parentId;
	}
	public void setParentId(String parentId) {
		this.parentId = parentId;
	}
	


}

sqlMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
<configuration>
	<properties resource="jdbc.properties"/>
	<typeAliases>
		<typeAlias type="com.ibatis3.test.Org" alias="Org"/>
	</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="com/ibatis3/test/Org.xml"/>
	</mappers>
</configuration>

Org.xml pojo类的配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<!--  -->

<mapper namespace="com.ibatis3.test.OrgMapper">
	<select id="selectOrg" parameterType="String"
		resultType="Org">
		select * from org where id = #{id}
	</select>
	<select id="selectAll" resultType="Org">
		select * from org
	</select>
	<select id="selectOrgsByName" resultType="Org" parameterType="String">
		select * from org where orgname like #{orgname}
	</select>
	<insert id="insertOrg" parameterType="Org">
		insert into org(id,orgname,parentid)
		values(#{id},#{orgName},#{parentId})
	</insert>
	<delete id="deleteOrg" parameterType="String">
		delete from org where id=#{id}
	</delete>
	<update id="updateOrg" parameterType="Org">
		update org set orgname=#{orgName},parentid=#{parentId}
		where id=#{id}
	</update>
</mapper>

 OrgMapper.java 数据层访问接口

package com.ibatis3.test;

import java.util.List;

public interface OrgMapper {
	Org selectById(String id);
	List<Org> selectAll();
	List<Org> selectOrgsByName(String name);
	void insert(Org org);
	void delete(String id);
	void update(Org org);
}

SessionFactory.java 

package com.ibatis3.test;

import java.io.IOException;
import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class SessionFactory {
	private String resource = "com/ibatis3/test/SqlMapper.xml";
	private SqlSessionFactory sqlSessionFactory = null;
	private static SessionFactory sessionFactory = new SessionFactory();

	private SessionFactory() {
		try {
			Reader reader = Resources.getResourceAsReader(resource);
			sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
		} catch (IOException e) {
			System.out
					.println("#IOException happened in initialising the SessionFactory:"
							+ e.getMessage());
			throw new ExceptionInInitializerError(e);
		}
	}

	public static SessionFactory getInstance() {
		return sessionFactory;
	}

	public SqlSessionFactory getSqlSessionFactory() {
		return sqlSessionFactory;
	}
}

OrgDao.java

package com.ibatis3.test;

import java.util.ArrayList;
import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

public class OrgDao implements OrgMapper {
	
	private SqlSessionFactory sessionFactory = SessionFactory.getInstance().getSqlSessionFactory();
	private static String packageName = "com.ibatis3.test.OrgMapper.";
	
	@Override
	public Org selectById(String id) {
		Org org = new Org();
		SqlSession session = null;
		try{
			session = sessionFactory.openSession();
			org = (Org)session.selectOne(packageName+"selectOrg",id);
		}catch(Exception ex){
			ex.printStackTrace();
		}finally{
			session.close();
		}
		return org;
	}

	@Override
	public List<Org> selectAll() {
		List<Org> orgs = new ArrayList<Org>();
		SqlSession session = null;
		try {
			session = sessionFactory.openSession();
			orgs = session
					.selectList(packageName+"selectAll");
		} finally {
			session.close();
		}

		return orgs;
	}

	@Override
	public List<Org> selectOrgsByName(String name) {
		List<Org> orgs = new ArrayList<Org>();
		SqlSession session = null;
		try {
			session = sessionFactory.openSession();
			System.out.println(name);
			orgs = session.selectList(
					packageName+"selectOrgsByName", "%"
							+ name + "%");
			session.commit();
		} finally {
			session.close();
		}

		return orgs;
	}

	@Override
	public void insert(Org org) {
		SqlSession session = null;
		try {
			session = sessionFactory.openSession();
			session.insert(packageName+"insertOrg", org);
			session.commit();
		} finally {
			session.close();
		}


	}

	@Override
	public void delete(String id) {
		SqlSession session = null;
		try {
			session = sessionFactory.openSession();
			session.delete(packageName+"deleteOrg", id);
			session.commit();
		} finally {
			session.close();
		}

	}

	@Override
	public void update(Org org) {
		SqlSession session = null;
		try {
			session = sessionFactory.openSession();
			session.insert(packageName+"updateOrg", org);
			session.commit();
		} finally {
			session.close();
		}

	}

}

TestOrgDao.java junit测试类

package com.ibatis3.test;
import java.util.List;

import org.junit.Test;
public class TestOrgDao {
	
	@Test 
	public void testSelectOne(){
		OrgMapper dao = new OrgDao();
		Org org = dao.selectById("root");
		System.out.println(org.getOrgName());
		
	}
	
	@Test
	public void TestselectAll(){
		OrgMapper dao = new OrgDao();
		List<Org> orgs = dao.selectAll();
		for(Org org:orgs){
			System.out.println(org.getOrgName());
		}
	}
	
	@Test
	public void TestselectPersonsByName(){
		OrgMapper dao = new OrgDao();
		List<Org> orgs = dao.selectOrgsByName("产品");
		for(Org org:orgs)
		System.out.println(org.getOrgName());
	}
	@Test
	public void insert(){
		OrgMapper dao = new OrgDao();
		Org org = new Org();
		org.setId("33");
		org.setOrgName("testInsert");
		org.setParentId("root");
		dao.insert(org);
	}
	@Test
	public void delete(){
		OrgMapper dao = new OrgDao();
		dao.delete("33");
	}
	@Test
	public void update(){
		OrgMapper dao = new OrgDao();
		Org org = dao.selectById("root");
		org.setParentId("1");
		dao.update(org);
		Org orgnew = dao.selectById("root");
		System.out.println(orgnew.getParentId());
	}

}

jdbc.properties配置文件

driver=net.sourceforge.jtds.jdbc.Driver
url=jdbc:jtds:sqlserver://localhost:1433/demo
username=sa
password=123

 建表SQL:

create table org(  
id varchar(20) primary key,  
orgname varchar(50),  
parentid varchar(50) 
) 

猜你喜欢

转载自cetus.iteye.com/blog/1872683