`
hulin
  • 浏览: 61725 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

ibatis快速操作Oracle数据库

    博客分类:
  • java
阅读更多
1. 首先导入ibatis的jar包(ibatis-2.3.0.677.jar,ibatis-dao-2.jar)和oracle连接驱动的jar包(classes12.jar)
2. 新建oracle实例oral,用户root,密码root,表visitlog
          --访问日志表--
     CREATE TABLE VisitLog (
     IndexId NUMBER(10) NOT NULL,
     OperateCode VARCHAR2(4) NOT NULL,
     TableName VARCHAR2(10),
     OperatorDesp VARCHAR2(100) NOT NULL,
     OperatorAccount VARCHAR2(20),
     OperatorTime DATE,
     UserIp VARCHAR2(20) NOT NULL
     )NOLOGGING;
    ALTER TABLE VisitLog ADD CONSTRAINT PK_VisitLog_IndexId PRIMARY KEY (IndexId);
  
3   在d:目录下新建连接数据库的连接文件database.properties
     ####################################
     # Database Connectivity Properties
     ####################################

     driver=oracle.jdbc.driver.OracleDriver
     url=jdbc:oracle:thin:@localhost:1521:oral
     username=root
     password=root
     MaximumActiveConnections=20
     MaximumIdleConnections=5
     MaximumWait=60000
     MaximumCheckoutTime=12000000
     TimeToWait=5000
     PingEnabled=false
     PingConnectionsOlderThan=30000
     PingConnectionsNotUsedFor=60000

4   新建webprobject项目ibatistest,新建包com.test
    新建读取加载驱动类BatisManager.class
    package com.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.Reader;
import java.util.Properties;
import com.ibatis.common.resources.Resources;
import com.ibatis.dao.client.DaoManager;
import com.ibatis.dao.client.DaoManagerBuilder;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;

public class BatisManager {
private static final String DAO_RESOURCE = "sqlmap/dao.xml";
private static final String SQL_RESOURCE = "sqlmap/sql-map-config.xml";
private static DaoManager daoManager;
private static SqlMapClient sqlMap;
private static String db_conf_path = null;
static {
}

public static DaoManager getDaomanager() {
return daoManager;
}

public static SqlMapClient getSqlMapInstance() {
return sqlMap;
}

public static Object getDaoObject(Class cls) {
return daoManager.getDao(cls);
}

public static Properties getDataBaseProp(String path) throws Exception {
Properties prop = null;
InputStream in = null;
try {
File f = new File(path);
in = new FileInputStream(f);
if (f.isFile())
prop = new Properties();
prop.load(in);
in.close();
} catch (Exception ex) {
System.out.println("The DataBase Config File Is Null Or False");
throw new Exception(
"Dont Read Correctly DataBase Config File,Please Check The File Path Or Content");
} finally {
in = null;
}
return prop;
}

public static void init(String db_conf_path) {
BatisManager.setDb_conf_path(db_conf_path);
try {
System.out.println("INFO: Starting To Load Dao Config File "
+ DAO_RESOURCE);

Reader reader = Resources.getResourceAsReader(DAO_RESOURCE);
Properties prop = null;
if (db_conf_path != null) {
prop = getDataBaseProp(db_conf_path);
daoManager = DaoManagerBuilder.buildDaoManager(reader, prop);
} else {
daoManager = DaoManagerBuilder.buildDaoManager(reader);
}
System.out.println("INFO: Load Dao Config File Success ");
System.out.println("INFO: Starting To Load Sql-Map Config File "
+ SQL_RESOURCE);
reader = Resources.getResourceAsReader(SQL_RESOURCE);
if (db_conf_path != null) {
prop = getDataBaseProp(db_conf_path);
sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader, prop);
} else {
sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
}
System.out.println("INFO: Load Sql-Map Config File Success ");
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(
"Could not initialize DaoConfig.  Cause: " + e);
}
}


public static String getDb_conf_path() {
return db_conf_path;
}

public static void setDb_conf_path(String db_conf_path) {
BatisManager.db_conf_path = db_conf_path;
}
}
5   新建ibatis类BaseSqlMapDao.class加载模板
        package com.test;

import java.sql.Connection;
import com.ibatis.dao.client.DaoManager;
import com.ibatis.dao.client.template.SqlMapDaoTemplate;

public class BaseSqlMapDao extends SqlMapDaoTemplate {

protected static final int PAGE_SIZE = 4;

public BaseSqlMapDao(DaoManager daoManager) {
super(daoManager); //在Java中,this通常指当前对象,super则指父类的
}

public void setConnection(Connection conn) {
try {
this.getSqlMapTransactionManager().setUserConnection(conn);
} catch (Exception ex) {
System.out.println("BaseSqlMapDao.class Set connection error");
}
}
}
6  创建visitlog的VO类VisitLogVO
package com.test;

   public class VisitLogVO  {
private int INDEXID;

private String OPERATECODE;

private String TABLENAME;

public int getINDEXID() {
return INDEXID;
}

public void setINDEXID(int indexid) {
INDEXID = indexid;
}

public String getOPERATECODE() {
return OPERATECODE;
}

public void setOPERATECODE(String operatecode) {
OPERATECODE = operatecode;
}

public String getTABLENAME() {
return TABLENAME;
}

public void setTABLENAME(String tablename) {
TABLENAME = tablename;
}

}
7   新建DAO接口IIbatisDao
        package com.test;

import java.util.List;

public interface IIbatisDao {
   public List list(VisitLogVO vo);
}
8   Dao实现类IbatisDaoImpl.class
package com.test;

import java.util.List;
import com.ibatis.dao.client.DaoManager;

public class IbatisDaoImpl extends BaseSqlMapDao implements IIbatisDao {

public IbatisDaoImpl(DaoManager daoManager) {
super(daoManager);
}
private final static String SELECTINFO = "selectinfo";

public List list(VisitLogVO vo) {
List list=this.queryForList(SELECTINFO);
return list;
}

private static IIbatisDao _instance = null;

public synchronized static IIbatisDao instance() {
if (_instance == null) {
DaoManager daoManager = BatisManager.getDaomanager();
_instance = (IIbatisDao) daoManager.getDao(IIbatisDao.class);
}
return _instance;
}

public static void main(String[] args)
{
BatisManager.init("D:/database.properties");
IIbatisDao batis=(IIbatisDao)BatisManager.getDaoObject(IIbatisDao.class);
VisitLogVO vo=new VisitLogVO();
List<VisitLogVO> list=(List<VisitLogVO>)batis.list(vo);
System.out.println(list.size());

}
}
注:这里还不能测试,因为没有加裁查询和加载驱动的xml文件,最后再测!!!
9   在src目录下新sqlmap文件夹,src/sqlmap下新建src/sqlmap/dao.xml
    <?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE daoConfig SYSTEM "http://www.ibatis.com/dtd/dao-2.dtd">
<daoConfig>
<context>
<transactionManager type="SQLMAP">
<property name="SqlMapConfigResource"
value="sqlmap/sql-map-config.xml" />
</transactionManager>
<dao interface="com.test.IIbatisDao" implementation="com.test.IbatisDaoImpl" />
</context>
</daoConfig>
10  在src/sqlmap下新建src/sqlmap/sql-map-config.xml
<?xml version="1.0" encoding="gb2312" standalone="no"?>
<!DOCTYPE sqlMapConfig SYSTEM "http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<settings cacheModelsEnabled="true" enhancementEnabled="true" maxSessions="228" maxTransactions="128" maxRequests="1000"/>
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property value="${driver}" name="JDBC.Driver"/>
<property value="${url}" name="JDBC.ConnectionURL"/>
<property value="${username}" name="JDBC.Username"/>
<property value="${password}" name="JDBC.Password"/>
<property name="JDBC.DefaultAutoCommit" value="true"/>
<property value="${MaximumActiveConnections}" name="Pool.MaximumActiveConnections"/>
<property value="${MaximumIdleConnections}" name="Pool.MaximumIdleConnections"/>
<property value="${MaximumWait}" name="Pool.MaximumWait"/>
<property name="Pool.MaximumCheckoutTime" value="${MaximumCheckoutTime}"/>
<property name="Pool.TimeToWait" value="${TimeToWait}"/>
<property name="Pool.PingQuery" value="select 1 as ISPINGWORKING from dual"/>
<property name="Pool.PingEnabled" value="${PingEnabled}"/>
<property name="Pool.PingConnectionsOlderThan" value="${PingConnectionsOlderThan}"/>
<property name="Pool.PingConnectionsNotUsedFor" value="${PingConnectionsNotUsedFor}"/>
</dataSource>
</transactionManager>

<sqlMap resource="sqlmap/sql/test.xml"/>
</sqlMapConfig>
11   在sqlmap下新文件夹sql,src/sqlmap/sql,建立test.xml
     <?xml version="1.0" encoding="gb2312" standalone="no"?>
<!DOCTYPE sqlMap SYSTEM "http://www.ibatis.com/dtd/sql-map-2.dtd">

<sqlMap namespace="visitlog">
<typeAlias alias="visitlog"
type="com.test.VisitLogVO" />

<select id="selectinfo" parameterClass="visitlog"
resultClass="visitlog">
<![CDATA[
  SELECT INDEXID,OPERATECODE,TABLENAME FROM VISITLOG
]]>
</select>
</sqlMap>

完工了,可以回到IbatisDaoImpl.class里测试下了
作者:linres QQ:386000628
2
1
分享到:
评论

相关推荐

    Ibatis.net+ oracle 简单事例

    "IbatisTet" 可能是一个示例项目,展示了如何在VS2008中使用Ibatis.net 操作Oracle 数据库。该项目可能包含了必要的配置文件(如ibatis.config)、Mapper XML文件以及对应的.NET类,演示了CRUD(创建、读取、更新、...

    ibatis3应用实例(oracle数据库)

    本篇将深入探讨Ibatis3在Oracle数据库环境下的具体应用实例,涵盖CRUD(创建、读取、更新、删除)操作以及动态SQL的使用。 一、Ibatis3简介 Ibatis3是MyBatis的前身,它放弃了Hibernate的全对象关系映射,转而采用...

    Ibatis+Oracle(含对应数据库sql) 源码

    在实践中,你可以期待找到如何创建Oracle数据库表的SQL脚本,如何配置Ibatis以连接Oracle,如何编写和执行SQL语句,以及如何在Java代码中调用这些操作的示例。 总的来说,这个资源将帮助学习者理解以下几个关键知识...

    操作数据库 iBATIS查询

    ### 操作数据库iBATIS查询详解 #### 一、iBATIS中的LIKE查询技巧 iBATIS是一款优秀的Java持久层框架,它简化了基于SQL的程序编写,避免了程序员手动处理结果集和手工编写SQL语句。在进行数据库查询时,LIKE查询是...

    struts2+spring+ibatis+oracle+分页搜索+上传附件实例

    在这个实例中,iBatis作为数据访问层,负责与Oracle数据库交互,执行分页查询和插入、更新、删除操作。它通过XML或注解方式定义SQL语句,使得数据库操作更加直观和灵活。 4. **Oracle**:Oracle数据库是企业级的...

    ibatis+oracle实例

    Oracle数据库系统提供了丰富的特性和功能,包括ACID事务、多版本并发控制、分区、存储过程、触发器等。Oracle支持SQL标准,同时提供了一些扩展语法,如PL/SQL,这是一种内嵌在SQL中的编程语言,用于编写存储过程和...

    ibatis连接oracle所需的jar包

    当使用Ibatis进行Oracle数据库的连接时,需要依赖特定的jar包来实现两者之间的交互。下面我们将详细探讨这些关键的jar包以及它们在Ibatis与Oracle连接中的作用。 1. **ibatis-2.3.3.jar**: 这是Ibatis框架的核心库...

    IBatis.net 配置各种数据库

    IBatis.net,作为一个轻量级的持久层框架,为开发者提供了灵活的数据映射功能,使得数据库操作变得更为简单。本文将详细介绍如何在IBatis.net中配置和使用各种数据库。 首先,理解IBatis.net的核心概念。IBatis 是...

    iBATIS操作Oracle CLOB数据

    Oracle数据库是一个功能强大的关系型数据库管理系统,广泛应用于企业级应用。在处理大数据类型时,如CLOB(Character Large Object),Oracle提供了高效且灵活的方法。iBATIS,作为一个轻量级的持久层框架,也支持对...

    webwork+ibatis+spring oracle c3p0 集成框架

    总结:这个集成框架结合了WebWork的轻量级MVC、iBatis的灵活数据库操作、Spring的全面企业级服务以及C3P0的数据库连接池,为Java开发提供了强大的工具集合,能够构建出高效、稳定且易于维护的企业应用。通过深入理解...

    ibatis调用oracle存储过程

    本文将深入解析ibatis如何与Oracle数据库中的存储过程进行交互,通过具体示例详解配置与实现步骤。 ### ibatis简介 ibatis,现称为MyBatis,是一个支持普通SQL查询、存储过程以及高级映射的优秀持久层框架。它消除...

    ibatis学习总结,oracle , 敏捷开发,

    综合这三个主题,当你在处理大数据量时,Ibatis可以提供高效的数据库操作,Oracle数据库提供强大的数据存储和处理能力,而敏捷开发方法则帮助团队在快速变化的环境中有效地管理项目。在实际开发中,结合使用这些技术...

    Ibatis连接数据库的小例子

    在这个小例子中,我们已经成功地用Ibatis连接上了ORACLE数据库,并执行了一个简单的查询操作。Ibatis允许我们灵活地编写SQL,同时提供了事务管理和结果映射等功能,使得数据库操作更加便捷和高效。 注意,为了运行...

    ibatis oracle clob

    标题 "ibatis oracle clob" 涉及到的是在Java开发中,使用iBATIS框架与Oracle数据库交互时处理CLOB(Character Large Object)类型数据的问题。CLOB是Oracle数据库用于存储大文本数据(如XML文档、长篇文章等)的...

    spring+ibatis+oracle分页缓存源码

    总的来说,"spring+ibatis+oracle分页缓存源码"项目展示了如何在Spring管理的环境中,利用iBatis和Oracle数据库实现高效的数据分页和缓存策略。通过理解和实践这些技术,开发者可以构建出更加健壮、响应快速的Web...

    jar框架包2 ibatis spring oracle mysql

    在Java应用中,通常使用JDBC(Java Database Connectivity)来连接和操作Oracle数据库。 MySQL则是一种流行的关系型数据库管理系统,以开源、轻量级和高性能著称。MySQL适合处理大量数据,且具有良好的社区支持和...

    Spring MVC+ibatis+oracle框架整合

    本项目整合了Spring MVC、iBatis和Oracle数据库,这三个组件都是企业级应用开发中的重要工具。接下来,我们将深入探讨这三个技术以及它们如何协同工作。 **Spring MVC框架** Spring MVC是Spring框架的一部分,是一...

    ibatis下oracle树查询

    在本话题中,我们将探讨如何在使用iBatis框架与Oracle数据库时实现树形查询。 首先,iBatis是一个优秀的持久层框架,它允许开发者将SQL语句直接写在XML配置文件或者注解中,提供了比传统JDBC更高级的抽象层,使得...

    struts2包+ibatis组合+oracle

    业务服务层可能使用iBatis进行数据库操作,通过SQL语句与Oracle数据库交互,实现数据的增删改查;而Oracle数据库则负责存储和管理应用所需的数据。 **组合应用的优势:** 1. **分层架构**:Struts2处理视图和控制,...

Global site tag (gtag.js) - Google Analytics