jdbc元数据入门-2(ResultSetMetaData,ParameterMetaData)

jdbc元数据入门-2(ResultSetMetaData,ParameterMetaData)
上次文章的知识是通过jdbc元数据可以获取连接的数据库的信息,结合本节的知识就可以完全作出一个自定义的持久层实现了。
首先看示例:
public class Test {
    public static void main(String[] args) throws Exception {
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        String connectionUrl = "jdbc:sqlserver://127.0.0.1:1433;database=Northwind;user=sa;password=huhuiyu";
        Connection connection = DriverManager.getConnection(connectionUrl);
        // 建立查询
        Statement statement = connection.createStatement();
        String sql = "select EmployeeID as '员工编号',Title as '头衔' ,BirthDate as '生日' from Employees";
        ResultSet rs = statement.executeQuery(sql);
        // 获取查询的元数据
        ResultSetMetaData meta = rs.getMetaData();
        int cols = meta.getColumnCount(); // 获取查询结果的列数
        for (int i = 1; i <= cols; i++) {
            System.out.print(String.format("列%1$s的信息--", i));
            System.out.print(String.format("名称:%1$s,", meta.getColumnName(i)));
            System.out.print(String.format("java类型名称:%1$s,", meta    .getColumnClassName(i)));
            System.out.print(String.format("sql类型名称:%1$s,", meta.getColumnTypeName(i)));
            System.out.print(String.format("显示需要的最大长度:%1$s,", meta    .getColumnDisplaySize(i)));
            System.out.println();
        }
        // 关闭连接
        rs.close();
        statement.close();
        connection.close();
    }
}
数据库还是连接的Sql Server.ton通过元数据(ResultSetMetaData)可以很方便的获取出查询结果列的详细信息.
而且离线数据集(RowSet,前面的文章中说过它的使用)也是完全实现了ResultSet的所有方法,所以所有ResultSet能够完成的功能,RowSet也

可过做到,配合上次文章的知识可以将一个数据库中所有的表,以及表中所有的列信息全部查询出来。只要查询语句写成:
SELECT * FROM 表名称 WHERE 1=2 就可以了。
最后给出预处理语句(PreparedStatement)的元数据信息的代码,作为jdbc元数据的结束。
PreparedStatement ps=connection.prepareStatement(
                "select EmployeeID,Title from Employees where EmployeeID < ? and Title like ?");
ParameterMetaData meta=ps.getParameterMetaData();
int cols = meta.getParameterCount(); // 获取预编译语句的参数个数
for (int i = 1; i <= cols; i++) {
    System.out.print(String.format("预编译参数%1$s的信息--", i));
    System.out.print(String.format("java数据类型:%1$s,", meta.getParameterClassName(i)));
    System.out.print(String.format("sql数据类型:%1$s", meta.getParameterTypeName(i)));
    System.out.println();
}
同过两篇文章的知识介绍,希望对大家熟悉jdbc元数据起到一些作用。
 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值