JDBC学习笔记(14):数据库的元数据信息与参数的元数据信息
2015-04-03 18:07
330 查看
数据库的元数据信息:
【运行结果】:
数据库连接:com.mysql.jdbc.JDBC4Connection@42ab91e8
驱动名:MySQL Connector Java
数据库名:MySQL
数据库版本号:5.6.21-log
是否支持事务:true
参数的元数据信息
【运行结果】:
Exception in thread "main" java.sql.SQLException: Parameter metadata not available for the given statement
原因:驱动设置默认不支持使用这个对象
解决方案:在数据库连接URL加上一个参数generateSimpleParameterMetadata=true"
即url="jdbc:mysql://localhost:3306/jdbc?generateSimpleParameterMetadata=true"
【运行结果】:
java.lang.String 12 VARCHAR
java.lang.String 12 VARCHAR
java.lang.String 12 VARCHAR
可以发现并没有查询到正确的类型,因为并没有查询数据库,直接返回varchar类型。
通用的数据更新操作,不论数据的参数个数:
【运行结果】:
2 lisi 1986-01-01 900.0
package com.xxyh.jdbc; import java.sql.DatabaseMetaData; import java.sql.SQLException; public class DBMD { public static void main(String[] args) throws SQLException { java.sql.Connection conn = JdbcUtils.getConnection(); DatabaseMetaData dbmd = conn.getMetaData(); // dbmd.getConnection(); System.out.println("数据库连接:" + dbmd.getConnection()); System.out.println("驱动名:" + dbmd.getDriverName()); System.out.println("数据库名:" + dbmd.getDatabaseProductName()); System.out.println("数据库版本号:" + dbmd.getDatabaseProductVersion()); System.out.println("是否支持事务:" + dbmd.supportsTransactions()); } }
【运行结果】:
数据库连接:com.mysql.jdbc.JDBC4Connection@42ab91e8
驱动名:MySQL Connector Java
数据库名:MySQL
数据库版本号:5.6.21-log
是否支持事务:true
参数的元数据信息
package com.xxyh.jdbc; import java.sql.Connection; import java.sql.ParameterMetaData; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class ParameterMetaTest { public static void main(String[] args) throws SQLException { read("select * from user where name=? and birthday<? and money>?", null); } static void read(String sql, Object[] params) throws SQLException { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { conn = JdbcUtils.getConnection(); ps = conn.prepareStatement(sql); ParameterMetaData pmd = ps.getParameterMetaData(); int count = pmd.getParameterCount();// 获取参数个数 for (int i = 1; i <= count; i++) { System.out.print(pmd.getParameterClassName(i)+"\t"); System.out.print(pmd.getParameterType(i)+"\t"); System.out.println(pmd.getParameterTypeName(i)); } } finally { JdbcUtils.close(rs, ps, conn); } } }
【运行结果】:
Exception in thread "main" java.sql.SQLException: Parameter metadata not available for the given statement
原因:驱动设置默认不支持使用这个对象
解决方案:在数据库连接URL加上一个参数generateSimpleParameterMetadata=true"
即url="jdbc:mysql://localhost:3306/jdbc?generateSimpleParameterMetadata=true"
【运行结果】:
java.lang.String 12 VARCHAR
java.lang.String 12 VARCHAR
java.lang.String 12 VARCHAR
可以发现并没有查询到正确的类型,因为并没有查询数据库,直接返回varchar类型。
通用的数据更新操作,不论数据的参数个数:
package com.xxyh.jdbc; import java.sql.Connection; import java.sql.Date; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class ParameterMetaTest { public static void main(String[] args) throws SQLException { Object[] params = new Object[]{"lisi", new Date(System.currentTimeMillis()), 100f}; read("select * from user where name=? and birthday < ? and money > ?", params); } static void read(String sql, Object[] params) throws SQLException { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { conn = JdbcUtils.getConnection(); ps = conn.prepareStatement(sql); // ParameterMetaData pmd = ps.getParameterMetaData(); // int count = pmd.getParameterCount();// 获取参数个数 for (int i = 1; i <= params.length; i++) { ps.setObject(i, params[i-1]); } rs = ps.executeQuery(); while (rs.next()) { System.out.println(rs.getInt("id") + "\t" + rs.getString("name") + "\t" + rs.getDate("birthday") + "\t" + rs.getFloat("money")); } } finally { JdbcUtils.close(rs, ps, conn); } } }
【运行结果】:
2 lisi 1986-01-01 900.0
相关文章推荐
- 参数的元数据信息&数据库的元数据信息
- 第二十八章 数据库的元数据信息
- JZ0SJ:没有在此数据库中发现元数据存取器信息。请按jConnect 文档中所述安装所需的表。
- Scripts:查询数据库中参数文件的信息(在重新建库或者克隆数据库时经常使用)dba_cr_init.sql
- 获取参数的元数据信息
- 使用HQL语句的按照参数名字查询数据库信息的时候 “=:”和参数之间不能存在空格,否则会报错
- SQL Server 2000 元数据应用(三):获得数据库中存储过程的参数和数据集字段
- [插件制作] Discuz!插件的通过数据库读取和缓存读取获取插件信息和参数
- log4j.xml写入数据库,只有SQL和参数,无其他信息
- 获得数据库的元数据与参数的元数据以及应用
- 数据库参数调优--自动更新统计信息
- 【视频】配置信息管理 的 使用方法(三):查看和修改元数据、查看数据库的表视图存储过程等信息
- 其他几个API(2)_获得数据库相关的信息_获得参数信息_获得结果信息
- JDBC学习之路(九)参数的元数据信息
- 普通创建数据库的一些参数信息模板
- postgresql中参数logging_collector对数据库系统启动日志和操作日志信息目的地的影响
- 数据库操作_连接SQL Server数据库示例;连接ACCESS数据库;连接到 Oracle 数据库示例;SqlCommand 执行SQL命令示例;SqlDataReader 读取数据示例;使用DataAdapter填充数据到DataSet;使用DataTable存储数据库表;将数据库数据填充到 XML 文件;10 使用带输入参数的存储过程;11 使用带输入、输出参数的存储过程示;12 获得数据库中表的数目和名称;13 保存图片到SQL Server数据库示例;14 获得插入记录标识号;Exce
- 【视频】配置信息管理 的 使用方法(三):查看和修改元数据、查看数据库的表视图存储过程等信息
- 第二十九章 参数的元数据信息
- 数据文件、日志文件、归档文件、控制文件、参数文件及RMAN备份数据库信息查询