目录
3、建立Statement或PreparedStatement
一、什么是JDBC?
JDBC(Java Database Connectivity) 为Java应用程序访问 关系数据库提供统一的访问接口。用这些接访问接口,Java程序可以用相同的方式对多种关系数据库进行访问,实现数据库连接、执行SQL语句等操作。
JDBC使得程序开发人员在编程时可以不用绑定在特定数据库厂商的API上,大大增加了应用程序的可移植性。
二、JDBC访问数据库示意图
三、使用JDBC需要做的准备
使用jdbc需要在项目中导入数据库对应版本的驱动程序,一般是一个jar包的形式,以MySQL为例
1、首先查看当前数据库的版本
在dos窗口下使用命令:mysql -V
图示为5.7.19版本
2、在如下网址中下载对应版本的驱动包
3、下载后导入到工程中
以IDEA为例,在工程中新建一个lib目录(Directory) ,将下好的驱动包拷贝到这里,然后右键点击,add as library
四、编写JDBC程序
1、注册JDBC驱动
有2种注册方式:
(1)使用Class.forName()方法进行注册。
(2)使用DriverManager.registerDriver()方法进行注册。
//方式1注册:通常采用这种方式,固定写法
Class.forName("com.mysql.jdbc.Driver");
//方式2注册:
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
2、获取数据库连接
使用DriverManager.getConnection() 获取数据连接:
Connection con = DriverManager.getConnection(url, user, pwd);
其中:
url:数据库资源位置
user:用户名
pwd:密码
String url = "jdbc:mysql://localhost:3306/db01"; //数据库资源位置,db01是具体要访问的数据库名,前面为固定写法
String userName = "root";
String password = "123456";
Connection con = DriverManager.getConnection(url,userName,password);
3、建立Statement或PreparedStatement
Statement是一个SQL执行器,可以用来执行一个静态的SQL语句。
PreparedStatement是一个预编译SQL语句执行器,它允许将sql语句的一部分暂时置空,待后续设置
它们的对象都有执行sql语句的方法如: executeUpdate(sql)执行更新,executeQuery(sql)等
Statement stmt = con.createStatement();
String sql="delete from user where name = 'root' ";
stmt.executeUpdate(sql);
4、处理ResultSet
ResultSet表示一个查询结果集。当第3步中执行的是查询操作,即“select语句”,则执行完之后将会返回一个记录的集合,其类型是ResultSet
ResultSet是一个集合类型,可以通过遍历,获取其中所有的数据。
String sql = "select * from goods"; //goods表中有三个字段,分别为 id int, name varchar,price double
//4、通过Ststement对象执行sql语句,用一个结果集来接收
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()) {
System.out.print("商品id = " + rs.getInt(1));
System.out.print(" 商品名称 = " + rs.getString(2));
System.out.print(" 商品价格 = " + rs.getDouble(3));
System.out.println(); //换行
}
5、释放资源
按照打开顺序的逆序依次关闭资源(后打开的先关闭)
rs.close();
stmt.close();
con.close();
五、完整代码
import java.sql.*; //涉及到的包都在java.sql下,所以可直接导入java.sql.*
public class Test01 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1、注册jdbc驱动
Class.forName("com.mysql.jdbc.Driver");
//2、获取数据库连接对象
String url = "jdbc:mysql://localhost:3306/db01"; //数据库资源位置,db01是具体要访问的数据库名
String userName = "root";
String password = "123456";
Connection con = DriverManager.getConnection(url,userName,password);
//3、创建Statement对象
Statement stmt = con.createStatement();
String sql = "select * from goods"; //goods表中有三个字段,分别为 id int, name varchar,price double
//4、通过Ststement对象执行sql语句,用一个结果集来接收
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()) {
System.out.print("商品id = " + rs.getInt(1));
System.out.print(" 商品名称 = " + rs.getString(2));
System.out.print(" 商品价格 = " + rs.getDouble(3));
System.out.println(); //换行
}
//5、按打开顺序的逆序关闭资源(后打开的先关闭)
rs.close();
stmt.close();
con.close();
System.out.println("操作完毕。");
}
}
执行结果: