赞
踩
JDBC API是一个Java API,允许用户访问各种类型表列数据,尤其是存储在关系型数据库中的数据。
执行流程:
1.连接数据源,如:数据库。
2.为数据库传递查询和更新指令。
3.处理数据库响应并返回的结果。
先完成以下设置:
JAVA(JDK)安装
数据库系统的安装(如:MySQL的安装)
注:笔者本篇文章使用的是jdk1.8+MySQL8.0。
除了上诉环境配置外,还需要建立一个数据库。本篇文章创建的数据库:mydb,在这个数据库上创建一张表:tb_user。
在IDEA环境导入jar包:
建立一个JDBC应用程序,本文以Java连接MySQL为例,分六个步骤进行:
在程序中包含数据库编程所需的JDBC类。大多数情况下可用import java.sql.*
,即包含所有有关sql操作的类。
//第一步:导入包
import java.sql.*;
//加载JDBC(MySQL)驱动程序
Class.forName("com.mysql.jdbc.Driver");
使用DriverManager.getConnection()
方法获取一个数据库连接,赋值给Connection
创建的对象,如下所示:
static final String DB_URL = "jdbc:mysql://localhost/mydb";
static final String USER = "root";
static final String PASSWORD = "root";
Connection conn = null;
conn = DriverManager.getConnection(DB_URL,USER,PASSWORD);
创建Statement
或PreparedStatement
对象,提交一个查询:
Statement stmt = null;
stmt = conn.createStatement();
String sql;
sql = "SELECT id, name , sex, age FROM tb_user";
ResultSet rs = stmt.executeQuery(sql);
从数据库中获取查询结果中的数据,可以使用合适的ResultSet.getXXX()
的方法来检索数据:
while(rs.next()){
int id = rs.getInt("id");
String name = rs.getString("name");
String sex = rs.getString("sex");
int age = rs.getInt("age");
//打印数据
System.out.println("ID: "+ id +",NAME: "+name + ",SEX: " + sex +",AGE: "+age);
在使用JDBC与数据交互操作数据库后,应明确关闭所有数据库资源以减少资源的浪费:
rs.close();
stmt.close();
conn.close();
package jdbctest; //第一步:导入包 import java.sql.*; public class QueryTest { static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost/mydb?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=UTC"; static final String USER = "root"; static final String PASSWORD = "root"; public static void main(String[] args) { Connection conn = null; Statement stmt = null; try { //第二步:加载JDBC(MySQL)驱动程序 Class.forName("com.mysql.jdbc.Driver"); //第三步:获取数据库连接 conn = DriverManager.getConnection(DB_URL,USER,PASSWORD); stmt = conn.createStatement(); String sql; sql = "SELECT id, name , sex, age FROM tb_user"; //第四步:执行查询 ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ int id = rs.getInt("id"); String name = rs.getString("name"); String sex = rs.getString("sex"); int age = rs.getInt("age"); //第五步:打印数据 System.out.println("ID: "+ id +",NAME: "+name + ",SEX: " + sex +",AGE: "+age); } //第六步:关闭资源 rs.close(); stmt.close(); conn.close(); } catch (SQLException se) { se.printStackTrace(); } catch (Exception e) { e.printStackTrace(); }finally { try{ if(stmt!=null) stmt.close(); }catch(SQLException se2){ } try{ if(conn!=null) conn.close(); }catch(SQLException se){ se.printStackTrace(); } } } }
运行结果如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。