`

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和笔记

    而"IbatisStudy"可能是一个示例项目,包含了一个简单的Ibatis应用场景,如用户管理模块,包含实体类、Mapper接口、Mapper XML文件以及相关的测试代码。通过运行这个项目,你可以更直观地了解Ibatis的工作流程。 ...

    iBatis_Demo.rar_ibaties demo_ibatis de_ibatis mysql demo_ibati

    在项目启动后,可以通过模拟用户注册、登录、修改信息等场景,测试iBatis是否能正确执行SQL,以及结果映射是否准确。 7. **事务管理** iBatis支持自动和手动的事务管理。在`SqlMapConfig.xml`中配置事务管理器,...

    ibatis.net Demo

    `LoginTest`可能是这个Demo中的一个测试用例,它展示了如何使用`ibatis.net`进行用户登录验证。在`LoginTest`中,我们可能会看到以下步骤: - 创建`SqlMapClient`实例,通过`dao.config`加载配置信息。 - 编写...

    ibatis小例子Demo

    6. **测试**:通过JUnit或其他测试框架编写测试用例,验证Ibatis的功能是否正常工作。 通过这个Demo,初学者可以逐步了解Ibatis的工作原理,掌握如何将SQL语句与Java代码相结合,以及如何处理数据库操作的各种场景...

    ibatis的demo

    7. **集成测试**:了解如何编写单元测试或集成测试,确保Ibatis的SQL操作正确无误。 通过深入研究这个Demo,开发者不仅可以熟练掌握Ibatis的使用,还能了解到如何在实际项目中组织和管理代码,提升项目结构的清晰度...

    spring+ibatis的Java项目demo项目源码

    本项目源码提供了一个完整的 Spring + iBATIS 的 Demo 示例,旨在帮助开发者理解和学习如何将这两个框架集成到一个Java项目中。下面将详细介绍这个项目的相关知识点。 **Spring 框架** Spring 是一个全面的后端开发...

    ibatis的一个简单demo用户登录

    【描述】"一个ibatis的demo含数据库哦,通过用户登录测试。"这说明这个DEMO不仅包含了iBATIS的相关代码,还包含了一个用于测试用户登录功能的数据库。在实际的用户登录场景中,通常需要验证用户的用户名和密码,确保...

    一个iBatis的demo

    2. ibatis-demo.sql:用于创建测试数据库的SQL脚本。 3. UserMapper.xml:SQL映射文件,定义了用户相关的SQL语句。 4. UserMapper.java:对应的Mapper接口,包含对应XML中的方法声明。 5. Main.java:演示如何使用...

    H2DataBase+iBatis简易demo

    【H2DataBase+iBatis简易demo】是一个演示项目,展示了如何将轻量级的H2数据库与流行的Java持久层框架iBatis进行集成。在这个项目中,开发人员使用了MyEclipse作为IDE,并且H2数据库被配置为两种运行模式:内存模式...

    spring+ibatis demo搭建

    ### Spring+Ibatis Demo搭建详解 #### 一、项目背景与目标 在现代软件开发过程中,集成多种技术栈来构建高效稳定的应用系统是常见的做法。本文档将详细介绍如何使用Spring和Ibatis这两种流行的技术框架搭建一个...

    spring,ibatis,postgresql,整合demo

    9. **Spring测试**:DEMO可能包含了单元测试和集成测试,使用Spring的测试支持,如`@ContextConfiguration`和`@Autowired`,确保每个组件都能正常工作。 10. **登录功能**:SpringLoginDemo可能实现了用户登录功能...

    spring3mvc+ibatis+demo

    【Spring3MVC + iBatis + Demo】项目是一个典型的Java Web开发示例,它结合了Spring MVC作为控制器层、iBatis作为数据访问层,为开发者提供了一个轻量级的框架集成方案。这个项目旨在帮助初学者了解如何在实际应用中...

    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] ...

    STRUTS2+SPRING+IBATIS搭建的Demo实例

    总结来说,这个"STRUTS2+SPRING+IBATIS搭建的Demo实例"是一个很好的学习资料,它帮助开发者理解并实践如何在Java Web开发中有效地集成这三个框架,实现MVC架构,以及如何利用自动装配功能简化配置和提高代码的可维护...

    IbatisDemo03

    本示例"IbatisDemo03"将带你深入理解如何在.NET环境中利用IbatisNet来应用动态SQL。 动态SQL是IbatisNet的一个重要特性,它允许我们在运行时根据特定条件构建SQL查询,从而避免了硬编码大量条件判断的麻烦。动态SQL...

    .net IbatisDemo 学习

    .NET IbatisDemo 学习是针对ASP.NET MVC框架与IBatis.net数据访问层集成的一个实践教程,对于初学者掌握IBatis.net的用法具有很大的帮助。在这个教程中,我们将深入探讨如何将这两种技术结合,以实现高效的数据操作...

    ibatis2.3例子代码

    接下来,你可能会看到一个名为`Test`的文件,这可能是一个测试类,用于演示如何在Java代码中使用iBatis。测试类通常会包含初始化SqlSessionFactory,创建SqlSession,以及调用Mapper接口执行SQL语句的逻辑。例如: ...

    iBATIS_Spring_struts_demo.rar_DEMO_Struct spring ibatis_ibatis j

    标题中的“iBATIS_Spring_struts_demo.rar_DEMO_Struct spring ibatis_ibatis j”表明这是一个关于集成iBATIS、Spring和Struts的演示项目。这个DEMO旨在展示如何在Java应用中有效地整合这三个框架,从而实现数据持久...

    asp.net MVC和IBatis.net整合demo程序

    在这个"asp.net MVC和IBatis.net整合demo程序"中,开发者使用Visual Studio 2013作为开发环境,构建了一个完整的CRUD(Create, Read, Update, Delete)应用。VS2013是微软推出的强大开发工具,集成了对.NET ...

Global site tag (gtag.js) - Google Analytics