您的位置:

java获取mysql表列属性,mysql获取表的所有字段

本文目录一览:

java读取MySQL数据库

在String value = rs.getString("name"); 之前要先rs.next();一下

你用这个来判断密码错误?

if(!rs.isBeforeFirst()){

JOptionPane.showMessageDialog(frame, "Wrong password!");

}

isBeforeFirst() 的意思是:获取光标是否位于此 ResultSet 对象的第一行之前。

如何java编程实现提取数据库中的表的属性值,并可视化出来。比如说创建了一张表,属性有id、name等等

思路:你先建立数据库连接:连接数据库的方式你应该会吧。不会在网上查一下,获取连接后:拿到连接对象:如下:

Connection conn = DriverManager.getConnection(url,userName,password);

//实现关于数据库的整体综合信息对象:如下:

java.sql.DatabaseMetaData dbmd=conn.getMetaData();

//获取数据库相关的信息,

System.out.println("数据库产品名: "+dbmd.getDatabaseProductName());

System.out.println("数据库是否支持事务: "+dbmd.supportsTransactions());

System.out.println("数据库产品的版本号:"+dbmd.getDatabaseProductVersion());

//获取全表相关的信息

ResultSet tSet=dbmd.getTables(null,"%","%",newString[]{"TABLE","VIEW"})

