宁波高端网站开发,网站地图生成器哪个好,网站重复,开了360网站卫士ssl如何做3011.概述
数据库元数据#xff08;DatabaseMetaData#xff09;#xff1a;是由Connection对象通过getMetaData方法获取而来#xff0c;主要封装了是对 数据库本身的一些整体综合信息#xff0c;例如数据库的产品名称#xff0c;数据库的版本号#xff0c;数据库的URLDatabaseMetaData是由Connection对象通过getMetaData方法获取而来主要封装了是对 数据库本身的一些整体综合信息例如数据库的产品名称数据库的版本号数据库的URL是否支持事务等等。 以下有一些关于DatabaseMetaData的常用方法
getDatabaseProductName获取数据库的产品名称getDatabaseProductName获取数据库的版本号getUserName获取数据库的用户名getURL获取数据库连接的URLgetDriverName获取数据库的驱动名称driverVersion获取数据库的驱动版本号isReadOnly查看数据库是否只允许读操作supportsTransactions查看数据库是否支持事务
2.入门案例
1构建环境 dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.6/version/dependency
2获取数据库综合信息
public class DataBaseMetaDataTest {private Connection conn;Beforepublic void init() throws Exception {Class.forName(com.mysql.jdbc.Driver);Properties props new Properties();//设置连接属性,使得可获取到表的REMARK(备注)props.put(remarksReporting,true);props.put(user, root);props.put(password, 111111);conn java.sql.DriverManager.getConnection(jdbc:mysql://127.0.0.1:3306/?useUnicodetrueamp;characterEncodingUTF8, props);}Testpublic void testDatabaseMetaData() throws SQLException {//获取数据库元数据DatabaseMetaData dbMetaData conn.getMetaData();//获取数据库产品名称String productName dbMetaData.getDatabaseProductName();System.out.println(productName);//获取数据库版本号String productVersion dbMetaData.getDatabaseProductVersion();System.out.println(productVersion);//获取数据库用户名String userName dbMetaData.getUserName();System.out.println(userName);//获取数据库连接URLString userUrl dbMetaData.getURL();System.out.println(userUrl);//获取数据库驱动String driverName dbMetaData.getDriverName();System.out.println(driverName);//获取数据库驱动版本号String driverVersion dbMetaData.getDriverVersion();System.out.println(driverVersion);//查看数据库是否允许读操作boolean isReadOnly dbMetaData.isReadOnly();System.out.println(isReadOnly);//查看数据库是否支持事务操作boolean supportsTransactions dbMetaData.supportsTransactions();System.out.println(supportsTransactions);}
}
3 获取数据库列表 Testpublic void testFindAllCatalogs() throws Exception {//获取元数据DatabaseMetaData metaData conn.getMetaData();//获取数据库列表ResultSet rs metaData.getCatalogs();//遍历获取所有数据库表while(rs.next()){//打印数据库名称System.out.println(rs.getString(1));}//释放资源rs.close();conn.close();}
4 获取某数据库中的所有表信息 Testpublic void testFindAllTable() throws Exception{//获取元数据DatabaseMetaData metaData conn.getMetaData();//获取所有的数据库表信息ResultSet tablers metaData.getTables(ihrm, , bs_user, new String[]
{TABLE});//拼装tablewhile(tablers.next()) {//所属数据库System.out.println(tablers.getString(1));//所属schemaSystem.out.println(tablers.getString(2));//表名System.out.println(tablers.getString(3));//数据库表类型System.out.println(tablers.getString(4));//数据库表备注System.out.println(tablers.getString(5));}}
3.参数元数据
参数元数据ParameterMetaData是由PreparedStatement对象通过getParameterMetaData方法获取而 来主要是针对PreparedStatement对象和其预编译的SQL命令语句提供一些信息ParameterMetaData能提供 占位符参数的个数获取指定位置占位符的SQL类型等等 以下有一些关于ParameterMetaData的常用方法
getParameterCount获取预编译SQL语句中占位符参数的个数 Testpublic void test() throws Exception {String sql select * from bs_user where id?;PreparedStatement pstmt conn.prepareStatement(sql);pstmt.setString(1, 1063705482939731968);//获取ParameterMetaData对象ParameterMetaData paramMetaData pstmt.getParameterMetaData();//获取参数个数int paramCount paramMetaData.getParameterCount();System.out.println(paramCount);}
4.结果集元数据
结果集元数据ResultSetMetaData是由ResultSet对象通过getMetaData方法获取而来主要是针对由数据 库执行的SQL脚本命令获取的结果集对象ResultSet中提供的一些信息比如结果集中的列数、指定列的名称、指定 列的SQL类型等等可以说这个是对于框架来说非常重要的一个对象。 以下有一些关于ResultSetMetaData的常用方法
getColumnCount获取结果集中列项目的个数getColumnType获取指定列的SQL类型对应于Java中Types类的字段getColumnTypeName获取指定列的SQL类型getClassName获取指定列SQL类型对应于Java中的类型(包名加类名) Testpublic void test() throws Exception {String sql select * from bs_user where id?;PreparedStatement pstmt conn.prepareStatement(sql);pstmt.setString(1, 1063705482939731968);//执行sql语句ResultSet rs pstmt.executeQuery() ;//获取ResultSetMetaData对象ResultSetMetaData metaData rs.getMetaData();//获取查询字段数量int columnCount metaData.getColumnCount() ;for (int i1;icolumnCount;i) {//获取表名称String columnName metaData.getColumnName(i);//获取java类型String columnClassName metaData.getColumnClassName(i);//获取sql类型String columnTypeName metaData.getColumnTypeName(i);System.out.println(columnName);System.out.println(columnClassName);System.out.println(columnTypeName);}System.out.println(columnCount);}