resultsetmetadata获取字段注释(ResultSet怎么获取数据库中的最后一行记录的第一个字段)
本文目录
- ResultSet怎么获取数据库中的最后一行记录的第一个字段
- 怎么用resultset获得整行记录
- sqlite如何获取某一表所有字段名
- Spring JdbcTemplate怎样获得表中的所有字段
- java如何获得数据库表中各字段的字段名
- 关于ResultSetMetaData,求教取得字段注释的问题
- java 通过select查询语句获得字段名
ResultSet怎么获取数据库中的最后一行记录的第一个字段
获得ResultSet的记录个数:因为ResultSet没有方法可直接得到记录数,只有另想方法,可采用如下方法:Statement stmt = db.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);ResultSet rs = stmt.executeQuery(sql);rs.last();//移到最后一行int count = rs.getRow();rs.beforeFirst();//移到初始位置
怎么用resultset获得整行记录
//传入你的ResultSetpublic static void printRS(ResultSet rs) throws SQLException { //检索此 ResultSet 对象的列的编号、类型和属性。 ResultSetMetaData rsmd = rs.getMetaData(); //得到当前的列数int colCount = rsmd.getColumnCount(); while(rs.next()) { //while控制行数 for(int i = 1; i 《= colCount; i++ ) {//for循环控制列数 if(i 》 1) { System.out.print(","); } //得到当前列的列名 String name = rsmd.getColumnName(i); //得到当前列的值 String value = rs.getString(i); System.out.print(name + "=" + value); } System.out.println(); } }
sqlite如何获取某一表所有字段名
select * from 表名
使用JDBC的方式查一下,select * from table_name,这样就返回所有的字段了,然后使用 ResultSetMetaData (Java) 类进行遍历一下就可以了,其它的开发语言应该也有遍历字段的方法另外,可以把上面的逻辑封装到一个方法体中,直接返回一个字段名列表就可以,使用时直接调用
Spring JdbcTemplate怎样获得表中的所有字段
一、 通过SqlRowSetMetaData类
使用到的类或接口有如下几个:
org.springframework.jdbc.support.rowset.SqlRowSet接口:该对象和javax.sql.RowSet类相对应,它和RowSet的区别是SqlRowSet中的方法从来不会抛出SQLException异常,通过jdbcTemplate可以获得该对象的实例;
org.springframework.jdbc.support.rowset.SqlRowSetMetaData接口:是对应于SqlRowSet的元数据接口,和java.sql.ResultSetMetaData相一致,也只是从来不会抛出SQLException异常,通过SqlRowSet可以获得该类的实例;
具体使用实例如下:
SqlRowSet rowSet = jdbcTemplate.queryForRowSet("select * from user limit 0"); SqlRowSetMetaData metaData = rowSet.getMetaData(); int columnCount = metaData.getColumnCount(); for (int i = 1; i 《= columnCount; i++) { Map《String,String》 fieldMap = new HashMap《String,String》(); fieldMap.put("ColumnName", metaData.getColumnName(i)); fieldMap.put("ColumnType", String.valueOf(metaData.getColumnType(i))); fieldMap.put("ColumnTypeName", metaData.getColumnTypeName(i)); fieldMap.put("CatalogName", metaData.getCatalogName(i)); fieldMap.put("ColumnClassName", metaData.getColumnClassName(i)); fieldMap.put("ColumnLabel", metaData.getColumnLabel(i)); fieldMap.put("Precision", String.valueOf(metaData.getPrecision(i))); fieldMap.put("Scale", String.valueOf(metaData.getScale(i))); fieldMap.put("SchemaName", metaData.getSchemaName(i)); fieldMap.put("TableName", metaData.getTableName(i)); fieldMap.put("SchemaName", metaData.getSchemaName(i)); System.out.println(fieldMap); }
上述所用的信息都应列出来了,发现只有一些简单的信息,并没有涉及索引和其他约束等的信息。
二、通过RowCountCallbackHandler类
使用到的类或接口有如下几个:
org.springframework.jdbc.core.RowCallbackHandler接口:用于处理结果集中的每一行数据;
org.springframework.jdbc.core.RowCountCallbackHandler类:实现了RowCallbackHandler接口,其中简单的实现了对结果集元数据的获取,包括行数、列数、列名、列的类型等信息,顺便说一下这个类的实例只可以用一次;
在源代码中给出了简单的使用方式,如下:
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); // reusable object RowCountCallbackHandler countCallback = new RowCountCallbackHandler(); // not reusable jdbcTemplate.query("select * from user", countCallback); int rowCount = countCallback.getRowCount();
所有能获得的信息如下:
String sql = "select * from user"; RowCountCallbackHandler rcch = new RowCountCallbackHandler(); jdbcTemplate.query(sql, rcch); System.out.println("column count :" + rcch.getColumnCount()); System.out.println("column count :" + rcch.getRowCount()); for(int i=0; i《rcch.getColumnCount(); i++){ System.out.println("column name :" + rcch.getColumnNames()); System.out.println("column type :" + rcch.getColumnTypes()); }
输出如下:
从输出可以看出有一个问题,列的类型只能用数字来标识,这与java.sql.Types相对应,我们可以通过一下的程序来获得字符串的形式:
String getTypeName(int type) throws SQLException { switch (type) { case Types.ARRAY: break; case Types.BIGINT: return "BIGINT"; case Types.BINARY: return "BINARY"; case Types.BIT: return "BIT"; case Types.BLOB: return "BLOB"; case Types.BOOLEAN: return "BOOLEAN"; //.. }
由以上可知,该类的方法有限,也只能获得列名和列的类型的信息,关于索引和约束等也没有涉及
java如何获得数据库表中各字段的字段名
import java.sql.*;import java.util.ArrayList;import java.util.Hashtable;import java.util.List;public class Test{ public static void main(String args) throws Exception { // 驱动 String driver = "com.mysql.jdbc.Driver"; // 数据库连接 String url = "jdbc:mysql://localhost:3306/test"; // 用户名 String user = "root"; // 数据库密码 String password = "admin"; // 加载驱动 Class.forName(driver); // 获取链接 Connection connection = DriverManager .getConnection(url, user, password); // 创建查询声明 PreparedStatement preparedStatement = connection .prepareStatement("select * from dept"); // 获取结果 ResultSet resultSet = preparedStatement.executeQuery(); // 获取各个列的信息 ResultSetMetaData metaData = resultSet.getMetaData(); // 一条数据保存在一个Hashtable 将所有Hashtable存放到list List《Hashtable《String, Object》》 rows = new ArrayList《Hashtable《String, Object》》(); while (resultSet.next()) { Hashtable《String, Object》 row = new Hashtable《String, Object》(); for (int i = 1; i 《= metaData.getColumnCount(); i++) { // 打印列名 System.out.println(metaData.getColumnName(i)); row.put(metaData.getColumnName(i), resultSet.getObject(i)); } rows.add(row); } resultSet.close(); preparedStatement.close(); connection.close(); }}
关于ResultSetMetaData,求教取得字段注释的问题
Java获取数据库的表中各字段的字段名,代码如下: import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.PreparedStatement;import java.sql.ResultSetMetaData;import java.sql.SQLException
java 通过select查询语句获得字段名
问题都一样,需要把sql放到数据库中执行后才能获得ResultSet rs = stmt.executeQuery( sql );// sql为待执行的sqlResultSetMetaData rsmd = rs.getMetaData() ; colcount = rsmd.getColumnCount();for (int i = 1; i 《= colcount; i++){ system.out.println( rsmd.getColumnName(i) );}
更多文章:
fckeditor 下载(VS2005里安装FCKeditor的详细步骤)
2024年7月11日 14:20
mt15i刷机(我的爪机索爱mt15i是港水,用了好多的刷机软件都不行,应该怎么获取root权限啊谢谢!)
2024年6月29日 12:48
我下了UC浏览器后打开就这样了,怎么都是英文,怎么改成中文?UC浏览器中英文怎样换成中文
2024年7月12日 01:18
雅虎邮箱注册申请(请问如何申请yahoo邮箱如何用yahoo邮箱发邮件)
2024年7月30日 14:01
国都证券网上交易互动版官方下载(国都证券软件下载-国都证券官网-国都证券下载)
2024年7月27日 20:11
灵格斯词霸app官方下载(灵格斯词霸(lingoes)怎么没有android版本的)
2024年5月7日 12:31