JDBC
数据库驱动
驱动:声卡,显卡,数据库。。。
我们的程序会通过 数据库驱动, 和数据库打交道
JDBC
SUN公司为了简化开发人员的(对数据的统一)操作,提供了一个(Java操作数据库的)规范,俗称JDBC
需要的包
java.sql
javax.sql
还要导入一个数据库驱动包
mysql-connector-java-5.1.47.jar
第一个JDBC程序
1、在数据库中准备一个调试的数据库
CREATE DATABASE jdbcstudy CHARACTER SET utf8 COLLATE utf8_general_ci;
USE jdbcstudy;
CREATE TABLE users(
id INT PRIMARY KEY,
`name` VARCHAR(40),
`password` VARCHAR(40),
email VARCHAR(60),
birthday DATE
);
INSERT INTO users(id,`name`,`password`,email,birthday)
VALUES(1,'zhangsan','123456','zs@sina.com','1980-12-04'),
(2,'lisi','123456','ls@sina.com','1991-12-04'),
(3,'wangwu','123456','ww@sina.com','1997-12-04');
2、创建一个普通项目
**3、导入驱动目录
- 在项目中创建一个lib包
- 将jar包导入lib包中**
- 右键lib包,Add as Library
- 成功后
4、编写测试代码
步骤:
- 加载驱动
- 连接数据库 DriverManager
- 获得执行SQL的对象 statement
- 获得返回的结果集合
- 释放连接
package com.database.lesson01;
import java.sql.*;
public class JdbcFirst {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1.加载驱动
//固定写法,加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.用户信息与url
//useUnicode=true&charaterEncoding=utf8&useSSL=true
String url = "jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&charaterEncoding=utf8&useSSL=true";
String username = "root";
String password = "123456";
//3.连接成功,数据库对象 Connection 代表数据库
Connection connection = DriverManager.getConnection(url, username, password);
//4.执行SQL的对象 Statement 执行SQL的对象
Statement statement = connection.createStatement();
//5.执行SQL的对象 去 执行SQL,可能存在结果,查看返回的结果
String sql = "SELECT * FROM users";
//返回的结果集,结果集中封装了我们全部的查询结果
ResultSet resultSet = statement.executeQuery(sql);//
while(resultSet.next()){
System.out.println("id = " + resultSet.getObject("id"));
System.out.println("name = " + resultSet.getObject("name"));
System.out.println("pwd = " + resultSet.getObject("password"));
System.out.println("email = " + resultSet.getObject("email"));
System.out.println("birthday = " + resultSet.getObject("birthday"));
System.out.println("============================= ");
}
//6.释放连接
resultSet.close();
statement.close();
connection.close();
}
}
JDBC中对象解释
确保lib添加到了目录
1、DriverManager
加载驱动的实质代码,如果按照上一句注释的代码注册,实际就注册了两次,不建议使用
//3.连接成功,数据库对象 Connection 代表数据库
Connection connection = DriverManager.getConnection(url, username, password);
返回的对象connection 代表数据库
可进行的操作:数据库设置自动提交,事务提交,事务回滚
2、URL
String url = "jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&charaterEncoding=utf8&useSSL=true";
// MYSQL默认端口号---3306
// 协议(jdbc.mysql)://主机地址:端口号/数据库名?参数1&参数2&参数3
// oracle默认端口号---1521
// jdbc:oracle:thin:@localhost:1521:sid
3、 Statement对象
这是执行SQL的对象,还有一个PreparedStat对象,见后面博客
4、ResultSet查询的结果集
封装了所有的查询结果
ResultSet resultSet = statement.executeQuery(sql);//
while(resultSet.next()){
System.out.println("id = " + resultSet.getObject("id"));
System.out.println("name = " + resultSet.getObject("name"));
System.out.println("pwd = " + resultSet.getObject("password"));
System.out.println("email = " + resultSet.getObject("email"));
System.out.println("birthday = " + resultSet.getObject("birthday"));
System.out.println("============================= ");
}
5、释放资源