JDBC
数据库驱动
JDK提供jdbc接口,就是java怎样去调用数据库,但是注意提供的只是接口,数据库提供商实现这些接口,就是所谓数据库驱动。java调用数据库驱动,驱动真正执行数据库操作。
常用数据库的驱动程序驱动程序包名:
Oracle数据库:
驱动类的名字:oracle.jdbc.driver.OracleDriver JDBC URL:jdbc:oracle:thin:@dbip:port:databasename 说明:驱动程序包名有可能会变 JDBC URL中各个部分含义如下: dbip –为数据库服务器的IP地址,如果是本地可写:localhost或127.0.0.1。 port –为数据库的监听端口,需要看安装时的配置,缺省为1521。 databasename –为数据库的SID,通常为全局数据库的名字。
SQL Server数据库:
驱动程序包名:msbase.jar mssqlserver.jar msutil.jar 驱动类的名字:com.microsoft.jdbc.sqlserver.SQLServerDriver JDBC URL:jdbc:microsoft:sqlserver://dbip:port;DatabaseName=databasename 说明:驱动程序包名有可能会变 JDBC URL中各个部分含义如下: dbip –为数据库服务器的IP地址,如果是本地可写:localhost或127.0.0.1。 port –为数据库的监听端口,需要看安装时的配置,缺省为1433。 databasename –数据库的名字。
MySQL数据库:
驱动程序包名:mysql-connector-Java-3.1.11-bin.jar 驱动类的名字:com.mysql.jdbc.Driver / com.mysql.cj.jdbc.Driver JDBC URL:jdbc:mysql://dbip:port/databasename 说明:驱动程序包名有可能会变 JDBC URL其中各个部分含义如下: dbip –为数据库服务器的IP地址,如果是本地可写:localhost或127.0.0.1。 port –为数据库的监听端口,需要看安装时的配置,缺省为3306。 databasename –数据库的名字。
对于开发人员,只需掌握JDBC的接口操作即可
java.sql
javax.sql
数据库驱动包:mysql-connector-java-5.1.47.jar
第一个JDBC程序
1、创建一个普通Java项目
2、准备数据库驱动包
新建一个lib目录,导入jar包,右键选中add as Library
3、数据库设计准备:
create database jdbc_study character set utf8 COLLATE utf8_general_ci;
use jdbc_study;
create table users(
id int primary key,
`name` varchar(20),
`password` varchar(20),
email varchar(30),
birthday TIMESTAMP
);
insert into users(id,`name`,`password`,email,birthday)
values(1,'Joey','111111','3@.com','2020-1-1'),
(2,'Rose','122221','4@.com','2020-2-1'),
(3,'Mike','133331','2@.com','2020-2-5');
4、编写测试代码
package com.hch.jdbc;
import java.sql.*;
public class Demo01_TestJDBC {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1、加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//2、用户信息和url
String url = "jdbc:mysql://localhost:3306/jdbc_study?useUnicode=true&characterEncoding=utf8&useSSL=true";
String username = "root";
String password = "hch520";
//3、连接成功,数据库对象 connection代表数据库
Connection connection = DriverManager.getConnection(url, username, password);
//4、执行sql对象
Statement statement = connection.createStatement();
//5、用Sql对象去执行sql
String sql = "select * from users";
ResultSet resultSet = statement.executeQuery(sql); //resultSet返回的结果集,封装了全部查询对象
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("birth"+resultSet.getObject("birthday"));
}
//6、释放连接
resultSet.close();
statement.close();
connection.close();
}
}
步骤总结:
1、加载驱动
2、连接数据库DriverManager
3、获得执行sql的对象
Statement
4、获得返回的结果集(查询的)
5、释放连接
DriverManager
Class.forName("com.mysql.cj.jdbc.Driver"); //固定写法
Connection connection = DriverManager.getConnection(url, username, password);
//connection 代表数据库
//数据库设置自动提交
connection.setAutoCommit();
//事务提交
connection.commit();
//事务滚回
connection.rollback();
URL
String url = "jdbc:mysql://localhost:3306/jdbc_studyuseUnicode=true&characterEncoding=utf8&useSSL=true";
//mysql --3306
//协议://主机名:端口号/数据库名?参数1&参数2&...
Statement执行SQL的对象 PrepareStatement执行SQL的对象
String sql = "Select * from users"; //编写SQL
statement.excuteQuery(); //查询操作返回的 ResultSet
statement.excute(); //执行任何SQL
statement.excuteUpdate(); //更新,插入,删除理论上都是修改都用这个,返回一个受影响的行数
ResultSet 查询的结果集 : 封装了所有的查询结果
获得指定的数据类型:
resultSet.getObject()
resultSet.getInt()
resultSet.getString()
resultSet.getFloat()
resultSet.getDate()
释放资源:
resultSet.close();
statement.close();
connection.close();