`
iorit2003
  • 浏览: 142275 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

jdbc通用访问方法

    博客分类:
  • db
阅读更多
   1. //通过SQL反回对应的数据集 
   2. //比如:sql select nameSc,age from users 
   3. public List getResultDataList(String sql, Connection con) { 
   4.         List<Map> dataList = new ArrayList<Map>(); 
   5.         Map<String, String> map = new HashMap<String, String>();//存放对应字段数据 
   6.         PreparedStatement ps = null; 
   7.         ResultSet ds = null; 
   8.         ResultSetMetaData rsd; 
   9.         try { 
  10.             ps = con.prepareStatement(sql); 
  11.             ds = ps.executeQuery(); 
  12.             while (ds.next()) { 
  13.                 map = new HashMap<String, String>();//通过键值对存放一条记录的数据 
  14.                 rsd = ds.getMetaData(); 
  15.                 for (int i = 1; i <= rsd.getColumnCount(); i++) { 
  16.                     switch (rsd.getColumnType(i)) {//通过判断数据类型转换数据 
  17.                     case 12:// varchar(12) 
  18.                         map.put(rsd.getColumnName(i), ds.getString(i)); 
  19.                         break; 
  20.                     case 1:// char(1) 
  21.                         map.put(rsd.getColumnName(i), ds.getString(i)); 
  22.                         break; 
  23.                     case -7:// bit(-7) 
  24.                         map.put(rsd.getColumnName(i), Boolean.toString(ds 
  25.                                 .getBoolean(i))); 
  26.                         break; 
  27.                     case 4:// int(4) 
  28.                         map.put(rsd.getColumnName(i), Integer.toString(ds 
  29.                                 .getInt(i))); 
  30.                         break; 
  31.                     case 5:// smallint(5) 
  32.                         map.put(rsd.getColumnName(i), Integer.toString(ds 
  33.                                 .getInt(i))); 
  34.                         break;   
  35.                     case 93:// datetime(93) 
  36.                         if (ds.getString(i) == null) 
  37.                             map.put(rsd.getColumnName(i), ""); 
  38.                         else { 
  39.                             if (ds.getString(i).length() >= 19) { 
  40.                                 map.put(rsd.getColumnName(i), ds.getString(i) 
  41.                                         .substring(0, 19)); 
  42.                             } else { 
  43.                                 map.put(rsd.getColumnName(i), ds.getString(i) 
  44.                                         .substring(0, 10)); 
  45.                             } 
  46.                         } 
  47.                         break; 
  48.                     case 3:// decimal(3) 
  49.                         map.put(rsd.getColumnName(i), Double.toString(ds 
  50.                                 .getDouble(i))); 
  51.                         break; 
  52.                     default: 
  53.                         map.put(rsd.getColumnName(i), ds.getString(i)); 
  54.                         break; 
  55.                     } 
  56.                 } 
  57.                 dataList.add( map);//存放所有行数据 
  58.             } 
  59.         } catch (SQLException e) { 
  60.             e.printStackTrace(); 
  61.             throw new RuntimeException(e); 
  62.         } finally { 
  63.                         <span style="color: red;">connection是通过HibernateDaoSupport获取得到的,似乎能够自动回收(反回到连接池),是否真的不用关闭连接呢?</span> 
  64.             /*
  65.              * try{ if(ds!=null){ds.close();ds=null;}
  66.              * if(ps!=null){ps.close();ps=null;}
  67.              * if(con!=null){con.close();con=null;} }catch(SQLException e){}
  68.              */ 
  69.         } 
  70.         return dataList; 
  71.     } 















   1. //通过传递SQL,Sql的参数更新数据 
   2. //比如 sql insert into users(nameCs,age)valuse(?,?) 
   3. //params就是存放?代表的值 
   4. public int execUpdateByParams(String sql, Connection con, List params) { 
   5.         PreparedStatement ps = null; 
   6.         int message = 0; 
   7.         try { 
   8.             String paramsStr=""; 
   9.             ps = con.prepareStatement(sql); 
  10.             if (params != null) { 
  11.                 for (int i = 0; i < params.size(); i++) { 
  12.                     String p = params.get(i)==null?null:"" + params.get(i);//设置对应的参数 
  13.                     ps.setString(i + 1, p); 
  14.                 } 
  15.             } 
  16.             ps.executeUpdate(); 
  17.         } catch (SQLException e) { 
  18.             e.printStackTrace(); 
  19.             message = -1; 
  20.             throw new RuntimeException(e); 
  21.         } finally { 
  22.             try { 
  23.                 if (ps != null) { 
  24.                     <span style="color: red;">ps.close();</span>//怎么在这他有把这个关闭了呢?这会有问题吧? 
  25.                     ps = null; 
  26.                 } 
  27.                 // if(con!=null){con.close();con=null;} 
  28.             } catch (SQLException e) { 
  29.             } 
  30.         } 
  31.  
  32.         return message; 
  33.     } 
分享到:
评论

相关推荐

    jdbc通用类

    本篇文章将详细探讨`jdbc通用类`的相关知识点,包括两种连接数据库的方法——基于连接池和属性文件,以及通用方法的设计思路。 首先,我们来看连接数据库的方法: 1. **基于连接池的数据库连接**:连接池是一种...

    jdbc通用数据库连接

    总结来说,"jdbc通用数据库连接"是指通过Java的JDBC API,封装了数据库操作的类或方法,使得在不同项目中可以方便快捷地进行数据库交互。这种封装涵盖了数据库连接的全过程,包括连接建立、SQL执行、结果处理以及...

    自定义jdbc通用类

    总结来说,自定义JDBC通用类结合反射和元数据信息,能帮助我们创建高效、灵活且易于维护的数据库访问层。通过封装常见的数据库操作,不仅可以减少代码重复,还能使程序更易扩展,适应不同数据库的需求。在开发过程中...

    jdbc通用连接操作类

    一个典型的jdbc通用连接操作类可能会包含以下方法: 1. `getConnection()`:获取数据库连接,通常会包含异常处理,确保连接的建立不会因错误中断。 2. `executeQuery(String sql)`:执行SQL查询,返回ResultSet对象...

    JDBC数据库操作通用类

    ### JDBC数据库操作通用类知识点详解 #### 一、概述 JDBC(Java Database Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC API既...

    Spring3 JDBC 通用DAO封装2 dao层终于完成dao层大概上传完整代码

    本篇将围绕“Spring3 JDBC通用DAO封装”这一主题展开,介绍如何实现一个高效的DAO层,并分享相关代码示例。 1. **Spring3 JDBC概述** Spring3 JDBC通过提供JdbcTemplate和SimpleJdbcInsert等工具类,帮助开发者...

    JDBC连接池(通用basedao)可直接用的模板

    在Java开发中,数据库操作是不可或缺的一部分,而JDBC连接池是提高数据库访问效率、优化系统资源使用的重要技术。本文将深入探讨JDBC连接池的概念、工作原理,并以"通用basedao"模板为例,讲解如何在实际项目中应用...

    神通数据库JDBC驱动包

    神通数据库是中国自主开发的一款高效、安全的数据库管理系统,被称为神舟通用数据库或OSCar。它在信息化建设中扮演着重要角色,特别是在国家安全和关键领域的数据存储与处理方面。JDBC(Java Database Connectivity...

    JDBC的通用模块、角色、权限管理

    "JDBC的通用模块、角色、权限管理"是针对系统中的数据访问、角色管理和权限控制的一种实现,旨在提供一个可复用的、高度封装的解决方案,以简化开发流程,提高代码的可维护性和安全性。 首先,通用模块的设计是为了...

    对jdbc的封装的总结

    在IT行业中,JDBC(Java Database Connectivity)是Java语言中用来规范客户端程序如何访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。本文将深入探讨对JDBC的封装,旨在提高数据库操作的效率、...

    尚硅谷jdbc视频教程

    JDBC(Java Database Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了高度的抽象层,使得开发人员能够使用相同的API来访问...

    达梦-神通-南大通用-优炫-瀚高-KingBase jdbc驱动.zip

    Gbase的JDBC驱动为Java应用程序提供了一种标准的接口,使得开发者可以使用Java语言来访问和管理Gbase数据库。 4. **优炫数据库(UXDB)**:优炫数据库是一款面向事务处理的高性能数据库系统,尤其适用于金融、电信、...

    基于JDBC的最好用数据库访问类

    "基于JDBC的最好用数据库访问类"是一个专为简化JDBC操作而设计的工具类,它的目标是提供更高效、易用和健壮的数据库访问方式,从而减轻开发者的工作负担。 首先,让我们了解一下JDBC的基本使用流程:加载驱动、建立...

    JAVA使用JDBC进行insert操作添加信息到数据库

    JDBC 的主要功能是提供一个通用的接口,用于访问不同的数据库管理系统。 二、 JDBC 架构 JDBC 的架构主要由以下几个组件组成: * JDBC Driver:负责将 JDBC 的调用转换为数据库管理系统的调用。 * JDBC API:提供...

    最新版加注释通用JDBC数据库连接池

    本资源名为“最新版加注释通用JDBC数据库连接池”,显然它提供了一个带有详细注释的通用JDBC数据库连接池实现,这将有助于开发者理解和使用。这里我们将详细讲解数据库连接池的概念、工作原理以及如何使用。 **...

    Java通用Dao包括JDBC和JNDI两种连接方式

    Java通用DAO(Data Access Object)模式是软件开发中用于封装数据访问操作的一种设计模式,它为业务层提供了统一的接口,使得业务逻辑与数据库操作分离,提高了代码的可复用性和可维护性。在Java中,实现通用DAO通常...

    JDBC链接Oracle数据库增删改查通用工具类

    标题中的“JDBC链接Oracle数据库增删改查通用工具类”指的是一个Java编程中的实用工具类,它封装了与Oracle数据库交互的JDBC操作,包括插入(Insert)、删除(Delete)、更新(Update)和查询(Select)这四种基本...

    2022年在Servlet中使用JDBC访问数据库.pptx

    2. 通用性:JDBC 可以访问不同的数据库管理系统,无需考虑底层数据库的差异。 3. 高效性:JDBC 提供了高效的数据库访问方式,提高了应用程序的性能。 然而,在使用 JDBC 访问数据库时,也需要注意一些问题,例如: ...

    南大通用Gbase-jdbc-drvier驱动

    JDBC(Java Database Connectivity)是Java语言中用于规范客户端程序如何访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。Gbase-jdbc-driver就是遵循JDBC标准的驱动程序,使得Java开发者可以...

Global site tag (gtag.js) - Google Analytics