- 浏览: 221629 次
- 性别:
- 来自: 大连
最新评论
-
曾老师:
怎么调用呢 传递的参数是什么格式?
通过一个实际的例子学习Oracle存储过程 -
QQ371496669:
Thank You !有点瑕疵:--参数IN表示输入参数,OU ...
通过一个实际的例子学习Oracle存储过程 -
cheeruplc:
...
为学日益 为道日损 -
cheeruplc:
这里有个问题请教一下,帮我解答一下啊,先谢谢了哈, 我使用 ...
Ajax的思考 -
yanyuening:
不错,学习了
通过一个实际的例子学习Oracle存储过程
java 代码
- package com.viwo.sqlmap.config;
- import java.sql.Connection;
- import java.sql.ResultSet;
- import java.sql.ResultSetMetaData;
- import java.sql.SQLException;
- import java.sql.Statement;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import org.apache.commons.beanutils.BeanUtils;
- import org.apache.commons.digester.Digester;
- import org.apache.log4j.Logger;
- import com.viwo.sqlmap.factory.ConnectionFactory;
- /**
- * DAO using this class, don't need write jdbc operations.
- *
- * @author viwo
- *
- */
- public class SqlMapConfig
- {
- private final static Logger logger = Logger.getLogger(SqlMapConfig.class);
- private Map selectMap = new HashMap();
- private Map executeMap = new HashMap();
- private static Map configMap = new HashMap();
- private Connection connection = null;
- private Statement statement = null;
- /**
- * get a List object from database
- *
- * fit for this sql: select username,password from users
- *
- * the " name, password " and its values are packed in an object list of return
- * list.
- *
- * @param selectId
- * @param paramObject
- * @return List
- * @throws Exception
- */
- public List QueryForList(String selectId,Object paramObject) throws Exception
- {
- logger.debug("[viwo]-->[enter QueryForList]");
- List list = new ArrayList();
- try
- {
- ConfigSelect configSelect =(ConfigSelect)selectMap.get(selectId);
- if(configSelect!=null)
- {
- String sql = configSelect.getSql();
- String type = configSelect.getType();
- String param = configSelect.getParam();
- if(paramObject.getClass() != Class.forName(param))
- {
- return null;
- }
- String[] sqls = sql.split("#");
- if(sqls.length>1)
- {
- for(int i=0;i {
- if(i%2!=0)
- {
- String tmpValue = BeanUtils.getProperty(paramObject, sqls[i]);
- sql = sql.replaceFirst("#"+sqls[i]+"#", "'"+tmpValue+"'");
- }
- }
- }
- logger.debug("[viwo]-->[QueryForList]-->[sql:]"+sql);
- //PreparedStatement ps = connection.prepareStatement(sql);
- ResultSet rs = statement.executeQuery(sql);
- ResultSetMetaData meta = rs.getMetaData();
- int columnCount = meta.getColumnCount();
- while(rs.next())
- {
- Object newItem = Class.forName(type).newInstance();
- for(int i=1;i<=columnCount;i++)
- {
- Object rsItem = null;
- String columnType = meta.getColumnTypeName(i);
- if(columnType.equals("numeric"))
- rsItem = new Double(rs.getDouble(meta.getColumnName(i)));
- else if(columnType.equals("int"))
- rsItem = new Integer(rs.getInt(meta.getColumnName(i)));
- else
- rsItem = rs.getString(meta.getColumnName(i));
- BeanUtils.setProperty(newItem, meta.getColumnName(i), rsItem);
- }
- list.add(newItem);
- }
- }
- }
- catch (Exception e)
- {
- logger.error("[viwo]-->[QueryForList]-->"+e.getMessage());
- throw new Exception(e);
- }
- return list;
- }
- /**
- * get an object from database
- *
- * fit for this sql: select username,password from users where username=#username#
- *
- * the " name, password " and its values are packed in an object of return
- * object.
- *
- * @param selectId
- * @param paramObject
- * @return Object
- * @throws Exception
- */
- public Object QueryForObject(String selectId,Object paramObject) throws Exception
- {
- logger.debug("[viwo]-->[enter QueryForObject]");
- try
- {
- ConfigSelect configSelect =(ConfigSelect)selectMap.get(selectId);
- if(configSelect!=null)
- {
- String sql = configSelect.getSql();
- String type = configSelect.getType();
- String param = configSelect.getParam();
- if(paramObject.getClass() != Class.forName(param))
- {
- return null;
- }
- String[] sqls = sql.split("#");
- if(sqls.length>1)
- {
- for(int i=0;i {
- if(i%2!=0)
- {
- String tmpValue = BeanUtils.getProperty(paramObject, sqls[i]);
- sql = sql.replaceFirst("#"+sqls[i]+"#", "'"+tmpValue+"'");
- }
- }
- }
- logger.debug("[viwo]-->[QueryForObject]-->[sql:]"+sql);
- //PreparedStatement ps = connection.prepareStatement(sql);
- ResultSet rs = statement.executeQuery(sql);
- ResultSetMetaData meta = rs.getMetaData();
- int columnCount = meta.getColumnCount();
- if(rs.next())
- {
- Object newItem = Class.forName(type).newInstance();
- for(int i=1;i<=columnCount;i++)
- {
- Object rsItem = null;
- String columnType = meta.getColumnTypeName(i);
- if(columnType.equals("numeric"))
- rsItem = new Double(rs.getDouble(meta.getColumnName(i)));
- else if(columnType.equals("int"))
- rsItem = new Integer(rs.getInt(meta.getColumnName(i)));
- else
- rsItem = rs.getString(meta.getColumnName(i));
- BeanUtils.setProperty(newItem, meta.getColumnName(i), rsItem);
- }
- return newItem;
- }
- }
- }
- catch (Exception e)
- {
- logger.error("[viwo]-->[QueryForObject]-->"+e.getMessage());
- throw new Exception(e);
- }
- //如果没有查出结果或者selectId非法则返回null。
- return null;
- }
- /**
- * execute a statement from sqlmap-config.xml by executeId
- *
- * fit for this sql: insert into users values(#username#,#password#)
- *
- * the " #name#, #password# " will be set value by paramObject
- *
- * @param selectId
- * @param paramObject
- * @return int
- * @throws Exception
- */
- public int executeStatement(String executeId,Object paramObject) throws Exception
- {
- logger.debug("[viwo]-->[enter executeStatement]");
- try
- {
- ConfigExecute configExecute =(ConfigExecute)executeMap.get(executeId);
- if(configExecute!=null)
- {
- String sql = configExecute.getSql();
- String param = configExecute.getParam();
- if(paramObject.getClass() != Class.forName(param))
- {
- return -1;
- }
- String[] sqls = sql.split("#");
- if(sqls.length>1)
- {
- for(int i=0;i {
- if(i%2!=0)
- {
- String tmpValue = BeanUtils.getProperty(paramObject, sqls[i]);
- sql = sql.replaceFirst("#"+sqls[i]+"#", "'"+tmpValue+"'");
- }
- }
- }
- logger.debug("[viwo]-->[executeStatement]-->[sql:]"+sql);
- //PreparedStatement ps = connection.prepareStatement(sql);
- return statement.executeUpdate(sql);
- }
- }
- catch (Exception e)
- {
- e.printStackTrace();
- logger.error("[viwo]-->[executeStatement]-->"+e.getMessage());
- //throw new Exception(e);
- }
- return -1;
- }
- public void addSelect(ConfigSelect configSelect)
- {
- selectMap.put(configSelect.getId(), configSelect);
- }
- public void addExecute(ConfigExecute configExecute)
- {
- executeMap.put(configExecute.getId(), configExecute);
- }
- public Map getSelectMap() {
- return selectMap;
- }
- /**
- * a static synchronized method to get the SqlMapConfig from a gived path
- *
- * this method will initialize the properity connection
- *
- * @param path
- * @return SqlMapConfig
- * @throws Exception
- */
- public static synchronized SqlMapConfig getInstance(String path) throws Exception
- {
- logger.info("[viwo]-->[enter getInstance]-->[path:]"+path);
- SqlMapConfig sqlMapConfig = null;
- if(configMap.get(path)!=null)
- {
- sqlMapConfig = (SqlMapConfig)configMap.get(path);
- }
- else
- {
- Digester digester = new Digester();
- digester.setValidating(false);
- digester.addObjectCreate("sqlmap-config", "com.viwo.sqlmap.config.SqlMapConfig");
- digester.addObjectCreate("sqlmap-config/select", "com.viwo.sqlmap.config.ConfigSelect");
- digester.addSetProperties("sqlmap-config/select");
- digester.addCallMethod("sqlmap-config/select/sql", "setSql", 0);
- digester.addSetNext("sqlmap-config/select", "addSelect", "com.viwo.sqlmap.config.ConfigSelect");
- digester.addObjectCreate("sqlmap-config/execute", "com.viwo.sqlmap.config.ConfigExecute");
- digester.addSetProperties("sqlmap-config/execute");
- digester.addCallMethod("sqlmap-config/execute/sql", "setSql", 0);
- digester.addSetNext("sqlmap-config/execute", "addExecute", "com.viwo.sqlmap.config.ConfigExecute");
- try
- {
- sqlMapConfig = (SqlMapConfig)digester.parse(Thread.currentThread().getContextClassLoader().getResource("/"+path).getFile());
- configMap.put(path, sqlMapConfig);
- }
- catch (Exception e)
- {
- logger.error("[viwo]-->[getInstance]-->"+e.getMessage());
- throw new Exception(e);
- }
- }
- sqlMapConfig.connection = ConnectionFactory.getConnection();
- sqlMapConfig.statement = sqlMapConfig.connection.createStatement();
- return sqlMapConfig;
- }
- /**
- * begin transaction
- * @throws Exception
- */
- public void beginTransaction() throws Exception
- {
- try
- {
- this.connection.setAutoCommit(false);
- }
- catch (SQLException e)
- {
- logger.error("[viwo]-->[beginTransaction]--beginTransaction error");
- throw new Exception(e);
- }
- }
- /**
- * commit transaction
- * @throws Exception
- */
- public void commitTransaction() throws Exception
- {
- try
- {
- this.connection.commit();
- }
- catch (SQLException e)
- {
- logger.error("[viwo]-->[commitTransaction]--commitTransaction error");
- throw new Exception(e);
- }
- }
- /**
- * rollback transaction
- * @throws Exception
- */
- public void rollbackTransaction() throws Exception
- {
- try
- {
- this.connection.rollback();
- }
- catch (SQLException e)
- {
- logger.error("[viwo]-->[rollbackTransaction]--rollbackTransaction error");
- throw new Exception(e);
- }
- }
- /**
- * close the property of connection
- */
- public void closeConnection()
- {
- if(statement!=null)
- {
- try {
- statement.close();
- }
- catch (SQLException e)
- {
- }
- }
- if(connection!=null)
- {
- try {
- connection.close();
- }
- catch (SQLException e)
- {
- }
- }
- }
- }
发表评论
-
用JavaDBF操作(读、写)DBF文件
2007-07-27 11:17 10804用JavaDBF操作(读、写)DBF文件<o:p> ... -
原创Full-Stack框架VIWO开源首发(附源码、示例、教程)
2007-07-10 11:57 10482有人说不要重新发明轮子,我说你不能总用别人的轮子。也许VIWO ... -
对Java EE的十大不当使用导致的性能问题
2007-05-01 10:05 3009Vincent Partington近两个半月来在他的博客上陆 ... -
用Jakarta POI操作Excel文件
2007-03-28 14:03 12362Jakarta POI 是一套用于访 ... -
Java操作Excel之理解JXL--读取Excel模板动态写入数据并生成Excel
2007-03-21 12:55 27481上一篇文章 Java操作Excel之理解JXL--读取Exc ... -
Java操作Excel之理解JXL--读取Excel
2007-03-20 15:20 22905JXL(Java Excel API)是一个用来动态读写Ex ... -
IoC的简易实现
2007-03-08 15:10 2017java 代码 package c ... -
"Struts"的简易实现
2007-03-08 14:51 1945java 代码 package com.viwo ...
相关推荐
#### JavaBean简易教程 - **JavaBean**:JavaBean是一种Java类,遵循特定的设计模式,通常用于封装数据。在Ibatis中,JavaBean是与数据库表对应的实体类。 #### Resources和DataSource - **Resources**:Ibatis...
- **JavaBean 简易教程**:简要介绍 JavaBean 的概念和使用方法。 - **Resources (com.ibatis.common.resource.*)**:提供了资源加载工具类,方便加载配置文件等资源。 - **SimpleDataSource ...
- **JavaBean简易教程**:虽然文档未详述,但iBATIS中使用JavaBean作为数据传输对象是非常常见的实践。 #### 十二、其他资源 - **Resources(com.ibatis.common.resource.*)**:提供了资源管理相关的工具类。 - **...
**概念**:SQL Map 是 iBATIS 提供的一种用于简化数据库操作的技术,通过简单的 XML 配置文件来实现 JavaBean 与 SQL 语句之间的映射。这种映射方式使得开发者无需编写复杂的 JDBC 代码即可完成对数据库的操作。 **...
然后,我们需要配置Spring的事务管理器,这通常是一个`PlatformTransactionManager`的实现,如`DataSourceTransactionManager`,并设置数据源引用: ```xml ``` 接下来,配置Struts2的Spring插件,使Spring...
它采用Spring+iBatis框架,将业务逻辑与数据访问层进行了有效分离,实现了简洁而强大的功能。 首先,让我们深入了解Spring框架。Spring是Java领域中的一款开源应用框架,核心特性包括依赖注入(Dependency ...
- **二维码简易登录**:通过生成二维码简化用户登录流程,用户只需扫描二维码即可登录网页与机器人进行交互。 - **智能对话**:利用自然语言处理技术,使用户能够输入特定指令(如`!wx`)与机器人进行对话。 - **...
本文将深入探讨如何将这两个框架集成在一起,以创建一个简易上手的项目,并提供完整的代码示例。 首先,我们需要在项目中引入SpringBoot和MyBatis的相关依赖。在`pom.xml`文件中,我们需要添加SpringBoot的父依赖和...
jsp 是 servlet 技术的扩展,本质上是 servlet 的简易方式。jsp 更强调应用的外表表达,而 servlet 的应用逻辑是 Java 文件,用于控制逻辑。jsp 是 Java 和 HTML 组成的一个扩展名为 .jsp 的文件,侧重视图。 3. ...
Java与MySQL的结合,展示了如何利用Java的持久层框架(如JPA或iBatis)连接数据库,以及如何设计面向对象的模型来表示业务实体。 4. **毕业论文**: 论文部分提供了对这些管理系统的设计思路、实现技术和性能评估...
- **.NET**:能使用Visual Studio简易开发网页。 2. **Web开发**: - **JSP、Servlet、JDBC**:精通编程开发。 - **MVC设计模式**:深入理解。 - **SaaS软件结构**:深刻理解并有丰富经验。 - **搜索引擎框架*...
Strut1房屋出租系统是一个基于Java Web开发的简易应用程序,主要使用了Apache Struts1框架。Struts1是MVC(Model-View-Controller)设计模式的一种实现,它旨在简化Web应用的开发过程,提高代码的可维护性和可扩展性...
这个“Struts做的网上书店”项目可能是初学者为了实践Struts框架而创建的一个简易应用,旨在理解并掌握Struts的核心概念和工作流程。 在Struts框架中, MVC模式被用来分离应用程序的业务逻辑、视图展示和用户交互...
本教程将深入探讨如何整合这两个框架,创建一个简易的SpringBoot应用,以实现数据访问功能。 首先,我们需要在项目中引入相关的依赖。SpringBoot提供了starter来简化依赖管理,对于MyBatis,我们可以使用`spring-...