MySQL+Java——数据库查询操作
来源:互联网 发布:淘宝退款原因有哪些 编辑:程序博客网 时间:2024/05/21 10:22
使用Java对MySQL数据库中的数据进行查询是非常常见的操作,在查询过程中,也会有查询所有数据库的的名称、某数据库中所有数据表的名称、某数据表所有字段的名称、某查询语句中字段的名称等需求,本文主要解决以上查询时不常见的需求。
在前期的博客中已经讲解了如何连接数据库,这里既不在赘述,如有需要,请参考以下文章:
JAVA连接MySQL数据库操作
数据库连接代码如下:
class DataBaseConnection { private static final String DRIVER = "com.mysql.jdbc.Driver"; private String URL = "jdbc:mysql://localhost:3306/" + database + "?characterEncoding=utf8&useSSL=true"; private static final String USER = "mysql"; private static final String PASSWORD = "mysql"; public Connection dbConnection(){ Connection con = null; try { Class.forName(DRIVER);//加载驱动程序 con = DriverManager.getConnection(URL, USER, PASSWORD); } catch (ClassNotFoundException e) { JOptionPane.showMessageDialog(null, "加载驱动器失败", "数据库连接", JOptionPane.ERROR_MESSAGE); } catch (SQLException e) { JOptionPane.showMessageDialog(null, "注册驱动器失败", "数据库连接", JOptionPane.ERROR_MESSAGE); } return con; }}
注意:
上述代码中的database为要查询的数据库,可通过某种自定义途径使其变更为想要查询的数据库。或者直接将其写为想要查询的数据库。
如:
private String URL = "jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=true";
一、查询MySQL 中所有数据库的名称
DataBaseConnection dataBaseConnection = new DataBaseConnection(); Connection con = dataBaseConnection.dbConnection(); ResultSet rs = null;// 创建结果集 PreparedStatement prst; Vector<String> dataBaseNames = null; try { prst = con.prepareStatement("show databases"); rs = prst.executeQuery(); dataBaseNames = new Vector<String>(); while(rs.next()){dataBaseNames.add(rs.getString(1));} } catch (SQLException e) { e.printStackTrace(); } //输出数据库名称 System.out.println(dataBaseNames);
二、查询某数据库中左右数据表的名称
只需简单改动上述代码的查询语句即可
DataBaseConnection dataBaseConnection = new DataBaseConnection(); Connection con = dataBaseConnection.dbConnection(); ResultSet rs = null;// 创建结果集 PreparedStatement prst; Vector<String> tableNames = null; try { prst = con.prepareStatement("show tables"); rs = prst.executeQuery(); tableNames = new Vector<String>(); while(rs.next()){dataBaseNames.add(rs.getString(1));} } catch (SQLException e) { e.printStackTrace(); } //输出表名称 System.out.println(tableNames);
三、查询某数据表中全部字段的名称
DataBaseConnection dataBaseConnection = new DataBaseConnection(); final String SELECT = "select * from " + table; String[] titles = null; Connection con = dataBaseConnection.dbConnection(); ResultSet rs = null;// 创建结果集 PreparedStatement prst = null;// 创建一个PreparedStatement对象 prst = con.prepareStatement(SELECT); rs = prst.executeQuery(); ResultSetMetaData metaData = rs.getMetaData(); int column = metaData.getColumnCount(); /* * 获取表格字段名称 */ titles = new String[column]; for(int i=0;i<column;i++){ titles[i] = metaData.getColumnLabel(i+1); //titles[i] = metaData.getColumnName(i+1); } //输出字段名称 for(int i=0;i<titles.length;i++){ System.out.println(titles[i]); }
注意:代码中的table泛指数据表,同样可通过某种途径使其变更为想要查询的数据表。
四、某查询语句中的字段名称
DataBaseConnection dataBaseConnection = new DataBaseConnection(); Connection con = dataBaseConnection.dbConnection(); ResultSet rs = null;// 创建结果集 PreparedStatement prst = null;// 创建一个PreparedStatement对象 prst = con.prepareStatement("select sepal_length,sepal_width from iris"); String[] columnName = null; try { rs = prst.executeQuery(); ResultSetMetaData metaData = rs.getMetaData(); int column = metaData.getColumnCount(); columnName = new String[column]; for(int i=0;i<columnName.length;i++){ columnName[i] = metaData.getColumnName(i+1); } //输出查询的部分字段名称 for(int i=0;i<columnName.length;i++){ System.out.println(columnName[i]); } }catch (Exception e) { e.printStackTrace(); }
备注:
三和四的原理是一样的,只是在不同需求下会有不同的用处,三主要针对的是整个数据表,四主要针对的是单个查询语句。如果该查询语句所查询的数据库为整个数据表的数据,则两者效果是一样的,注意区分。
阅读全文
0 0
- MySQL+Java——数据库查询操作
- MySQL数据库查询操作
- 【java 操作mysql】java连接mysql数据库并查询数据
- MySQL数据库——子查询的基本操作
- java类——操作MySql数据库
- mysql数据库查询操作类
- java数据库编程——执行查询操作(一)
- java数据库编程——执行查询操作(二)
- Java——JDBC操作数据库,分页查询
- java操作数据库MYSQL
- java操作mysql数据库
- java操作mysql数据库
- JAVA操作mysql数据库
- java 操作mysql数据库
- java操作mysql数据库
- JAVA数据库查询操作(JDBC)
- JDBC java对MySQL数据库进行查询操作,并把查询的结果输出
- java连接mysql查询操作
- python使用scrapy爬取qq音乐(一)
- 影响CCD的噪声
- 算法与数据结构-二叉树的基本操作C语言实现
- 七层总结
- 利用二进制解决一些问题
- MySQL+Java——数据库查询操作
- python 三引号
- PHP判断是否手机端或PC端访问
- MongoDB学习笔记
- 清华大学2008年机试-手机键盘-1079
- 基于hive0.13.1的spark1.6.0源码编译说明
- 以太坊ethereum相关网站
- 521_pulltorefreshScrollview不能全屏
- jQuery实现的平滑滚动选项卡