700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 数据库-MySQL-JDBC-结果集

数据库-MySQL-JDBC-结果集

时间:2018-10-07 10:08:29

相关推荐

数据库-MySQL-JDBC-结果集

结果集的取值方法

取结果有两种方法:

按列标题

按列序列号

1 按列标题取值

以下示例中,无论字段是什么类型,均用getString() 来取值演示

String sql = "SELECT id as 学号, name as 姓名,birthday FROM student";Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql);// 取得结果集中的每一行数据while(rs.next()){// 取出这一行记录String id = rs.getString("学号");String name = rs.getString("姓名");String birthday = rs.getString("birthday"); System.out.println(id + "\t" + name + "\t" + birthday ); }

注意,列标题可能不是原始列名,而是AS后的别名。也就是在SQLyog里查询时显示的名称。

2 按列序号取值

示例:

while(rs.next())

{

// 取出这一行记录

String id = rs.getString(1);

String name = rs.getString(2);

String birthday = rs.getString(3);

System.out.println(id + “\t” + name + “\t” + birthday );

}

注意,列序号从1开始计数。1, 2 , 3 …

注意

1.先取值,再关闭连接。

2.取值效率:按列序号>按列标题

3.常用字段都可以用getString()取值

4.列序号从1开始

元数据MetaData

元数据MetaData:即对列字段的描述信息

在结果集中,不仅有每一行的数据,还有元数据信息。包括:列名、列标题、列类型等…

public static void testQuery() throws Exception{// 注册MySQL驱动 Class.forName("com.mysql.jdbc.Driver");// 连接MySQL服务器String username= "root";String password = "a1b2c3";String connectionUrl = "jdbc:mysql://127.0.0.1:3306/af_school?useUnicode=true&characterEncoding=UTF-8";Connection conn = DriverManager.getConnection(connectionUrl, username, password);System.out.println("连接成功!");///// 数据库查询: Statement语句 , ResultSet结果集String sql = "SELECT id as 学号, name as 姓名,birthday FROM student";Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql);// 显示元数据信息ResultSetMetaData rsmd = rs.getMetaData();int numColumn = rsmd.getColumnCount();for(int i=1; i<= numColumn; i++) // 列序号 1,2,3, ...{String name = rsmd.getColumnName(i); // 列名String label = rsmd.getColumnLabel(i); // 列标题 (别名)int type = rsmd.getColumnType(i); // 类型, 参考 java.sql.Types定义String typeName = rsmd.getColumnTypeName(i); // 类型名称System.out.printf("第%d列: %s, %s, %s \n", i, name, label, typeName);}//conn.close();System.out.println("关闭连接!");}

注意:列序号从1开始,所以遍历也是从1开始而不是0

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。