JDBC简介
/* *作者:呆萌老师 *☑csdn认证讲师 *☑51cto高级讲师 *☑腾讯课堂认证讲师 *☑网易云课堂认证讲师 *☑华为开发者学堂认证讲师 *☑爱奇艺千人名师计划成员 *在这里给大家分享技术、知识和生活 *各种干货,记得关注哦! *vx:it_daimeng */
Java中给我们提供专门的一套技术,可以通过其中的那些类和接口操作任何的数据库,这个技术就是今天要学习的JDBC。
- JDBC的全称为:java database connection (java和 数据库的连接 )
- JDBC是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用
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驱动程序
|
registerDriver |
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、建立数据库的连接:
|
getConnection |
参数详解:
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