jdbc链接数据库,获取表名,字段名和数据
2014-11-21 17:29
441 查看
import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.sql.Types; //jdbc链接数据库,获取表名,字段名和数据 public class TestMysql { public static void main(String[] args) throws Exception { String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://127.0.0.1:3306/mysql?useUnicode=true&characterEncoding=UTF-8&createDatabaseIfNotExist=true"; String user = "root"; String password = "mysql0774mysql"; Class.forName(driver); Connection conn = DriverManager.getConnection(url, user, password); if (!conn.isClosed()) System.out.println("Succeeded connecting to the Database!"); else System.err.println("connect filed"); // 获取所有表名 Statement statement = conn.createStatement(); getTables(conn); ResultSet resultSet = statement .executeQuery("select * from help_keyword"); // 获取列名 ResultSetMetaData metaData = resultSet.getMetaData(); for (int i = 0; i < metaData.getColumnCount(); i++) { // resultSet数据下标从1开始 String columnName = metaData.getColumnName(i + 1); int type = metaData.getColumnType(i + 1); if (Types.INTEGER == type) { // int } else if (Types.VARCHAR == type) { // String } System.out.print(columnName + "\t"); } System.out.println(); // 获取数据 while (resultSet.next()) { for (int i = 0; i < metaData.getColumnCount(); i++) { // resultSet数据下标从1开始 System.out.print(resultSet.getString(i + 1) + "\t"); } System.out.println(); } statement.close(); conn.close(); } public static String convertDatabaseCharsetType(String in, String type) { String dbUser; if (in != null) { if (type.equals("oracle")) { dbUser = in.toUpperCase(); } else if (type.equals("postgresql")) { dbUser = "public"; } else if (type.equals("mysql")) { dbUser = null; } else if (type.equals("mssqlserver")) { dbUser = null; } else if (type.equals("db2")) { dbUser = in.toUpperCase(); } else { dbUser = in; } } else { dbUser = "public"; } return dbUser; } private static void getTables(Connection conn) throws SQLException { DatabaseMetaData dbMetData = conn.getMetaData(); // mysql convertDatabaseCharsetType null ResultSet rs = dbMetData.getTables(null, convertDatabaseCharsetType("root", "mysql"), null, new String[] { "TABLE", "VIEW" }); while (rs.next()) { if (rs.getString(4) != null && (rs.getString(4).equalsIgnoreCase("TABLE") || rs .getString(4).equalsIgnoreCase("VIEW"))) { String tableName = rs.getString(3).toLowerCase(); System.out.print(tableName + "\t"); // 根据表名提前表里面信息: ResultSet colRet = dbMetData.getColumns(null, "%", tableName, "%"); while (colRet.next()) { String columnName = colRet.getString("COLUMN_NAME"); String columnType = colRet.getString("TYPE_NAME"); int datasize = colRet.getInt("COLUMN_SIZE"); int digits = colRet.getInt("DECIMAL_DIGITS"); int nullable = colRet.getInt("NULLABLE"); // System.out.println(columnName + " " + columnType + " "+ // datasize + " " + digits + " " + nullable); } } } System.out.println(); // resultSet数据下标从1开始 ResultSet tableRet = //conn.getMetaData().getTables(null, null, "%", new String[] { "TABLE" }); //while (tableRet.next()) { // System.out.print(tableRet.getString(3) + "\t"); //} //System.out.println(); } }
相关文章推荐
- jdbc链接数据库,获取表名,字段名和数据
- jdbc链接数据库名,获取表名、字段名和数据
- jdbc链接数据库,获取表名,字段名和数据
- JAVA通过JDBC链接数据库获取数据(三)PreparedStatement预编译SQL
- JAVA通过JDBC链接数据库获取数据(二)单元测试增删改查
- JAVA通过JDBC链接数据库获取数据(一)
- 构造From窗体获取数据库数据,去除数据库中无用信息,并赋值给字段,最后画出图
- ADO对象——获取数据库字段的数据类型 .
- 通过jdbc获取数据库中的表结构 主键 各个表字段类型及应用生成实体类
- 通过JDBC获取数据库表元数据
- java.jee--jsp--jdbc链接数据库,展示数据
- Qt开发,链接了数据库后,调用QSqlQuery::setQuery执行SQL语句获取我们想要的数据
- 通过jdbc获取数据库表字段信息
- JDBC技术获取数据库时间字段
- PHP中数据库抽象层PDO获取数据表字段名的方法
- 通过jdbc获取数据库中的表结构 主键 各个表字段类型及应用生成实体类
- python读取xml数据库中表内所有数据,获取数据库中所有表的字段名称
- JDBC数据类型与数据库字段对应表——mysql篇
- jdbc操作数据库并自动获取字段类型
- 用jdbc向数据库插入数据后获取生成的主键值