jdbc 全称:Java Data Base Connection
以后我们不会直接使用JDBC,因为过于麻烦,后期工程中直接使用包装的数据库操作插件:
EJB 实体Bean
Hibernate
Spring数据库持久插件
MyBatis
插件的作用:让我们的操作更面向对象
面向SQL编程:一切尽量用sql解决
java连接数据库过程:java————jdbc——sql语句——MySQL
插件连接数据库过程:java—————操作人员————插件———jdbc————sql——MySQL
插件:改变了呈现方式,将sql包装了起来,你用就用我的对象就行了不用你再去管sql,我们用的就是一个对象。
JDBC:全部都是接口
C语言 DBC
VB ODBC
用的是桥接技术连接数据库
桥接技术:用VB连接odbc再用odbc连接 不同的数据库
假如用VB连接MySQL由你MySQL写驱动 通过VB连接桥接 桥接连接MySQL驱动来实现连接
Java用的是网络连接数据库:jdbc只是接口、实现是数据库公司用Java来写实现。
java想要连接数据库必须有相对应的驱动
驱动是什么:驱动是实现代码
Java通过网络——————————直接连接数据库(要找相对应的驱动)
如何在idea中链接驱动:
架包:架包就是一个压缩包
很多的class文件打成的包 、方便别的工程运行
数据库连接步骤:
1.找驱动 ? 就是找数据库实现接口代码
2.把驱动加入到工程中(只有加入进去你的工程才能使用这些代码)
举例:我想让Java软件播放视频、需要视频解码器、想连接蓝牙、需要蓝 牙连接驱动
3.Class.forName("包+类名"); 驱动加载(5以上版本的驱动都会自动加载类,所以可以不写这个操作)
反射机制中的类加载
会执行静态块
加载驱动的目的,就是为了启动他们的静态块,静态块中写了注册了驱动代码
new com.mysql.cj.jdbc.Driver();创建对象加载类中的静态块代码 静态块中有加载驱动代码
// Class.forName("com.mysql.cj.jdbc.Driver"); 加载类
驱动代码不用谢也可以因为有services中有加载驱动代码 只要加载工程就会启动驱动
4.创建数据库连接对象Connection
我们用的代码全在java.sql.包下
url 数据库连接字符串
老版本的 jdbc:mysql://localhost:3306/mydb
jdbc:mysql
//localhost:3306 端口 IP
MYSQL8连接字符串
jdbc:mysql://localhost/student?useSSL=FALSE&serverTimezone=UTC
user 数据库用户名
password 密码
错误解答:
1.No suitable driver found for
1.工程中没有添加数据库jar包
2.连接字符串没有写对
3.如果是老数据库连接,有可能你没有加载驱动类
2.Access denied for user 'root'@'localhost' (using password: YES)
数据库登录密码错误
3.java.net.ConnectException: Connection refused: connect
网络连接错误
1.数据库服务器没有打开
2.数据库字符串的端口写错了
mysql是默认端口,就算你不写也默认3306
3.网络是否通?
4.服务器是否有防火墙
1.安全组是否拦截3306连接
2.操作系统中防火墙是否拦截3306
如何设置windows防火墙
1.打开控制面板
2.高级设置
3.入站规则
4.新建规则
5.选择端口