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)不对应解决方案 数据库表 .当时锤子公布会我看了直播.就是想看看在微博上吹翻了的手机究竟有多厉害.或者仅仅是一个笑话,事实上也希望国产手机可以有所突破,而不是一致的拼配置和简单的搞点 ...
- Smack 广播
格式 Message message = new Message("all@broadcast.192.168.1.253"); 使用openfire的广播功能首先需要在插件的页面 ...
- JVM Client Server启动设置
看看你下面的这两个文件,是不是尺寸差别很大?%JAVA_HOME%/jre/bin/client/jvm.dll%JAVA_HOME%/jre/bin/server/jvm.dll Jvm动态库有 ...
- BusyBox rcS&fstab配置
rcS为系统初始化脚本,完成最开始的一些配置工作,可开启应用程序. #!/bin/shmount -a ;mount文件,要mount的文件有fstab指定. . /etc/profile ...
- wireshark教程(一)
按照国际惯例,从最基本的说起. 抓取报文: 下载和安装好Wireshark之后,启动Wireshark并且在接口列表中选择接口名,然后开始在此接口上抓包.例如,如果想要在无线网络上抓取流量,点击无线接 ...
- Zend Studio 配置
2.更改Zend字体 依次进入Window——Preferences——General——Appearance——Colors and Fonts——Basic——Text Font进行修改,偶还是喜 ...
- datanode启动失败
当我动态加入一个hadoop从节点的之后,出现了一个问题: [root@hadoop current]# hadoop-daemon.sh start datanode starting datano ...
- linux 批量创建用户获取8位随机密码
#创建账号 分组不分组只有一列useradd无法添加三个账号 添加账号 获取密码 执行最后一句echo stu{4..6}|xargs -n 1|sed -r 's#(.*)#useradd \ ...
- 关于Unity的入门游戏飞机大战的开发(上)
每个组件都是一个类的实例,要获得某个组件,要先创建一个同类型的组件类实例,然后把实例传引用过去,就可以对想要的组件实例进行操作. 做游戏一般创建一个逻辑节点,里面只管逻辑,再创建一个动画节点,里面有好 ...
- VNC轻松连接远程Linux桌面(1)
Linux平台安装VNCServer Windows平台使用VNC-Viewer 方法/步骤 在Linux平台安装VNCServer服务端软件包. #yum -y install vnc *v ...