当前位置:网站首页 > Java基础 > 正文

mysql基础视频教程java



Java的Mysql使用

说明

通过Java的方式连接Mysql中的数据库,并对数据库中的数据进行增加 查询操作

​ 使用Mysql所提供的第三方库中的类(Mysql的API) 对其进行操作

​ 将Mysql Jar包添加到lib目录后,就可以使用其中的类对其Mysql数据库进行操作

Mysql Jar包的获取以及配置

在这里插入图片描述

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

然后jar包添加到库即可

使用步骤

​ Mysql Jar包中提供了很多类,如何去使用?

​ SUN公司将JDBC协议作为一个规范,提供给开发者, 规范的使用套路是什么?

​ ① 加载驱动 Driver 类

​ 原因: JDBC可以连接很多数据库,那么就需要告诉jdbc当前连接的是哪一个数据库,所以需要提供Driver类

​ ② 创建连接对象 给定 URL、用户名、密码 等信息

​ ③ 通过连接对象获取操作对象

​ ④ 通过数据库操作对象,执行SQL语句获取执行结果

​ ⑤ 如果是查询语句,那么需要对执行结果进行遍历操作

​ ⑥ 将所有的连接及对象进行关闭操作

实例

结果:

1语文2
2数学1
3英语3
4物理4

数据库样式

在这里插入图片描述

JDBC中重要的接口和类

DriverManager类(驱动管理类)里面全是静态方法,我们用它来注册驱动:

DriverManager 类中的静态方法说明static void registerDriver(Driver driver)向 DriverManager 注册驱动程序static Connection getConnection(String url, String user, String password)建立到给定数据库 URL 的连接

Statement接口(执行sql)用于执行静态 SQL 语句并返回它所生成结果的对象:

statement中的方法说明int executeUpdate(String sql)执行 更新语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,返回值是“影响数据库中的记录条数”ResultSet executeQuery(String sql)执行 SQL 查询语句,该语句返回单个 ResultSet 对象


ResultSet接口(查询结果集),sql查询语句后可以将结果封装到ResultSet中:

ResultSet中的方法说明boolean next()将光标从当前位置向前移一行。ResultSet 光标最初位于第一行之前;第一次调用 next 方法使第一行成为当前行;第二次调用使第二行成为当前行,依此类推(用来查询结果)String mysql基础视频教程java getString(int columnIndex)不管数据库中的数据类型是什么,都以String的形式取出(columnIndex是指取列数,第一列,第二列…)String getString(String columnLabel)不管数据库中的数据类型是什么,都以String的形式取出( columnLabel指查询语句中的列名)

反射机制注册驱动(最常用的注册驱动方法)
加载和注册数据库驱动,数据库驱动由 mysql 厂商 "com.mysql.jdbc.Driver"提供

基础操作

示例1:插入操作

示例2:删除操作

示例3:从资源文件中读取连接数据库信息

将连接数据库的所有信息配置到配置文件jdbc.properties中:

实际开发中不建议把来连接数据库的信息写死到java程序中,因为用户可能不会把数据库的密码给你。

示例4:处理查询结果集(遍历查询结果)

ResultSet接口中的方法是用于遍历结果集的方法。它将指针从当前行移动到下一行,并检查是否有更多的数据可用。该方法返回一个布尔值,表示是否成功移动到下一行。

以下是关于方法的一些重要信息:

  • 方法返回一个布尔值。如果存在下一行,则返回;否则,返回。
  • 第一次调用方法时,将指针移到结果集的第一行(如果有)。
  • 每次调用方法后,指针将根据结果集中的数据移动到下一行。
  • 如果方法返回,你可以使用其他方法(如、等)来获取当前行的列值。
  • 如果方法返回,表示已经到达结果集的末尾,没有更多的数据可用。

以下是一个示例代码片段,演示了如何使用方法遍历结果集:

释放资源时先释放查询结果集,再释放数据库操作对象,最后释放数据库连接对象。

sql注入现象

在这里插入图片描述

编写一个java程序,当输入的账户和密码与表中的数据一致时,显示“登录成功”,否则“登录失败”。

执行结果:

2、演示sql注入现象

在这里插入图片描述当我输入以下账户和密码时,它也显示登录成功!!

在这里插入图片描述

这种现象称为sql注入(黑客经常使用),这是一个安全隐患。

为什么会出现sql注入现象?
用户输入的信息中含有sql语句的关键字,并且这些关键字参与sql语句的编译过程。导致sql语句的原意被扭曲,进而达到sql注入。
因为我们上面的sql语句被写成了 select * from t_user where loginName = ‘lll’ and loginPwd = ‘lll’ or ‘1’ = ‘1’; 这个1=1是恒成立的。

3、解决sql注入
思想:不让用户的输入信息参加编译。 要解决 SQL 注入就不能让用户输入的密码和我们的 SQL 语句进行简单的字符串拼接。

方法:使用PreparedStatement接口
(1)prepareStatement()会先将 SQL 语句发送给数据库预编译。PreparedStatement 会引用着预编译后的结果。可以多次传入不同的参数给 PreparedStatement 对象并执行。减少 SQL 编译次数,提高效率。
(2)安全性更高,没有 SQL 注入的隐患。

操作请看注释,解释代码:

三、JDBC事务
把注册驱动和获取连接封装到一个工具类中,以后就不用次次写代码都写那么多了:

在java中执行sql事务:

try {
conn = DBUtil.getConnection();
// 开启事务
conn.setAutoCommit(false);

版权声明


相关文章:

  • java的基础数据类型转换2024-10-18 11:42:05
  • 软通java基础考试2024-10-18 11:42:05
  • java基础还是c语言基础2024-10-18 11:42:05
  • java的基础知识语言2024-10-18 11:42:05
  • java基础课程思政2024-10-18 11:42:05
  • javase就是java基础吗2024-10-18 11:42:05
  • java基础包怎么创建2024-10-18 11:42:05
  • java基础转向jsp难吗2024-10-18 11:42:05
  • java基础中的运算符2024-10-18 11:42:05
  • java 基础 代码 详解2024-10-18 11:42:05