一个简单的iBatis入门例子,用ORACLE和Java测试

目录结构:

1.导入iBatis和oracle驱动。

2.创建类Person.java

package com.ibeats;
import java.util.Date;

public class Person {
 private int id;
 private String firstName;
 private String lastName;
 private double weightInKilograms;
 private double heightInMeters;
 public int getId() {
  return id;
 }
 public void setId(int id) {
  this.id = id;
 }
 public String getFirstName() {
  return firstName;
 }
 public void setFirstName(String firstName) {
  this.firstName = firstName;
 }
 public String getLastName() {
  return lastName;
 }
 public void setLastName(String lastName) {
  this.lastName = lastName;
 }
 public double getWeightInKilograms() {
  return weightInKilograms;
 }
 public void setWeightInKilograms(double weightInKilograms) {
  this.weightInKilograms = weightInKilograms;
 }
 public double getHeightInMeters() {
  return heightInMeters;
 }
 public void setHeightInMeters(double heightInMeters) {
  this.heightInMeters = heightInMeters;
 }
 }

3.配置文件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>
    <properties resource="com/ibeats/db.properties" />   
 <settings
  cacheModelsEnabled="true"
  enhancementEnabled="true"
  lazyLoadingEnabled="true"
  maxRequests="32"
  maxSessions="10"
  maxTransactions="5"
  useStatementNamespaces="false"
 />
 
 <transactionManager type="JDBC" >
  <dataSource type="SIMPLE">
   <property name="JDBC.Driver" value="${driver}"/>
   <property name="JDBC.ConnectionURL" value="${url}"/>
   <property name="JDBC.Username" value="${user}"/>
   <property name="JDBC.Password" value="${password}"/>
  </dataSource>
 </transactionManager>

<sqlMap resource="com/ibeats/Person.xml" />
</sqlMapConfig>

(文件元素说明:
resource:属性列表配置文件,以便用于数据库连接参数设置。
settings:
 cacheModelsEnabled:数据高速缓存,提高程序性能,利用LRU(最近最久未使用)方法对使用过的数据保存在内存中。默认true
 enhancementEnabled:指定是否用cglib中那些已优化的类来提高延迟加载的性能。默认ture
 lazyLoadingEnabled:延迟加载,除非绝对需要,否则推迟加载的技术。默认true
 maxRequests(已废弃):一次最多有多少个请求,默认为512
 maxSessions(已废弃):任何时候只允许会话数,默认128
 maxTransactions(已废弃):事务最大数目,默认32
 useStatementNamespaces:在引用已映射语句时,是否需要使用限定名。默认false
transactionManager:处理所有的数据库事务。
        dataSoutce:数据源工厂
        property:配置项
sqlMap:配置SQLMAP文件
typeAlias:定义别名)

4.配置文件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">
 <!-- Use primitive wrapper type (e.g. Integer) as parameter and allow results to
 be auto-mapped results to Person object (Java Bean) properties -->
 <select id="getPerson" parameterClass="int" resultClass="com.ibeats.Person">
  SELECT PER_ID as id,
  PER_FIRST_NAME as firstName,
  PER_LAST_NAME as lastName,
  PER_WEIGHT_KG as weightInKilograms,
  PER_HEIGHT_M as heightInMeters
  FROM PERSON
  WHERE PER_ID = #id#
 </select>

</sqlMap>

(文件元素说明:
parameterClass:传入参数
resultClass:传出参数
)

5.数据库配置文件db.properties
driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@127.0.0.1:1521:ORACLEXC
user=scott
password=tiger

6.测试类SqlMapClient.java
package com.ibeats;
import com.ibatis.sqlmap.client.*;
import com.ibatis.common.resources.*;
import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.List;

public class SqlMapClient {
public static void main(String args[]) {

try {
  com.ibatis.sqlmap.client.SqlMapClient sqlMap = null;
  String resource = "com/ibeats/SQLMapConfig.xml";
  Reader reader = Resources.getResourceAsReader (resource);
  sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
  Person person =(Person)sqlMap.queryForObject("getPerson",new Integer(1));
                System.out.println(person.getFirstName());  //打印
 } catch (IOException e) {
  e.printStackTrace();
 } catch (SQLException e1){
  e1.printStackTrace();
 }
}
}

(说明:
queryForObject():获取一条记录。
queryForList():返回一行或多行,可用参数返回固定几行,可用分页。
)

大家只要改下数据库代码就可以在自己机器上运行了!

