今天写了个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) )
相关推荐
而"IbatisStudy"可能是一个示例项目,包含了一个简单的Ibatis应用场景,如用户管理模块,包含实体类、Mapper接口、Mapper XML文件以及相关的测试代码。通过运行这个项目,你可以更直观地了解Ibatis的工作流程。 ...
在项目启动后,可以通过模拟用户注册、登录、修改信息等场景,测试iBatis是否能正确执行SQL,以及结果映射是否准确。 7. **事务管理** iBatis支持自动和手动的事务管理。在`SqlMapConfig.xml`中配置事务管理器,...
`LoginTest`可能是这个Demo中的一个测试用例,它展示了如何使用`ibatis.net`进行用户登录验证。在`LoginTest`中,我们可能会看到以下步骤: - 创建`SqlMapClient`实例,通过`dao.config`加载配置信息。 - 编写...
6. **测试**:通过JUnit或其他测试框架编写测试用例,验证Ibatis的功能是否正常工作。 通过这个Demo,初学者可以逐步了解Ibatis的工作原理,掌握如何将SQL语句与Java代码相结合,以及如何处理数据库操作的各种场景...
7. **集成测试**:了解如何编写单元测试或集成测试,确保Ibatis的SQL操作正确无误。 通过深入研究这个Demo,开发者不仅可以熟练掌握Ibatis的使用,还能了解到如何在实际项目中组织和管理代码,提升项目结构的清晰度...
本项目源码提供了一个完整的 Spring + iBATIS 的 Demo 示例,旨在帮助开发者理解和学习如何将这两个框架集成到一个Java项目中。下面将详细介绍这个项目的相关知识点。 **Spring 框架** Spring 是一个全面的后端开发...
【描述】"一个ibatis的demo含数据库哦,通过用户登录测试。"这说明这个DEMO不仅包含了iBATIS的相关代码,还包含了一个用于测试用户登录功能的数据库。在实际的用户登录场景中,通常需要验证用户的用户名和密码,确保...
2. ibatis-demo.sql:用于创建测试数据库的SQL脚本。 3. UserMapper.xml:SQL映射文件,定义了用户相关的SQL语句。 4. UserMapper.java:对应的Mapper接口,包含对应XML中的方法声明。 5. Main.java:演示如何使用...
【H2DataBase+iBatis简易demo】是一个演示项目,展示了如何将轻量级的H2数据库与流行的Java持久层框架iBatis进行集成。在这个项目中,开发人员使用了MyEclipse作为IDE,并且H2数据库被配置为两种运行模式:内存模式...
### Spring+Ibatis Demo搭建详解 #### 一、项目背景与目标 在现代软件开发过程中,集成多种技术栈来构建高效稳定的应用系统是常见的做法。本文档将详细介绍如何使用Spring和Ibatis这两种流行的技术框架搭建一个...
9. **Spring测试**:DEMO可能包含了单元测试和集成测试,使用Spring的测试支持,如`@ContextConfiguration`和`@Autowired`,确保每个组件都能正常工作。 10. **登录功能**:SpringLoginDemo可能实现了用户登录功能...
【Spring3MVC + iBatis + Demo】项目是一个典型的Java Web开发示例,它结合了Spring MVC作为控制器层、iBatis作为数据访问层,为开发者提供了一个轻量级的框架集成方案。这个项目旨在帮助初学者了解如何在实际应用中...
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实例"是一个很好的学习资料,它帮助开发者理解并实践如何在Java Web开发中有效地集成这三个框架,实现MVC架构,以及如何利用自动装配功能简化配置和提高代码的可维护...
本示例"IbatisDemo03"将带你深入理解如何在.NET环境中利用IbatisNet来应用动态SQL。 动态SQL是IbatisNet的一个重要特性,它允许我们在运行时根据特定条件构建SQL查询,从而避免了硬编码大量条件判断的麻烦。动态SQL...
.NET IbatisDemo 学习是针对ASP.NET MVC框架与IBatis.net数据访问层集成的一个实践教程,对于初学者掌握IBatis.net的用法具有很大的帮助。在这个教程中,我们将深入探讨如何将这两种技术结合,以实现高效的数据操作...
接下来,你可能会看到一个名为`Test`的文件,这可能是一个测试类,用于演示如何在Java代码中使用iBatis。测试类通常会包含初始化SqlSessionFactory,创建SqlSession,以及调用Mapper接口执行SQL语句的逻辑。例如: ...
标题中的“iBATIS_Spring_struts_demo.rar_DEMO_Struct spring ibatis_ibatis j”表明这是一个关于集成iBATIS、Spring和Struts的演示项目。这个DEMO旨在展示如何在Java应用中有效地整合这三个框架,从而实现数据持久...
在这个"asp.net MVC和IBatis.net整合demo程序"中,开发者使用Visual Studio 2013作为开发环境,构建了一个完整的CRUD(Create, Read, Update, Delete)应用。VS2013是微软推出的强大开发工具,集成了对.NET ...