JDBC
什么是JDBC
程序是无法直接访问数据库的,需要安装数据库驱动,数据库驱动的实现是由数据库厂商来实现的。这样的话,每种数据库都有对应驱动,mysql由mysql的驱动,redis有redis的驱动,Java程序需要对每一个数据库定制一套连接方式。为了提高开发的效率,可以在Java与数据库驱动直接添加一层,使程序可以通过同一套代码来操作数据库,这一层就叫做JDBC(Java Database Connectivity),它是SUN公司指定的一套接口,开发时只要调用相关接口即可,显著提高了开发的效率。
配置数据库驱动
- 在对应的数据库厂商网站获取对应的jar包
https://dev.mysql.com/downloads/connector/j/5.1.html
- 将jar包放在lib目录下
- 将lib设置为库文件
JDBC程序
- 加载驱动
- 设置用户信息和url
- 连接数据库,获取数据库对象Connection
- 获取执行SQL的对象Statement
- 通过Statement执行SQL,返回结果集
- 释放连接
package JDBC;
import java.sql.*;
public class Demo01 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1、加载驱动
//DriverManager.registerDriver(new com.mysql.jdbc.Driver())
Class.forName("com.mysql.jdbc.Driver");
//2、用户信息和url
String url = "jdbc:mysql://localhost:3306/school?useUnicode=true&characterEncoding=utf8&useSSL=false";
String username = "root";
String password = "123";
//3、连接成功,返回数据库对象
Connection connection = DriverManager.getConnection(url,username,password);
//4、执行SQL对象
Statement statement = connection.createStatement();
//5、执行SQL的对象去执行SQL,可能存在结果,查看返回结果
String sql = "Select * from student";
ResultSet resultSet = statement.executeQuery(sql);
while(resultSet.next()){
System.out.println("studentno=" + resultSet.getObject("studentno"));
System.out.println("loginpwd=" + resultSet.getObject("loginpwd") );
System.out.println("studentname=" + resultSet.getObject("studentname") );
System.out.println("sex=" + resultSet.getObject("sex"));
System.out.println("phone=" + resultSet.getObject("phone"));
System.out.println("address=" + resultSet.getObject("address"));
}
//6、释放连接
resultSet.close();
statement.close();
connection.close();
}
}
结果
studentno=1000
loginpwd=123456
studentname=张伟
sex=false
phone=13800001234
address=北京朝阳
======================================
studentno=1001
loginpwd=123456
studentname=赵强
sex=true
phone=13800002222
address=广东深圳
======================================