while(tSet.next()){

System.out.println(tSet.getRow()+"_表类别:"+tSet.getString("TABLE_CAT")+"_表模式:"+tSet.getString ("TABLE_SCHEM")+"_表名称:"+tSet.getString("TABLE_NAME")+"_表类型:"+tSet.getString("TABLE_TYPE")

//获取表的主键列信息;

ResultSetprimaryKey=dbmd.getPrimaryKeys("MANOR","PUBLIC","SYS_ROLE_RES");

while(primaryKey.next()){

System.out.println("表名:"+primaryKey.getString("TABLE_NAME")+",列名:"+primaryKey.getString("COLUMN_NAME")

+" 主键名:"+primaryKey.getString("PK_NAME"));

//其中表名:SYS_ROLE_RES,

}

//获取表的外键列信息"

ResultSet foreinKey=dbmd.getImportedKeys("MANOR","PUBLIC","SYS_ROLE_RES");

while(foreinKey.next()){

System.out.println("主键名:"+foreinKey.getString("PK_NAME")+",外键名:"+foreinKey.getString("FKCOLUMN_NAME")

+",主键表名:"+foreinKey.getString("PKTABLE_NAME")+",外键表名:"+foreinKey.getString("FKTABLE_NAME")

+",外键列名:"+foreinKey.getString("PKCOLUMN_NAME")+",外键序号:"+foreinKey.getString("KEY_SEQ"));

}

相获取更多SQL参数,可参考数据库相关方面的教材。

java 获取mysql 某个数据库中所有表及表的列的信息

mysql里面提供了很多方法来获取表结构和表列:如下方法

获得某表所有列的信息:

String sql = select * from tname;//tname为某一表名

Connection conn = ....;

Statement st = conn.createStatement();

ResultSet rs = st.rs = st.executeQuery(sql);

ResultSetMetaData rsmd = rs.getMetaData();

int colcount = rsmd.getColumnCount();//取得全部列数

for(int i=0;icolcount;i++){

String colname = rsmd.getColumnName(i);//取得全部列名

}

以上为某表字段具体查询,如果是查询表的信息,如在mysql服务器上那样的查询结果的话,可以用一下代码:

ResultSet.executeQuery("show tables")可以的到所有的表信息。

ResultSet.executeQuery("describe tname")可以得到表的字段信息。//tname为表名

Java如何输出mysql中表的所有数据,前提是不知道表里面有什么内容

链接数据库的时候有个ResultSet知道吧。基本的链接我就不说了。我想你的意思是说假如程序员对数据库的字段和值一无所知的情况下怎么查出数据对吧? 好的,回答如下。简单点哈。说下思路就可以。首先:1.你应该知道表名的。2.字段全部当做String来处理。3.用处理得到的ResultSet对象得到ResultSetMetaDate这个类的对象4.用ResultSetMetaDate的方法得到该表的列数,你还可以在该类的方法里面得到该表的所有信息、比如:列名、某列的值、行数、字段的数据类型、字段的长度等等应有尽有。 回答完毕!

怎样用java获取mysql 数据库某个表中一条记录中的指定字段值?

你要用jdbc还是hibernate?jdbc直接写sql,然後返回ResultSet.get("字段名")就能得到,尔hibernate是得到影射後得实体,从实体里面拿就好了

如何用java 获取mysql表和字段的备注信息

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;

public class TestDemo {

public static Connection getConnection() {

Connection conn = null;

try {

Class.forName("com.mysql.jdbc.Driver");

String url = "jdbc:mysql://数据库IP地址:3306/数据库名称";

String user = "数据库用户名";

String pass = "数据库用户密码";

conn = DriverManager.getConnection(url, user, pass);

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

return conn;

}

public static void main(String[] args) {

Connection conn = getConnection();

String sql = "select * from AccessType";

PreparedStatement stmt;

try {

stmt = conn.prepareStatement(sql);

ResultSet rs = stmt.executeQuery(sql);

ResultSetMetaData data = rs.getMetaData();

for (int i = 1; i = data.getColumnCount(); i++) {

// 获得所有列的数目及实际列数

int columnCount = data.getColumnCount();

// 获得指定列的列名

String columnName = data.getColumnName(i);

// 获得指定列的列值

int columnType = data.getColumnType(i);

// 获得指定列的数据类型名

String columnTypeName = data.getColumnTypeName(i);

// 所在的Catalog名字

String catalogName = data.getCatalogName(i);

// 对应数据类型的类

String columnClassName = data.getColumnClassName(i);

// 在数据库中类型的最大字符个数

int columnDisplaySize = data.getColumnDisplaySize(i);

// 默认的列的标题

String columnLabel = data.getColumnLabel(i);

// 获得列的模式

String schemaName = data.getSchemaName(i);

// 某列类型的精确度(类型的长度)

int precision = data.getPrecision(i);

// 小数点后的位数

int scale = data.getScale(i);

// 获取某列对应的表名

String tableName = data.getTableName(i);

// 是否自动递增

boolean isAutoInctement = data.isAutoIncrement(i);

// 在数据库中是否为货币型

boolean isCurrency = data.isCurrency(i);

// 是否为空

int isNullable = data.isNullable(i);

// 是否为只读

boolean isReadOnly = data.isReadOnly(i);

// 能否出现在where中

boolean isSearchable = data.isSearchable(i);

System.out.println(columnCount);

System.out.println("获得列" + i + "的字段名称:" + columnName);

System.out.println("获得列" + i + "的类型,返回SqlType中的编号:"+ columnType);

System.out.println("获得列" + i + "的数据类型名:" + columnTypeName);

System.out.println("获得列" + i + "所在的Catalog名字:"+ catalogName);

System.out.println("获得列" + i + "对应数据类型的类:"+ columnClassName);

System.out.println("获得列" + i + "在数据库中类型的最大字符个数:"+ columnDisplaySize);

System.out.println("获得列" + i + "的默认的列的标题:" + columnLabel);

System.out.println("获得列" + i + "的模式:" + schemaName);

System.out.println("获得列" + i + "类型的精确度(类型的长度):" + precision);

System.out.println("获得列" + i + "小数点后的位数:" + scale);

System.out.println("获得列" + i + "对应的表名:" + tableName);

System.out.println("获得列" + i + "是否自动递增:" + isAutoInctement);

System.out.println("获得列" + i + "在数据库中是否为货币型:" + isCurrency);

System.out.println("获得列" + i + "是否为空:" + isNullable);

System.out.println("获得列" + i + "是否为只读:" + isReadOnly);

System.out.println("获得列" + i + "能否出现在where中:"+ isSearchable);

}

} catch (SQLException e) {

e.printStackTrace();

}

}

}