/*
*作者:呆萌老师
*☑csdn认证讲师
*☑51cto高级讲师
*☑腾讯课堂认证讲师
*☑网易云课堂认证讲师
*☑华为开发者学堂认证讲师
*☑爱奇艺千人名师计划成员
*在这里给大家分享技术、知识和生活
*各种干货,记得关注哦!
*/
Java中给我们提供专门的一套技术,可以通过其中的那些类和接口操作任何的数据库,这个技术就是今天要学习的JDBC。
编辑
JDBC的常用类和接口
JDBC有关的类:都在java.sql 和 javax.sql 包下
编辑
DriverManager : 数据库驱动管理类 注册驱动
Connection: 接口, 建立数据库连接的一个接口。
Statement、PreparedStatement、CallbackStatement: 向数据库发送sql,并且得到数据库的返回信息。
ResultSet: 结果集。 Statement 发送sql语句,得到的结果 封装在 ResultSet 中。
JDBC编程步骤详解
编辑
DriverManager 驱动管理类
作用:Jdbc程序中的DriverManager用于加载驱动,并创建与数据库的链接
目标:掌握Class.forName("com.mysql.jdbc.Driver"), 从哪里来的?
1、注册一个JDBC驱动程序
static void
registerDriver(Driver driver)
向 DriverManager 注册给定驱动程序。
DriverManager.registerDriver(new Driver());
注意:在实际开发中并不推荐采用registerDriver方法注册驱动。
原因:
1、对驱动API的依赖性太高。
2、驱动会注册两次。(因为mysql的驱动类Driver中已经注册一次了)
推荐方式:
// 将驱动类加载到内存中,会自动执行静态代码块中的内容
Class.forName("com.mysql.jdbc.Driver");
我们来看看com.mysql.jdbc.Driver类的源代码:
com.mysql.jdbc.Driver.java
public class Driver extends NonRegisteringDriver implements java.sql.Driver {static {
try {
java.sql.DriverManager.registerDriver(new Driver());
} catch (SQLException E) {
throw new RuntimeException("Can't register driver!");
}
}
……
}
com.mysql.jdbc.Driver类中的static块会创建本类对象,并注册到DriverManager中。这说明只要去加载com.mysql.jdbc.Driver类,那么就会执行这个static块,从而也就会把com.mysql.jdbc.Driver注册到DriverManager中,
所以可以把注册驱动类的代码修改为加载驱动类。
2、建立数据库的连接:
static Connection
getConnection(String url, String user, String password)
试图建立到给定数据库 URL 的连接。
参数详解:
url :连接到具体的数据库
user : 数据用户名
password : 数据库密码
DriverManager.getConnection("jdbc:mysql://localhost:3306/day07", "root", "123");
3、URL介绍:指定一个具体的数据库
作用:URL用于标识数据库的位置,程序员通过URL地址告诉JDBC程序连接哪个数据库
语法格式:jdbc:mysql:// localhost:3306/数据库名?key=value
简写形式:jdbc:mysql:///数据库名 等价于 jdbc:mysql://localhost:3306/数据库名
简写要求:必须是本地数据库,端口号必须是3306
不建议使用简写方式
常用属性:useUnicode=true&characterEncoding=UTF-8
解决问题:中文乱码异常
举例:jdbc:mysql://localhost:3306/day07?useUnicode=true&characterEncoding=utf8
更多了解
https://edu.51cto.com/lecturer/14175030.html