`
pavel
  • 浏览: 931151 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jdbc操作参数元数据

    博客分类:
  • jdbc
阅读更多

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ParameterMetaData;
import java.sql.PreparedStatement;

public class Main {
  public static void main(String[] args) throws Exception {
    Connection conn = null;
    PreparedStatement pstmt = null;
    ParameterMetaData paramMetaData = null;
    conn = getMySqlConnection();
    pstmt = conn.prepareStatement("select * from survey where id = ?");

  /**

   * 重点:获取参数个数,可以通过传入数据,迭代替换占位符的方法

   */   

 paramMetaData  pmd = pstmt.getParameterMetaData();
    if (paramMetaData == null) {
      System.out.println("db vendor does NOT support ParameterMetaData");
    } else {
      System.out.println("db vendor supports ParameterMetaData");
      // find out the number of dynamic parameters
      int paramCount = pmd.getParameterCount();

     for(int i=0;i<=paramCount;i++)

{

pmd.getParameterClassName( index ) //获得JAVA中的类型名,如打印出java.lang.String

pmd.getParameterType( index ) //获得类型号,比如打印出 12 ,代表VARCHAR类型

pmd.getParameterTypeName( index ) //获得数据库中的类型名,如打印出VARCHAR

//这些方法需要依赖于数据库的JDBC是否支持,如MYSQL就不支持,都只会打印出VARCHAR类型的值

}

      System.out.println("paramCount=" + paramCount);
    }
    pstmt.close();
    conn.close();
  }

  private static Connection getHSQLConnection() throws Exception {
    Class.forName("org.hsqldb.jdbcDriver");
    System.out.println("Driver Loaded.");
    String url = "jdbc:hsqldb:data/tutorial";
    return DriverManager.getConnection(url, "sa", "");
  }

  public static Connection getMySqlConnection() throws Exception {
    String driver = "org.gjt.mm.mysql.Driver";
    String url = "jdbc:mysql://localhost/demo2s";
    String username = "oost";
    String password = "oost";

    Class.forName(driver);
    Connection conn = DriverManager.getConnection(url, username, password);
    return conn;
  }

  public static Connection getOracleConnection() throws Exception {
    String driver = "oracle.jdbc.driver.OracleDriver";
    String url = "jdbc:oracle:thin:@localhost:1521:caspian";
    String username = "mp";
    String password = "mp2";

    Class.forName(driver); // load Oracle driver
    Connection conn = DriverManager.getConnection(url, username, password);
    return conn;
  }
}

分享到:
评论

相关推荐

    JDBC 连接到 PostgreSQL 数据库获取数据简单例子

    本示例将详细介绍如何使用JDBC连接到PostgreSQL数据库并执行简单的数据获取操作。PostgreSQL是一种开源的对象关系型数据库管理系统,因其强大的功能和稳定性而广受欢迎。 首先,确保已安装PostgreSQL数据库并在系统...

    JDBC操作技术 PDF

    - **DatabaseMetaData**:提供关于数据库的元数据信息。 ### SQL操作 JDBC支持的基本SQL操作包括: - 查询:`SELECT`语句。 - 插入:`INSERT INTO`语句。 - 更新:`UPDATE`语句。 - 删除:`DELETE FROM`语句。 - ...

    jdbc实例教程

    JDBC 元数据是 JDBC 的一个重要组件,用于提供数据库的元数据信息。元数据包括数据库的 schema 信息、表信息、字段信息等。 元数据 Meta Data 元数据 Meta Data 是元数据的核心组件之一,提供了数据库的 schema ...

    java封装jdbc的操作代码

    `META-INF`目录通常包含项目元数据,`com`是Java源代码包,可能包含了封装的JDBC操作类。`lib`目录可能包含JDBC驱动和其他依赖库。 6. **最佳实践** 在实际开发中,可以进一步优化封装,例如使用DAO(Data Access ...

    JDBCJDBC高级应用

    - `DatabaseMetaData` 类提供了关于数据库的各种元数据信息,例如获取所有表名、列信息、索引信息等。通过调用 `Connection` 对象的 `getMetaData()` 方法获取元数据实例,然后通过这个实例可以查询到数据库的详细...

    jdbc使用参考手册

    - **JDBC批注**:用于元数据查询,如`DatabaseMetaData`接口。 - **结果集元数据**:`ResultSetMetaData`对象提供列的相关信息。 - **JDBC逃逸**:防止SQL注入的编码技术。 ### 10. 示例代码 ```java Class.for...

    优化JDBC方法功略

    一旦获取了MetaData信息,应将其缓存起来,避免重复执行可能导致复杂查询的元数据获取操作。例如,程序可以一次性调用getTypeInfo方法,然后缓存返回的结果,而不是在需要时反复调用。 其次,避免在MetaData方法中...

    JDBC操作连接MYSQL数据库.pdf

    查询结果将通过ResultSet对象返回,并可以使用ResultSetMetaData对象获取结果集的元数据信息。最后,使用JTable组件显示结果集,从而实现查询数据的可视化展示。 在此过程中,catch块用于捕获并处理可能出现的异常...

    JDBC教程

    JDBC与数据库的元数据 通过Connection对象的`getMetaData()`方法可以获得关于数据库的信息,如表结构、列信息等,这对于数据库迁移或自动化工具非常有用。 ### 8. 避免SQL注入 PreparedStatement的参数化特性可...

    jdbc课件以及源代码(数据源)

    它们提供了丰富的功能,如批处理、结果集滚动、元数据查询等。同时,JDBC还支持JNDI(Java Naming and Directory Interface)查找数据源,使得在分布式环境中更容易管理数据库连接。 总的来说,JDBC是Java开发人员...

    jdbc桥技术详解,例子详解

    - 数据库元数据:`DatabaseMetaData`对象提供了数据库的各种元数据,如表信息、列信息、数据库产品版本等。常见的方法有`getCatalogs()`、`getURL()`、`getDriverName()`和`getColumns()`等。 4. 示例程序 一个...

    JDBC3.0 4.0规范

    2. **注解驱动的元数据获取**:利用Java Reflection API,可以通过注解获取表和列的信息,简化了元数据的处理。 3. **新接口和方法**:引入了`ConnectionPoolDataSource`、`PooledConnection`和`XATransaction`等...

    java jdbc4.1驱动

    5. **Connection的元数据查询**:`DatabaseMetaData`接口新增了一些方法,如`getClientInfoProperties()`,使得开发者能够获取关于数据库连接的元数据信息,包括支持的客户端信息属性等。 6. **SQLXML类型**:JDBC ...

    JDBC操作各种数据库经验技巧集萃,内含多本相关的电子书

    9. **数据库元数据**:Connection对象的getMetaData()方法可以获取数据库的元数据,如表名、列名、数据类型等,有助于动态构建SQL语句。 10. **预编译SQL**:PreparedStatement中的预编译SQL可以提高执行效率,防止...

    java(jdbc)学习

    JDBC提供了获取数据库和参数元数据的机制,有助于理解数据库结构和优化查询。 #### 十一、批处理的使用 批处理允许一次性执行多条SQL语句,减少了网络往返次数,提高了批量数据处理的效率。 #### 十二、JDBC其他...

    非常全面JDBC资源

    4. **数据库元数据**: `DatabaseMetaData`对象提供了关于数据库的结构和能力的信息,如获取表信息、列信息等。 **三、JDBC最佳实践** 1. **连接池**: 使用连接池(如C3P0、HikariCP、Apache DBCP)管理数据库连接,...

    jdbc4文档PDF版

    JDBC4对元数据API进行了统一,使得获取表信息、列信息、索引信息等变得更加标准化,降低了不同数据库间的差异。 5. **批处理改进** 批处理操作现在支持动态参数,可以更灵活地处理不同类型的参数,提升了批处理的...

    ClickHouse-JDBCJar包.zip

    7. **元数据查询**:获取关于表、列、索引等信息,帮助构建和优化查询。 8. **游标处理**:利用`ResultSet`的游标功能,按需获取数据,降低内存消耗。 9. **性能优化**:通过设置JDBC连接参数,如缓冲大小、并发...

    JDBC学习笔记

    - **获取方式**:使用`ParameterMetaData`接口获取参数元数据。 #### 二十四、利用结果集元数据将查询结果封装为Map - **实现方式**: - 使用`ResultSetMetaData`获取结果集的列信息。 - 通过`getColumnLabel()`...

Global site tag (gtag.js) - Google Analytics