学习所得来源于b站千峰java学院Gavin老师JDBC教学视频
1、引言
- 以前我们操作数据库都是使用客服端工具访问数据库,需要手工建立连接,输入用户名和密码登录,编写sql语句,点击执行,查看操作结果(结果集或受影响行数)
思考:在实际开发中,会采用客服端操作数据库吗
- 在实际开发中,当用户的数据发生改变时,不可能通过客户端执行操作SQL语句,因为操作量过大,无法保证效率和正确性
2、JDBC
2.1 什么是JDBC
- JDBC(Java DataBase Connectivity Java)java连接数据库,可以使用java语言连接数据库完成CRUD操作
2.2 JDBC核心思想
- 其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。 我们可以使用这套接口(JDBC)编程,真正执行的代 码是驱动
jar包中的实现类
2.3 MYSQL数据库驱动
- mysql-connector-java-5.1xx-bin.jar 适用于5.x版本
- mysql-connector-java-8.1xx-bin.jar 适用于8.x版本
2.3.1环境搭建
- 百度搜索:
mysql connector
或者点击此链接下载:https://dev.mysql.com/downloads/connector/j/
Connector/J
就是为Java
的JDBC
准备的
- .当点击下载上的时候MySQL官网会提醒你注册MySQL账号,不过不用注册一样下载点击
No thanks,just start my download
下载完毕后,解压后,会看见如下图的就是mysql驱动的 jar 包:
接下在的部分在ieda中配置
打开idea,新建java工程,然后新建一个
Directory
文件夹(改名为lib),用于存放jar
文件<br /> <br /> <br />
将mysql驱动文件mysql-connector-java-8.1xx-bin.jar 复制到项目
lib
文件夹中
选中lib文件夹右键
Add as Libraay
,这里我选中的是Project Libraay
,点击ok<br /> 
这时候就发现
mysql-connector-java-8.0.26.jar
包可以打开了,证明了数据库的驱动jar文件跟我们项目产生了关联
3、JDBC开发步骤【重点】
3.1 注册驱动
使用 Class.forName("com.mysql.jdbc.Driver");// 加载驱动 手动加载字节码文件到JVM中
此路径
com.mysql.jdbc.Driver
可在idea中查看
3.2 连接数据库
//获取连接对象
// DriverManager.getConnection(url,user,password);
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/t_table", "root", "123456");
url:一般是都协议、IP、端口、SID组成
3.3 获取执行sql语句的对象
//通过Connection对象获得Statement对象,用于对数据库进行通用访问
Statement statement = connection.createStatement();
3.4 执行sql语句并接收结果
int result = statement.executeUpdate("DELETE FROM grade WHERE gradename = \"赵路\"");// 执行sql语句并接收结果
温馨提示:
- 在编写DML语句时,一定要注意字符串参数的符号是单引号
**'值'**
- DML语句:增删改时,返回受影响行数(int 类型)
- DQL语句:查询时,返回结果数据(ResultSet 结果集)
3.5 处理结果
if(result == 1){
System.out.println("删除成功");
}else {
System.out.println("删除失败");
}
3.6 释放资源
// 先开后关原则,释放所使用到的资源对象
statement.close();
connection.close();
题目
1、实现向数据库表中插入一条数据
public class TestJDBC {
public static void main(String[] args) throws Exception {
//1、注册驱动 加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 2、获得连接
String url ="jdbc:mysql://localhost:3306/t_table";
String user = "root";
String password = "123456";
Connection connection = DriverManager.getConnection(url,user,password);
if(connection != null){
System.out.println("连接到数据库");
}else {
System.out.println("连接失败");
}
// 3、获得执行sql语句的对象
Statement statement = connection.createStatement();
// 4、编写sql语句,执行sql语句
String sql = "insert into `grade` VALUES (28,'肖战')";
int result = statement.executeUpdate(sql);//DML操作调用方法
// 5、处理接受结果
if(result == 1){
System.out.println("成功");
}else {
System.out.println("失败");
}
//6、释放资源,先开后关
statement.close();
connection.close();
}
}
2、实现向数据库表中删除一条数据
public class DeleteJDBC {
public static void main(String[] args) throws Exception{
// 1、加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 2、获得连接对象
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/t_table", "root", "123456");
//3、获得执行sql的对象
Statement statement = connection.createStatement();
//4、执行sql语句,并接收结果
int result = statement.executeUpdate("DELETE FROM grade WHERE gradename = \"赵路\"");
// 5、处理结果
if(result == 1){
System.out.println("删除成功");
}else {
System.out.println("删除失败");
}
// 6、释放资源
statement.close();
connection.close();
}
}
4、ResultSet(结果集)
- 在执行查询sql后,存放查询到的数据
4.1 接收结果集
ResultSet rs = statement.executeQuery(sql);
ResultSet rs = statement.executeQuery("select *from grade");