`

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) 
) 

 

  • 描述: 项目目录
  • 大小: 23.3 KB
分享到:
评论

相关推荐

    ibatis的一个简单demo用户登录

    一个ibatis的demo含数据库哦,通过用户登录测试。

    spring.net+ibatis.net+mvc配置demo

    spring.net+ibatis.net+mvc配置demo.rar spring.net版本:1.3.2 ibatis.net版本:1.6.1 demo运行环境是VS2013 数据库表,我就没传了,测试的时候,建立表 CREATE TABLE [dbo].[Hair8_AD]( [ADId] [int] ...

    iBatisTest测试Demo

    iBatisTest测试Demo iBatisTest测试Demo

    spring+ibatis+webwork框架搭配

    数据库使用的是oracle。 其中的数据库连接需要根据你的实际进行修改。 测试类里面的操作数据库的信息需要做一些相应的更改,对应你要操作的测试表进行建javaban。

    springMVC+spring+Ibatis增删改查的demo

    使用springMVC+spring+Ibatis实现增删改查的demo 很全的代码,jar也是全的。包含测试代码。

    mybatis-3-3.3.x-study:编译后mybatis源码+简单测试项目

    mybatis-3-3.3.x-研究 编译后mybatis源码(简单注释)...测试项目demo置于test.java.org.apache.ibatis下。db源,xml及其他配置文件置于test.java.resources中。学习笔记: ://editor.csdn.net/md/?articleId 108888798

    好用的代码生成源码

    rapid-framework是一个以spring为核心的项目脚手架(或者称为胶水框架),框架将各个零散的框架(struts,strust2,springmvc,hibernate,ibatis,spring_jdbc,flex)搭建好,并内置一个代码生成器,辅助项目开发,可以生成...

    iuhyiuhkjh908u0980

    &lt;?xml version="1.0" encoding="GBK" ?&gt; &lt;project name="demo" default="usage" xmlns:catalina="antlib:org.apache.catalina.ant"&gt; &lt;!--属性配置- ... by mshijie 2009-07-30 回复 (0) [转]使用Ant进行项目构建之二...

    jfinalpluginsjfinal-dreampie.zip

    jfinal好用的插件正在开发,下载源码...压缩请求数据的gzipFilter,可测试 &lt;!--gzip compress filter--&gt; &lt;filter-name&gt;gzipFilter &lt;filter-class&gt;cn.dreampie.common.web.filter.gzip.GZIPFilter&lt;/filter-...

Global site tag (gtag.js) - Google Analytics