JDBC学习笔记——Java语言与数据库的鹊桥
JDBC(Java DataBase Connectivity):SUN公司提供的 一套操作数据库的标准规范,说白了就是用Java语言来操作数据库。
原来我们是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句。
SUN提供一套访问数据库的规范(就是一组接口),并提供连接数据库的协议标准,
然后各个数据库厂商会遵循SUN的规范提供一套访问自己公司的数据库服务器的API。
SUN提供的规范命名为JDBC,而各个厂商提供的,遵循了JDBC规范的,可以访问自己数据库的API被称之为驱动!
JDBC与数据库驱动的关系:接口与实现的关系。
JDBC规范(四个核心对象):
DriverManager:用于注册驱动
Connection: 表示与数据库创建的连接
Statement: 操作数据库sql语句的对象
ResultSet: 结果集或一张虚拟表
开发一个JDBC程序的准备工作:
实现JDBC操作一般流程
1、注册驱动
2、创建连接
3、得到执行sql语句的Statement对象
4、执行sql语句,并返回结果
5、处理结果
JDBC(Java DataBase Connectivity):SUN公司提供的 一套操作数据库的标准规范,说白了就是用Java语言来操作数据库。
原来我们是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句。
SUN提供一套访问数据库的规范(就是一组接口),并提供连接数据库的协议标准,
然后各个数据库厂商会遵循SUN的规范提供一套访问自己公司的数据库服务器的API。
SUN提供的规范命名为JDBC,而各个厂商提供的,遵循了JDBC规范的,可以访问自己数据库的API被称之为驱动!
JDBC与数据库驱动的关系:接口与实现的关系。
JDBC规范(四个核心对象):
DriverManager:用于注册驱动
Connection: 表示与数据库创建的连接
Statement: 操作数据库sql语句的对象
ResultSet: 结果集或一张虚拟表
开发一个JDBC程序的准备工作:
> 下载数据库厂商提供的驱动:jar文件,放入Referenced Libraries
1、注册驱动
2、创建连接
3、得到执行sql语句的Statement对象
4、执行sql语句,并返回结果
5、处理结果
6、关闭资源
下面贴一个简单代码(麻雀虽小,帮助理解JDBC)
package com.itheima.jdbcdemo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import org.junit.Test;//JUnit是一个Java语言的单元测试框架
//使用JDBC技术实现查询数据库数据,并显示在控制台中
public class Demo {
@Test
public void test1() throws Exception {
//注册驱动
//方式一(不建议使用,原因:1.导致驱动被注册2次。2.强烈依赖数据库的驱动jar)
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
//方式二(加载驱动)
Class.forName("com.mysql.jdbc.Driver");
//获取连接Connection
//方式一
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day06", "root", "abc");
//方式二
Properties info = new Properties();
info.setProperty("user", "root");
info.setProperty("password", "abc");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day06", info);
//方式三
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day06?user=root&password=abc");
//得到执行sql语句的对象Statement
Statement stmt = conn.createStatement();
//执行sql语句,并返回结果
ResultSet rs = stmt.executeQuery("select id,name,password,email,birthday from users");
//处理结果
while(rs.next()){
System.out.println(rs.getObject(1));
System.out.println(rs.getObject(2));
System.out.println(rs.getObject(3));
System.out.println(rs.getObject(4));
System.out.println(rs.getObject(5));
System.out.println("-----------------");
}
//关闭资源
rs.close();
stmt.close();
conn.close();
}