一个简单的iBatis应用所需要的文件
1:POJO类 例:Person.java
public class Person { private int id; private String firstName; private String lastName; private Date birthDate; private double weightInKilograms; private double heightInMeters; // getter,setter省略 }
2:iBatis总的配置文件 例:SqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd"> <sqlMapConfig> <!-- 加载JDBC配置文件 --> <properties resource="examples/sqlmap/maps/SqlMapConfigExample.properties" /> <!-- 设置连接属性 --> <settings cacheModelsEnabled="true" enhancementEnabled="true" lazyLoadingEnabled="true" maxRequests="32" maxSessions="10" maxTransactions="5" useStatementNamespaces="false" /> <!-- 别名 --> <typeAlias alias="order" type="testdomain.Order" /> <!-- transaction&dataSource配置 --> <transactionManager type="JDBC"> <dataSource type="SIMPLE"> <property name="JDBC.Driver" value="${driver}" /> <property name="JDBC.ConnectionURL" value="${url}" /> <property name="JDBC.Username" value="${username}" /> <property name="JDBC.Password" value="${password}" /> </dataSource> </transactionManager> <!-- 引入POJO类的配置文件 --> <sqlMap resource="examples/sqlmap/maps/Person.xml" /> </sqlMapConfig>
3:JDBC配置文件 SqlMapConfigExample.properties
driver=oracle.jdbc.driver.OracleDriver url=jdbc:oracle:thin:@localhost:1521:oracle1 username=jsmith password=test
4:对应POJO类的配置文件 例:Person.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd"> <sqlMap namespace="Person"> <!-- 查询 --> <select id="getPerson" parameterClass="int" resultClass="examples.domain.Person"> SELECT PER_ID as id, PER_FIRST_NAME as firstName, PER_LAST_NAME as lastName, PER_BIRTH_DATE as birthDate, PER_WEIGHT_KG as weightInKilograms, PER_HEIGHT_M as heightInMeters FROM PERSON WHERE PER_ID = #value# </select> <!-- 新增 --> <insert id="insertPerson" parameterClass="examples.domain.Person"> INSERT INTO PERSON (PER_ID, PER_FIRST_NAME, PER_LAST_NAME, PER_BIRTH_DATE, PER_WEIGHT_KG, PER_HEIGHT_M) VALUES (#id#, #firstName#, #lastName#, #birthDate#,#weightInKilograms#, #heightInMeters#) </insert> <!-- 更新 --> <update id="updatePerson" parameterClass="examples.domain.Person"> UPDATE PERSON SET PER_FIRST_NAME = #firstName#, PER_LAST_NAME = #lastName#, PER_BIRTH_DATE = #birthDate#, PER_WEIGHT_KG = #weightInKilograms#, PER_HEIGHT_M = #heightInMeters# WHERE PER_ID = #id# </update> <!-- 删除 --> <delete id="deletePerson" parameterClass="examples.domain.Person"> DELETE PERSON WHERE PER_ID = #id# </delete> </sqlMap>
5:对应表 Person.sql
CREATE TABLE PERSON( PER_ID NUMBER (5, 0) NOT NULL, PER_FIRST_NAME VARCHAR (40) NOT NULL, PER_LAST_NAME VARCHAR (40) NOT NULL, PER_BIRTH_DATE DATETIME , PER_WEIGHT_KG NUMBER (4, 2) NOT NULL, PER_HEIGHT_M NUMBER (4, 2) NOT NULL, PRIMARY KEY (PER_ID) )
6:封装
public class MyAppSqlConfig { private static final SqlMapClient sqlMapClient ; static { try { String resource = "com/ibatis/example/sql-map-config.xml"; Reader reader = Resources.getResourceAsReader(resource); sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader); } catch (Exception e) { e.printStackTrace(); } } public static SqlMapClient getSqlMapInstance() { return sqlMapClient; } }
7:应用
public class Person { public static void main(String[] args) { //---------查询-------------- SqlMapClient sqlMapClient = MyAppSqlMapConfig.getSqlMapInstance(); Integer personPk = new Integer(5); Person person = (Person) sqlMapClient.queryForObject ("getPerson", personPk); //---------更新------------- person.setHeightInMeters(1.83); person.setWeightInKilograms(86.36); sqlMapClient.update("updatePerson", person); //---------删除---------- sqlMapClient.delete("deletePerson", person); //---------插入---------- Person newPerson = new Person(); newPerson.setId(11); newPerson.setFirstName("Clinton"); newPerson.setLastName("Begin"); newPerson.setBirthDate (null); newPerson.setHeightInMeters(1.83); newPerson.setWeightInKilograms(86.36); sqlMapClient.insert ("insertPerson", newPerson); } }
相关推荐
本教程将带你入门Ibatis,主要关注其配置方面的基础知识。 首先,我们需要理解Ibatis的核心理念:它是一个SQL映射框架,允许开发者将SQL语句与Java代码分离,以提高可维护性和灵活性。Ibatis通过XML或注解方式定义...
"IBATIS视频入门 abator代码生成器" 这个标题指出,这是一份关于学习IBATIS框架的初级教程,特别关注的是其代码生成工具——Abator。IBATIS是一个开源的Java框架,它允许开发人员将SQL语句直接集成到Java代码中,以...
【标签】"ibatis入门案例"明确了这个案例是面向初级用户的,它将涵盖MyBatis的基本概念,如SQL映射文件、Mapper接口、事务管理等,并通过实际的数据库操作展示如何使用MyBatis进行数据存取。 【压缩包子文件的文件...
"freemarker+struts2+ibatis入门学习摘要" 这个标题揭示了本文档将围绕三个核心Java技术框架进行讲解:FreeMarker、Struts2和iBatis。这些是Java Web开发中常用的技术,它们分别负责视图层、控制层和数据访问层的...
"01_ibatis教程_准备ibatis环境.zip" 这个标题表明这是一个关于Ibatis的初级教程,主要聚焦在如何配置和准备Ibatis开发环境。Ibatis是一个优秀的、开源的Java持久层框架,它允许开发者将SQL语句直接写在配置文件中,...
6. **附录:iBATIS.NET快速入门**(第329页):为使用.NET平台的开发者提供了一个简短的iBATIS.NET入门指南。 通过以上内容可以看出,《iBATIS in Action》这本书是一本内容详实、覆盖范围广泛的iBATIS指南,适合从...
【标题】"ibatis小例子"揭示了一个关于iBatis框架的初级教程,它是一个用于Java应用程序的持久层框架,特别适用于那些希望将SQL映射到Java代码中的开发者。iBatis提供了一种灵活的方式,使得数据库交互变得更加简单...
介绍 ...与支付宝dalgen还有一个区别:支付宝dalgen只支持ibatis,而dalgenX可以在ibatis与mybatis之间自由切换生成.dalgenX解决dalgen中DDD模型开发中的失血模式下的失忆问题。 dalgenX中的sql为bati
【程序员从初级到高级知识汇集】是一本涵盖了程序员从入门到精通所需掌握的全面知识的资料集合。本书针对初级和高级程序员,旨在提供一个系统化的学习路径,帮助程序员提升技能,成为行业专家。 1. **Java知识** -...
iBatis是另一种流行的Java持久层框架,本书通过实战案例介绍了如何有效地使用iBatis进行数据库操作。 - **《精通Hibernate:Java对象持久化技术详解》** 星级:★★★★☆ 适合对象:初级,中级,高级 ...
3. 《iBatis 实践》:iBatis 必看参考书,in action 从未让人失望过。 4. 《精通 Hibernate:Java 对象持久化技术详解》:Hibernate 必备参考书,也是国人写的不错的书。 5. 《Struts 2.1 权威指南》:学习 Struts2 ...
* Struts2 表现层框架:入门配置、核心组件、标签库、国际化、数据校验、Sitemesh 集成转换器、拦截器、集成 Hibernate/iBATIS * Spring 业务层框架:入门配置、IoC 容器、MVC、标签库、国际化、数据校验、数据库...
1. **ORM框架**:Hibernate和iBATIS允许更高效地操作数据库,简化数据访问。 2. **MVC框架**:学习Struts1和Struts2,理解MVC设计模式,提高Web应用的结构清晰度。 **进阶阶段**,向着高级软件工程师迈进: 1. **...
- **iBATIS框架**:学习另一种流行的ORM框架iBATIS。 #### 七、Java高级软件工程师 - **开源技术和框架**:了解各种开源框架和技术,如工作流引擎、规则引擎等。 - **分布式开发技术**:学习Java中的分布式技术,如...
Java 技术体系图涵盖了从基础到高级的全方位Java知识,适合程序员从入门到精通的学习路径。以下是对这个体系图中关键知识点的详细解释: 1. **Java 开发环境**: - **JDK**:Java Development Kit,是开发Java应用...