1, JDBC元数据
在JDBC中可以使用:数据库元数据,参数元数据,结果集元数据
(1)数据库元数据
通过连接对象的getMetaData()方法可以得到DatabaseMetaData对象.DatabaseMetaData对象包含了数据库的元信息。
DatabaseMetaData java.sql.Connection.getMetaData (),
检索DatabaseMetaData对象包含关于数据库的元数据。元数据包含关于数据库的表的信息,其支持的SQL语法,它的存储过程,此连接的功能,所以>一个对象,可以用来获取信息的类型和属性为每个参数标记PreparedStatement对象。
通过ParameterMetaData对象的getParameterCount()方法可以获得PreparedStatement对象中的参数个数。
int java.sql.ParameterMetaData.getParameterCount (),
PreparedStatement对象检索参数的数量。
(3)结果集元数据
通过ResultSet对象的getMetaData()方法得到ResultSetMetaData对象。
ResultSetMetaData java.sql.ResultSet.getMetaData ()
检索数量、类型和属性的ResultSet对象的列。
java.sql。ResultSetMetaData
一个对象,可以用来获取信息的类型和属性列在ResultSet对象只
1.1,数据库元数据
package com.rk.metadata; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.SQLException; import com.rk.utils.JDBCUtil;//1只数据库元数据 public class  Demo01 { public static  void main (String [], args), throws SQLException异常 {//,获取连接 Connection conn =, JDBCUtil.getConnection ();//,获取数据库元数据 DatabaseMetaData metaData =, conn.getMetaData ();//, alt +, shift +, L ,快速获取方法返回值 System.out.println (“DatabaseProductName:“, +, metaData.getDatabaseProductName());//返回数据库的产品名称。 System.out.println (“DatabaseProductVersion:“, +, metaData.getDatabaseProductVersion());//返回数据库的版本号 System.out.println (“DriverName:“, +, metaData.getDriverName());//返回驱动驱动程序的名称 System.out.println (“getDriverVersion:“, +, metaData.getDriverVersion());//返回驱动程序的版本号 System.out.println (“URL:”, +, metaData.getURL());//返回一个字符串类对象,代表数据库的URL System.out.println("用户名:",+,metaData.getUserName());//返回连接当前数据库管理系统的用户名 System.out.println(“只读的:“,+,metaData.isReadOnly());//返回一个布尔值,指示数据库是否只允许读操作 JDBCUtil.closeQuietly(康涅狄格州); } }
1.2,参数元数据
package com.rk.metadata; import java.sql.Connection; import java.sql.ParameterMetaData; import java.sql.PreparedStatement; import java.sql.SQLException; import com.rk.utils.JDBCUtil;//2只参数元数据 public class  Demo02 { public static  void main (String [], args), throws SQLException异常 {//,获取连接 Connection conn =, JDBCUtil.getConnection ();//SQL String sql =, " SELECT *,得到T_Dogs WHERE Name=?,以及Age> ?”; PreparedStatement pstmt =, conn.prepareStatement (sql);//,参数元数据 ParameterMetaData ParameterMetaData =, pstmt.getParameterMetaData ();//,获取参数的个数 int count =, parameterMetaData.getParameterCount (); System.out.println(“数:”,+,数); JDBCUtil.closeQuietly (pstmt); JDBCUtil.closeQuietly(康涅狄格州); } }
1.3,结果集元数据
package com.rk.metadata; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import com.rk.utils.JDBCUtil;//3只结果集元数据 public class  Demo03 { public static  void main (String [], args), throws SQLException异常 {//,获取连接 Connection conn =, JDBCUtil.getConnection (); String sql =, " SELECT *,得到T_Dogs”; PreparedStatement pstmt =, conn.prepareStatement (sql); ResultSet rs =, pstmt.executeQuery ();//,得到结果集元数据(目标:通过结果集元数据,得到列的名称) ResultSetMetaData rs_metaData =, rs.getMetaData ();//,迭代每一行结果 而(rs.next ()) {//,1只获取列的个数 int count =, rs_metaData.getColumnCount ();//,2只遍历,获取每一列的列的名称 (int i=0; i开源组件:(4)用元数据和BeanUtils写一个简单的ORM映射BaseDAO.java