元数据(MetaData),又称中介数据,中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息。元数据是关于数据的组织、数据域及其关系的信息,简言之,元数据就是关于数据的数据。

以结果集ResultSet为例。

* 1,加载驱动 * 2,建立连接 * 3,创建Statement * 4,执行sql * 5,处理ResultSet * 6,释放资源 public static void main(String[] args) throw Exception{ String driver ="com.mysql.cj.jdbc.Driver" ; String url ="jdbc:mysql://localhost:3306/testdb?characterEncoding=utf8&useSSL=false&serverTimezone=GMT&allowPublicKeyRetrieval=false&useUnicode=true" ; String username ="sa" ; String password ="admin" ; // 加载驱动 Class.forName(driver); // 建立连接 Connection connection= DriverManager.getConnection(url,username,password); // 创建Statement Statement statement= connection.createStatement(); String sql ="select * from userinfo" ; // 执行sql ResultSet resultSet= statement.executeQuery(sql); // 处理ResultSet while (resultSet.next()){ // 处理resultSet // 释放资源 if (resultSet!= null ){ resultSet.close(); if (statement!= null ){ statement.close(); if (connection!= null ){ connection.close();

从xml文件中读取数据库的配置信息,然后处理

* 1,加载驱动 * 2,建立连接 * 3,创建Statement * 4,执行sql * 5,处理ResultSet * 6,释放资源 public class MetaDataDemo { public static void main(String[] args) throws Exception { InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml" ); Configuration configuration = XmlConfigBuilder.loadXmlConfig(inputStream); Class.forName(configuration.getDriver()); Connection connection = DriverManager.getConnection(configuration.getUrl(), configuration.getUsername(), configuration.getPassword()); Statement statement = connection.createStatement(); String sql ="select * from userinfo" ; ResultSet resultSet = statement.executeQuery(sql); User user; while (resultSet.next()){ user = new User(); user.setUserId(resultSet.getInt( "userid" )); user.setUserName(resultSet.getString( "username" )); user.setUserSex(resultSet.getString( "usersex" )); user.setUserAge(resultSet.getInt( "userage" )); user.setUserAddress(resultSet.getString( "useraddress" )); System.out.println(user); if (resultSet!= null ){ resultSet.close(); if (statement!= null ){ statement.close(); if (connection!= null ){ connection.close();

ResultSet元数据,通过getMeta方法得到一个封装所有结果集的对象ResultSetMetaData。通过metaData.getColumnCount()获取总列数,metaData.getColumnName(i)获取列的名称。其中i是从1开始的。

        ResultSetMetaData metaData = resultSet.getMetaData();
        for(int i=1;i<=metaData.getColumnCount();i++){
            System.out.println(metaData.getColumnName(i));