JDBC

1、JDBC基本概念

JDBC:Java DataBase Connectivity,Java数据库连接。其本质是由官方(Sun公司)定义的一套操作所有关系型数据库的规则(接口),各个数据库厂商去实现这些接口,提供数据库驱动jar包,我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类

2.JDBC快速入门

  • 导入驱动jar包

1.复制下载的Jar包添加到项目里
在这里插入图片描述
2.Add as library. . .
在这里插入图片描述
在这里插入图片描述

  • 编写代码注册驱动
  • 获取数据库连接对象(Connection)
  • 定义SQL语句
  • 获取执行SQL语句的对象(Statement)
  • 执行SQL,接收返回结果
  • 处理结果
  • 释放资源
package xpu.edu.jdbc1;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

/**
 * JDBC快速入门
 */
public class jdbcDemo1 {
    public static void main(String[] args) throws Exception {
        //1.导入jar包
        //2.注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        //3.获取数据库连接对象
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db","root","1234");
        //4.定义SQL语句
        String sql = "update student set math = 100 where name = '张三'";
        //5.获取执行SQL的对象
        Statement stmt = conn.createStatement();
        //6.执行SQL
        int count = stmt.executeUpdate(sql);
        //7.处理结果
        System.out.println(count);//输出1
        //8.释放资源
        stmt.close();
        conn.close();
    }
}

在这里插入图片描述
在这里插入图片描述

3.JDBC中各个接口和类详解

DriverManager:驱动管理对象
Connection:数据库连接对象
Statement:执行SQL的对象
ResultSet:结果集对象
PreparedStatement:是Statement的子类,也用于执行SQL,但是比Statement的功能更强大

3.1.DriverManager

两大功能:

  • 1.注册驱动:告诉程序该使用哪一个驱动jar包
  • DriverManager中的方法:
    static void registerDriver(Driver driver):注册与给定的驱动程序DriverManager
  • 我们写的代码:
    Class.forName(“com.mysql.jdbc.Driver”);
  • 通过查看源码,发现在com.mysql.jdbc.Driver类中存在静态代码块,在该静态代码块中调用了registerDriver方法,该静态代码块如下:
static {
        try {
            DriverManager.registerDriver(new Driver());
        } catch (SQLException var1) {
            throw new RuntimeException("Can't register driver!");
        }
    }

注意:MySQL5之后的驱动jar包可以省略注册驱动的步骤
在这里插入图片描述

  • 2.获取数据库连接
  • DriverManager中的方法:
    static Connection getConnection(String url,String user,String password)
  • url:指定连接路径
    语法:jdbc:mysql://ip地址(域名):端口号/数据库名称
    细节:如果连接本机的MySQL服务器,并且MySQL服务的默认端口是3306,则url可以简写为:jdbc:mysql:///数据库名称
  • user:用户名
  • password:密码

3.2.Connection

两大功能:

  • 1.获取执行mysql的对象
  • Statement createStatement()
  • PreparedStatement preparedStatement(String sql)
  • 2.管理事务
  • 开启事务:setAutoCommit(boolean autoCommit):调用该方法设置参数为false即开启事务
  • 提交事务:commit()
  • 回滚事务:rollback()

3.3.Statement对象

功能:执行sql

  • boolean execute(String sql):
  • int executeUpdate(String sql):执行DML(insert、update、delete)语句和DDL(create、alter、drop)语句,DML为主

返回值:影响的行数,我们可以通过这个影响的行数判断是否执行成功,如果返回值大于0,则执行成功,反之执行失败

  • ResultSet executeQuery(String sql):执行DQL(select)语句

3.4.ResultSet

ResultSet结果集对象,封装查询结果

ResultSet里的方法:

  • next():游标向下移动一行
  • getXxx(参数):获取数据

1.Xxx表示数据类型,比如:Xxx是int那么getInt()
2.参数:

  • int:代表列的编号,列的编号从1开始
  • String:代表列的名称

注意(使用步骤):

  • 游标向下移动一行
  • 判断下一行是否有数据(while循环判断)
  • 下一行有数据再获取数据

3.5.PreparedStatement

  • SQL注入问题:在拼接SQL时有一些SQL的特殊关键字参与字符串拼接会导致安全性问题
  • 解决SQL注入问题:使用PreparedStatement对象来解决
  • 预编译的SQL:参数使用“?”作为占位符,在执行SQL时才给“?”替换上值
  • PreparedStatement使用步骤:

1.导入驱动
2.编写代码注册驱动
3.获取数据库连接对象(Connection)
4.定义SQL语句

注意:SQL的参数使用“?”作为占位符

5.获取执行SQL语句的对象(PreparedStatement)

调用Connection的preparedStatement(String sql)方法,此处传递了SQL语句后面执行SQL时可以不再传递SQL

6.给“?”赋值

PreparedStatement的方法:setXxx(参数1,参数2)
参数1:该句SQL中问号的位置是第几个,从1开始
参数2:问号的值

7.执行SQL(可以不再传递SQL语句),接收返回结果
8.处理结果
9.释放资源

  • 主要使用PreparedStatement进行增删改操作

4.JDBC控制事务

Connection对象管理事务

  • 开启事务:setAutoCommit(boolean autoCommit)

调用该方法设置参数为false即开启事务,在执行SQL之前开启事务

  • 提交事务:commit()

当所有SQL都执行完提交事务

  • 回滚事务:rollback()

!!!注意:回滚前判断Connection对象是否为空,因为在catch中使用回滚,出现异常就回滚,所以尽量抓Exception

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计,皆可应用在项目、毕业设计、课程设计、期末/期/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值