jdbc链接数据库,获取表名,字段名和数据
- 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链接数据库,获取表名,字段名和数据的更多相关文章
- MySql 获取表的字段名
mysql安装成功后可以看到已经存在mysql.information_schema和test这个几个数据库,information_schema库中有一个名为COLUMNS的表,这个表中记录了数据库 ...
- 获取sqlserver数据库中所有库、表、字段名的方法
获取sqlserver数据库中所有库.表.字段名的方法 2009年03月12日 星期四 下午 12:51 1.获取所有数据库名: SELECT Name FROM Master..SysDatabas ...
- Sqlserver列出所有数据库名,表名,字段名
Sqlserver列出所有数据库名,表名,字段名 1.获取所有数据库名: ? 1 SELECT Name FROM Master..SysDatabases ORDER BY Name 注 ...
- 4、原生jdbc链接数据库常用资源名
原生jdbc链接数据库要素:#MySql:String url="jdbc:mysql://localhost:3306/数据库名";String name="root& ...
- [SQL]某数据库中查出包含 字段名 的所有表名
--利用SQL语句来查询字段所在的表 --从某数据库中查出包含 字段名 字段的所有表名 SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE ...
- KO ------- 表中字段名和实体类属性名不一致
-----------------------siwuxie095 KO ------- 表中字段名和实体类属性名不一致 如果数据库表中的字段名和实体类的属性名不一致,那么在查询时, 相应字段的结果就 ...
- postgress数据库 出现大写字母 字段名但是提示说不存在
select BSK001 from dbdata 报错: column "bsk001" of relation "dbdata" does not exis ...
- 数据库的表的字段名称与实体类(pojo)不对应解决方案
数据库的表的字段名称与实体类(pojo)不对应解决方案 数据库表 . http ...
- 六步破解win2008R2登录密码
防火墙没有开启,win2008R被当成矿机,只好重新破解密码进去解决问题,试了好多方法,下列方法绝对实用简单. 破解2008登录密码的方法: 1.进入PE2.找到文件:windows\system32 ...
- js本地图片预览,兼容ie[6-9]、火狐、Chrome17+、Opera11+、Maxthon3
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- linux rename 和?????
[root@ob2 mytmp]# ls01.txt 02.txt 03.txt aa2.txt aa.sh aa.txt tp_2017-09-143516.tar.gz tt [ro ...
- JetBrains PyCharm 4.0.4 key
用户名 yueting3527 注册码 ===== LICENSE BEGIN ===== 93347-12042010 00001FMHemWIs"6wozMZnat3IgXKXJ 2!n ...