JDBC基础

本文介绍了JDBC的基础知识,包括如何使用JDBC访问MySQL数据库,详细讲解了注册驱动、建立连接、执行SQL以及ResultSet处理结果的过程。此外,还讨论了JDBC工具类JdbcUtils的实现,SQL注入问题及解决方案PreparedStatement,以及JDBC如何控制事务。
摘要由CSDN通过智能技术生成

JDBC入门

客户端操作MySQL数据库的方式:

  1. 使用第三方客户端来访问 MySQL:SQLyog、Navicat、SQLWave、MyDB Studio、EMS SQL Manager for MySQL。
  2. 使用 MySQL 自带的命令行方式。
  3. 通过 Java 来访问 MySQL 数据库。
    什么是JDBC
    JDBC 规范定义 接口 ,具体的实现由各大数据库厂商来实现。
    JDBC 是 Java 访问数据库的标准规范,真正怎么操作数据库还需要具体的实现类,也就是数据库驱动。每个数据库厂商根据自家数据库的通信格式编写好自己数据库的驱动。所以我们只需要会调用 JDBC 接口中的方法即可,数据库驱动由数据库厂商提供。
    使用 JDBC 的好处:

1.程序员如果要开发访问数据库的程序,只需要会调用 JDBC 接口中的方法即可,不用关注类是如何实现的。
2.使用同一套 Java 代码,进行少量的修改就可以访问其他 JDBC 支持的数据库
使用 JDBC 开发使用到的包:

会使用到的包 说明
java.sql 所有与 JDBC 访问数据库相关的接口和类
javax.sql 数据库扩展包,提供数据库额外的功能。如:连接池
数据库的驱动 由各大数据库厂商提供,需要额外去下载,是对 JDBC 接口实现的类

JDBC 的核心 API

接口或类 作用
DriverManager 类 管理和注册数据库驱动,得到数据库连接对象
Connection 接口 一个连接对象,可用于创建 Statement 和 PreparedStatement 对象
Statement 接口 一个 SQL 语句对象,用于将 SQL 语句发送给数据库服务器
PreparedStatemen 一个 SQL 语句对象,是 Statement 的子接口
ResultSet 接口 用于封装数据库查询的结果集,返回给客户端 Java 程序

步骤

  1. 导入jar包
    复制mysql-connector-java-5.1.37-bin.jar到项目的libs目录下,右键–>Add As Library。
  2. 注册驱动
    Class.forName(“com.mysql.jdbc.Driver”);
    如果是本地服务器,端口号是 3306
    则可以简写为jdbc:mysql:///数据库名
    乱码问题
    如果数据库出现乱码,可以指定参数: ?characterEncoding=utf8,表示让数据库以 UTF-8 编码来处理数据。
jdbc:mysql://localhost:3306/数据库?characterEncoding=utf8

**注意:**从 JDBC3 开始,目前已经普遍使用的版本。可以不用注册驱动而直接使用。Class.forName
这句话可以省略。
3. 获取数据库连接对象
通过连接字符串,用户名,密码来得到数据库的连接对象
Connection getConnection (String url, String user, String password)

Connection conn = DriverManager.getConnection(“jdbc:mysql://localhost:3306/数据库名”, “root”, “密码”);
4. 定义sql语句
5. 获取执行sql的对象Statement
Statement stmt = conn.createStatement();
6. 执行sql

Statement 接口中的方法 描述
int executeUpdate(String sql) 用于发送 DML 语句,增删改的操作,insert、update、delete。参数:SQL 语句。返回值:返回对数据库影响的行数
ResultSet executeQuery(String sql) 用于发送 DQL 语句,执行查询的操作。select。参数:SQL 语句。返回值:查询的结果集

stmt.executeUpdate(sql);
7. ResultSet处理执行结果

在这里插入图片描述
ResultSet接口中的方法:

ResultSet接口中的方法 描述
boolean next() 游标向下移动 1 行。返回 boolean 类型,如果还有下一条记录,返回 true,否则返回 false
数据类型 getXxx() 通过字段名,参数是 String 类型。返回不同的类型。通过列号,参数是整数,从 1 开始。返回不同的类型
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值