怎样利用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 连接数据库并进一步操作,步骤可大致总结为:

  1. 导入相应数据库的驱动包
  2. 通过反射加载相应数据库驱动实例
  3. 有 DriverManager 获取 Connection 实例
  4. 通过 Connection 实例获取 Statement 实例
  5. 通过 Statement 实例操作数据库,并返回 ResultSet
  6. 通过 ResultSet 获取查询的数据
  7. 依次关闭 ResultSet、Statement、Connection

注意

我在上面的总结中,总结的是使用 JDBC 查询的操作,当然,除此之外,还可以利用 JDBC 进行插入数据、更新数据操作。

而这不同操作的区别在于使用不同的 Statement 方法:

  1. ResultSet executeQuery(String sqlString):执行查询数据库的 SQL 语句,返回一个结果集(ResultSet)对象。
  2. int executeUpdate(String sqlString):用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL 语句,如:CREATE TABLE 和 DROP TABLE 等,返回操作影响的行数。 
  3. 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查询方法

JDBC课程5--利用反射及JDBC元数据(ResultSetMetaData)编写通用的查询方法

如何在没有连接的情况下查询多个相关表,并使用 JDBC 获得一致的数据?

jdbc连接数据库

JDBC — 学习大纲