JDBC概述
JDBC:java database connectivity SUN公司提供的一套操作数据库的标准规范。
JDBC与数据库驱动的关系:接口与实现的关系。
JDBC规范(掌握四个核心对象):
- DriverManager:用于注册驱动
- Connection: 表示与数据库创建的连接
- Statement: 操作数据库sql语句的对象
- ResultSet: 结果集或一张虚拟表
开发一个JDBC程序(重要)
创建数据库表,并向表中添加测试数据
<--创建数据库--> create database mytest1; use mytest1; <--创建数据库表--> create table users( id int primary key auto_increment, name varchar(40), password varchar(40), email varchar(60), birthday date )character set utf8 collate utf8_general_ci; <--添加数据--> insert into users(name,password,email,birthday) values('zs','123456','zs@sina.com','1980-12-04'); insert into users(name,password,email,birthday) values('lisi','123456','lisi@sina.com','1981-12-04'); insert into users(name,password,email,birthday) values('wangwu','123456','wangwu@sina.com','1979-12-04');
创建java project项目,添加数据库驱动(*.jar)
实现JDBC操作
- 注册驱动 - 创建连接 - 得到执行sql语句的Statement对象 - 执行sql语句,并返回结果 - 处理结果 - 关闭资源
example:
public class demo01 { public static void main(String[] args) throws Exception{ // TODO Auto-generated method stub //1、注册驱动 //DriverManager.registerDriver(new com.mysql.jdbc.Driver()); //1.加载驱动 Class.forName("com.mysql.jdbc.Driver"); //2、创建连接 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mytest1", "root", "root"); //3、得到执行sql语句的Statement对象 Statement stmt = conn.createStatement(); //4、执行sql语句,并返回结果 String sql = "select id,name,password,email,birthday from users"; ResultSet rs = stmt.executeQuery(sql); //5、处理结果 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)); } //6关闭资源 rs.close(); stmt.close(); conn.close(); } }
JDBC常用的类和接口详解
java.sql.Drivermanager类 : 创建连接
注册驱动
DriverManager.registerDriver(new com.mysql.jdbc.Driver());不建议使用
原因有2个:- 导致驱动被注册2次。
- 强烈依赖数据库的驱动jar
解决办法:
用Class.forName("com.mysql.jdbc.Driver");代替。
与数据库建立连接
static Connection getConnection(String url, String user, String password) getConnection("jdbc:mysql://localhost:3306/mytest1", "root", "root"); URL:SUN公司与数据库厂商之间的一种协议。 jdbc:mysql://localhost:3306/day06 协议 子协议 IP:端口号 数据库 mysql: jdbc:mysql://localhost:3306/day14 或者 jdbc:mysql:///day14(默认本机连接) oracle: jdbc:oracle:thin:@localhost:1521:sid Properties info = new Properties();//要参考数据库文档 info.setProperty("user", "root"); info.setProperty("password","root"); getConnection(String url, Properties info) getConnection(String url) DriverManager.getConnection("jdbc:mysql://localhost:3306/day14?user=root&password=root");
GitHub IssuesGitHub Discussions