怎样利用JDBC获得连接,查询数据,获取查询的数据?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样利用JDBC获得连接,查询数据,获取查询的数据?相关的知识,希望对你有一定的参考价值。
去网上找个mysql驱动jar包,不同的数据库只需要改加载驱动和得到连接的参数就可以了,具体参数去网上搜下,额对,还需要找对应的jar包import java.sql.*;
public class Test1
public static void main(String args[])throws Exception
//测试mysql数据库
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.得到一个连接
Connection con=DriverManager.getConnection("jdbc:mysql://192.168.1.24:3306/etoak","root","root");
//jdbc:mysql mysql数据库协议
//localhost:连接的主机名称,3306 mysql数据库端口号
//etoak 数据库名称
//3.封装sql语句
String insert="insert into student value(6,'ek','ek')";
//4.得到一个执行sql语句的对象
Statement sta=con.createStatement();
//5执行sql语句
sta.execute(insert);
//6.关闭流
sta.close();
con.close();
参考技术A Java中有个元数据,交MetaData,这个是记录数据库和表本身信息的信息,
ResultSet rs=st.executeQuery("select * from student2");
//获取结果集元数据
ResultSetMetaData rsmd=rs.getMetaData();
//总列数
int size=rsmd.getColumnCount();
//打印列名
for(int i=1;i<=size;i++)
System.out.print(rsmd.getColumnName(i)+"\t");
System.out.println();
//打印列在数据库中的类型
for(int i=1;i<=size;i++)
System.out.print(rsmd.getColumnTypeName(i)+"\t");
System.out.println();
//打印列的类型大小
for(int i=1;i<=size;i++)
System.out.print(rsmd.getColumnDisplaySize(i)+"\t");
System.out.println();
//别名
for(int i=1;i<=size;i++)
System.out.print(rsmd.getColumnLabel(i)+"\t");
System.out.println();
//打印结果集中数据
while(rs.next())
for(int i=1;i<=size;i++)
System.out.print(rs.getString(i)+"\t");
System.out.println();
希望对你有用
使用 JDBC 连接 MySQL 数据库并进行数据查询操作
2017-10-30
接上一篇文章(利用 Java io 包进行文件读写操作),在这里我将总结使用 JDBC 连接 MySQL 数据库,并进行数据查询操作的方法。
场景
使用 JDBC 连接数据库查询数据,返回到前端,前端再使用 JS 插件对数据进一步操作。
考察知识点
- JDBC 连接
- 给出插件的 API,考察当场学习新知识的速度
数据
我使用数据库是 cjl_demo,查询的表是 stu,该表下有数据:
首先给出代码示例
我也将代码托管在码云平台,可以前往参考:https://gitee.com/jinglun404/jdbc-demo
1 import java.sql.*; 2 3 /** 4 * 使用JDBC查询mysql数据库示例 5 */ 6 public class Main { 7 8 public static void main(String[] args) { 9 10 try { 11 // 1.反射获取mysql驱动实例 12 Class.forName("com.mysql.jdbc.Driver"); 13 } catch (ClassNotFoundException e) { 14 System.out.println("找不到驱动程序类,加载驱动失败!"); 15 e.printStackTrace(); 16 } 17 18 String url = "jdbc:mysql://localhost:3306/cjl_demo"; 19 String username = "username"; 20 String password = "password"; 21 try { 22 // 2.驱动实例->Connection 23 Connection conn = DriverManager.getConnection(url, username, password); 24 25 // 3.Connection->Statement 26 Statement stmt = conn.createStatement(); 27 28 // 4.Statement->ResultSet 29 String sql = "select * from stu"; 30 ResultSet rs = stmt.executeQuery(sql); 31 32 // 5.通过ResultSet获取数据 33 while (rs.next()) { 34 String id = rs.getString("id"); 35 String name = rs.getString("name"); 36 String score = rs.getString("score"); 37 String sex = rs.getString("sex"); 38 String theClass = rs.getString("class"); 39 System.out.println(id + "--" + name + "--" + score + "--" + sex + "--" + theClass); 40 /** 41 * 1--a--66--男--1 42 * 2--b--82--女--2 43 * 3--c--77--男--1 44 * 4--d--90--女--2 45 * 5--e--90--女--1 46 */ 47 } 48 49 // 6.依次关闭ResultSet,Statement,Connection 50 if (rs != null) { 51 try { 52 rs.close(); 53 } catch (SQLException e) { 54 System.out.println("ResultSet关闭时出现错误!"); 55 e.printStackTrace(); 56 } 57 } 58 if (stmt != null) { 59 try { 60 stmt.close(); 61 } catch (SQLException e) { 62 System.out.println("Statement关闭时出现错误!"); 63 e.printStackTrace(); 64 } 65 } 66 if (conn != null) { 67 try { 68 conn.close(); 69 } catch (SQLException e) { 70 System.out.println("Connection关闭时出现错误!"); 71 e.printStackTrace(); 72 } 73 } 74 75 } catch (SQLException e) { 76 System.out.println("数据库连接失败!"); 77 e.printStackTrace(); 78 } 79 } 80 }
说明
先来看一张图,这张图总结了使用 JDBC 连接数据库操作的过程
不难理解,JDBC 连接数据库并进一步操作,步骤可大致总结为:
- 导入相应数据库的驱动包
- 通过反射加载相应数据库驱动实例
- 有 DriverManager 获取 Connection 实例
- 通过 Connection 实例获取 Statement 实例
- 通过 Statement 实例操作数据库,并返回 ResultSet
- 通过 ResultSet 获取查询的数据
- 依次关闭 ResultSet、Statement、Connection
注意
我在上面的总结中,总结的是使用 JDBC 查询的操作,当然,除此之外,还可以利用 JDBC 进行插入数据、更新数据操作。
而这不同操作的区别在于使用不同的 Statement 方法:
- ResultSet executeQuery(String sqlString):执行查询数据库的 SQL 语句,返回一个结果集(ResultSet)对象。
- int executeUpdate(String sqlString):用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL 语句,如:CREATE TABLE 和 DROP TABLE 等,返回操作影响的行数。
- boolean execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的语句,返回一个 boolean 值。
参考网站
http://www.cnblogs.com/hongten/archive/2011/03/29/1998311.html
http://www.cnblogs.com/lee/archive/2007/08/25/869656.html
以上是关于怎样利用JDBC获得连接,查询数据,获取查询的数据?的主要内容,如果未能解决你的问题,请参考以下文章
javaWeb_JDBC_利用反射以及JDBC元数据编写通用的查询方法
JDBC课程5--利用反射及JDBC元数据(ResultSetMetaData)编写通用的查询方法