一个简单的iBatis入门例子的更多相关文章

  1. [转]一个简单的Linux多线程例子 带你洞悉互斥量 信号量 条件变量编程

    一个简单的Linux多线程例子 带你洞悉互斥量 信号量 条件变量编程 希望此文能给初学多线程编程的朋友带来帮助,也希望牛人多多指出错误. 另外感谢以下链接的作者给予,给我的学习带来了很大帮助 http ...

  2. 2.1 一个简单的Web工程例子

    一个简单的Web工程例子 开发环境: Eclipse: Neon Release (4.6.0) JDK:1.8.0_92 Tomcat:8.5.9 Maven:3.3.9 1. 在Eclipse中创 ...

  3. 在eclipse中配置一个简单的spring入门项目

    spring是一个很优秀的基于Java的轻量级开源框架,为了解决企业级应用的复杂性而创建的,spring不仅可用于服务器端开发,从简单性.可测试性和松耦合性的角度,任何java应用程序都可以利用这个思 ...

  4. 一个简单的web服务器例子

    一个简单的web容器小例子,功能十分简单,只能访问静态资源,对于新手来说还是有一定的意义.主要分三个类 1.server类:主要功能开启socketServer,阻塞server,接收socket访问 ...

  5. iBatis第二章:搭建一个简单的iBatis开发环境

    使用 iBatis 框架开发的基本步骤如下:1.新建项目(iBatis是持久层框架,可以运用到java工程或者web工程都可以) 这里我们建立一个 web 工程测试. 2.导入相应的框架 jar 包 ...

  6. 一个简单的SpringBoot入门程序

    1. 使用IDEA构建Maven项目 <?xml version="1.0" encoding="UTF-8"?> <project xmln ...

  7. Matlab高级教程_第二篇:一个简单的混编例子

    1. 常用的混编是MATLAB和VS两个编辑器之间的混编方式. 2. 因为MATLAB的核是C型语言,因此常见的混编方式是MATLAB和C型语言的混编. 3. 这里介绍一个简单的MATLAB语言混编成 ...

  8. 一个简单的Spring AOP例子

    转载自: http://www.blogjava.net/javadragon/archive/2006/12/03/85115.html 经过这段日子的学习和使用Spring,慢慢地体会到Sprin ...

  9. ibaits的一个简单的完整的例子

    ibaits的简单介绍: iBatis 是apache 的一个开源项目,一个O/R Mapping(对象/关系映射) 解决方案,iBatis 最大的特点就是小巧,上手很快.如果不需要太多复杂的功能,i ...

随机推荐

  1. bndtools教程

    使用工具编程的确能给人们带来很多便利,但是在不会用之前,且缺乏相应的中文资料让你去了解时,真是一种折磨,同时也是一种挑战. bndTools其实就是用来开发OSGi的一个工具,它为开发提供了便利,具体 ...

  2. JDBC 学习笔记(三)—— 数据源(数据库连接池):DBCP数据源、C3P0 数据源以及自定义数据源技术

    本文目录:        1.应用程序直接获取连接的缺点(图解)        2.使用数据库连接池优化程序性能(图解)        3.可扩展增强某个类方法的功能的三种方式        4.自定 ...

  3. WPF 多线程处理(5)

    WPF 多线程处理(1) WPF 多线程处理(2) WPF 多线程处理(3) WPF 多线程处理(4) WPF 多线程处理(5) WPF 多线程处理(6) 项目的目录: 以下是FileStroage的 ...

  4. Getting Started with Java

    “学前”说明:<Learn Java for Android>这本书内容很多,都是精华,建议大家看英文版的.在这里我不打算一一总结书中的内容,书中每章节后面的exercises都很好,非常 ...

  5. 数据库SQLiteDatabase

    package com.baclock.entity; import android.provider.BaseColumns; /** * Created by Jack on 5/4/2016. ...

  6. map中的erase成员函数用法

    转载于 http://www.cnblogs.com/graphics/archive/2010/07/05/1771110.html  http://hi.baidu.com/sdkinger/it ...

  7. OD鲜为人知的小技巧--搜索通配符(关键字)

    我看过一些OD教程,关于通配符这一点很少有人讲解(大概是我看的教程少吧)  近日通过看<黑客反汇编揭秘(第二版)>第165页了解到,原来OD还有这样方便的功能,那就是搜索通配符: Olly ...

  8. C/C++ 快速排序 quickSort

    下面的动画展示了快速排序算法的工作原理. 快速排序图示:可以图中在每次的比较选取的key元素为序列最后的元素. #include <stdio.h> #include <stdlib ...

  9. 01-08-01【Nhibernate (版本3.3.1.4000) 出入江湖】NHibernate中的一级缓存

    缓存的范围? 1.事务范围 事务范围的缓存只能被当前事务访问,每个事务都有各自的缓存,缓存内的数据通常采用相互关联的对象形式.缓存的生命周期依赖于事务的生命周期,只有当事务结束时,缓存的生命周期才会结 ...

  10. java reflect 例子

    public static void main(String[] args) { Student stu1 = new Student(); stu1.setId(1); stu1.setName(& ...