博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个简单的iBatis入门例子
阅读量:4031 次
发布时间:2019-05-24

本文共 3727 字,大约阅读时间需要 12 分钟。

一个简单的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"
 "">

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

<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():返回一行或多行,可用参数返回固定几行,可用分页。
)

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

转载地址:http://rcebi.baihongyu.com/

你可能感兴趣的文章
Vue-子组件改变父级组件的信息
查看>>
Python自动化之pytest常用插件
查看>>
Python自动化之pytest框架使用详解
查看>>
【正则表达式】以个人的理解帮助大家认识正则表达式
查看>>
性能调优之iostat命令详解
查看>>
性能调优之iftop命令详解
查看>>
非关系型数据库(nosql)介绍
查看>>
移动端自动化测试-Windows-Android-Appium环境搭建
查看>>
Xpath使用方法
查看>>
移动端自动化测试-Mac-IOS-Appium环境搭建
查看>>
Selenium之前世今生
查看>>
Selenium-WebDriverApi接口详解
查看>>
Selenium-ActionChains Api接口详解
查看>>
Selenium-Switch与SelectApi接口详解
查看>>
Selenium-Css Selector使用方法
查看>>
Linux常用统计命令之wc
查看>>
测试必会之 Linux 三剑客之 sed
查看>>
Socket请求XML客户端程序
查看>>
Java中数字转大写货币(支持到千亿)
查看>>
Java.nio
查看>>