java代码读取表结构 java获取表字段

通过java程序如何在已知表明的情况下获得数据库中该张表的表结构?【java代码读取表结构 java获取表字段】public static void getConnAndTableStruct(){
Connection connection = null;
PreparedStatement pstmt = null;
ResultSetMetaData rsmd = null;
try {
//mysql连接
Class.forName("org.gjt.mm.mysql.Driver");
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test", "root", "root");
//oracle连接
//Class.forName("oracle.jdbc.driver.OracleDriver");
//String url="jdbc:oracle:thin:@173.10.2.11:1521:test";
//connection=DriverManager.getConnection(url,"root","root");
pstmt = (PreparedStatement) connection.prepareStatement("select * from user");
pstmt.execute();//这点特别要注意:如果是Oracle而对于mysql可以不用加.
rsmd = (ResultSetMetaData) pstmt.getMetaData();
className="User";
tableName="user";
for (int i = 1; irsmd.getColumnCount()1; i) {
Table table=new Table();
table.setColumnName(rsmd.getColumnName(i));
table.setColumnType(rsmd.getColumnClassName(i).substring(rsmd.getColumnClassName
(i).lastIndexOf(".") 1));
tables.add(table);
System.out.println(rsmd.getColumnName(i)""rsmd.getColumnTypeName(i)
""rsmd.getColumnClassName(i)"" rsmd.getTableName(i));
}
}
catch (ClassNotFoundException cnfex) {
cnfex.printStackTrace();
}
catch (SQLException sqlex) {
sqlex.printStackTrace();
}
}
JAVA中的表结构?你说的这两个schema是不一样的概念,前者是跟DTD有同样描述XML文档功能的,后者是数据库的术语,跟用不用java也没有必然联系
java中如何读出sqlserver数据库中的表结构java.sql.ResultSetMetaData
--------------------------------------------------------------------------------
public interface ResultSetMetaData
可用于获取关于 ResultSet 对象中列的类型和属性信息的对象 。以下代码片段创建 ResultSet 对象 rs,创建 ResultSetMetaData 对象 rsmd,并使用 rsmd 查找 rs 有多少列,以及 rs 中的第一列是否可以在 WHERE 子句中使用 。
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");
ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns = rsmd.getColumnCount();
boolean b = rsmd.isSearchable(1);
以前写过,没有备份代码,用java.sql.ResultSetMetaData很简单就实现了,用rs.getMetaData();可生成其实现类的对象....
如何读取mysql数据库表结构生成对应的java类有个思路就是读取mysql中的系统表(具体那张表忘记java代码读取表结构了java代码读取表结构,自己百度)java代码读取表结构,这张表存了各个表的表结构,也有你各个字段的信息(字段名,类型等等) 。读取这张表你就好自己生成JAVA类了
java数据库表结构中不一定非得有id字段么?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 = https://www.04ip.com/post/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();}}}
java代码读取表结构的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于java获取表字段、java代码读取表结构的信息别忘了在本站进行查找喔 。

    推荐阅读