jdbc连接数据库密码加密(jdbc连接数据库5个步骤mysql)

jdbc连接数据库密码加密(jdbc连接数据库5个步骤mysql)svg xmlns http www w3 org 2000 svg style display none svg

大家好,我是讯享网,很高兴认识大家。



 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> <p></p> 

讯享网

JDBC 就是使用Java语言操作关系型数据库的一套API

全称:( Java DataBase Connectivity ) Java 数据库连接

  • 官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口
  • 各个数据库厂商去实现这套接口,提供数据库驱动jar包
  • 我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类
  • 创建工程,导入驱动jar包

    在lib文件夹下导入包
    如何获取jar包:【点击这里】
    在这里插入图片描述
    讯享网

  • 注册驱动
    讯享网
  • 获取连接
     

    Java代码需要发送SQL给MySQL服务端,就需要先建立连接

  • PreparedStatement
    讯享网
  • 获取执行SQL对象

    执行SQL语句需要SQL执行对象,而这个执行对象就是Statement对象

     
  • 执行SQL
    讯享网
  • 处理返回结果
  • 释放资源

示例代码:

 

DriverManager(驱动管理类)作用:

作用一:注册驱动

registerDriver方法是用于注册驱动的,但是我们之前做的入门案例并不是这样写的。而是如下实现

讯享网

查询MySQL提供的Driver类,看它是如何实现的,源码如下:

 

在该类中的静态代码块中已经执行了 对象的 方法进行驱动的注册了,那么我们只需要加载 类,该静态代码块就会执行。而 就可以加载 类。

作用二:获取数据库连接

参数说明:

  • url : 连接路径

    语法:jdbc:mysql://ip地址(域名):端口号/数据库名称?参数键值对1&参数键值对2…

    示例:jdbc:mysql://127.0.0.1:3306/db1

    细节:

    • 如果连接的是本机mysql服务器,并且mysql服务默认端口是3306,则url可以简写为:jdbc:mysql:///数据库名称?参数键值对
    • 配置 useSSL=false 参数,禁用安全连接方式,解决警告提示
  • user :用户名
  • poassword :密码

Connection(数据库连接对象)作用:

  • 获取执行 SQL 的对象
  • 管理事务

2.2.1 获取执行对象

  • 普通执行SQL对象
    讯享网

    入门案例中就是通过该方法获取的执行对象。

  • 预编译SQL的执行SQL对象:防止SQL注入
     

    通过这种方式获取的 SQL语句执行对象是重点,它可以防止SQL注入。

  • 执行存储过程的对象
    讯享网

    通过这种方式获取的 执行对象是用来执行存储过程的,而存储过程在MySQL中不常用

2.2.2 事务管理

MySQL事务管理的操作:

  • 开启事务 : BEGIN; 或者 START TRANSACTION;
  • 提交事务 : COMMIT;
  • 回滚事务 : ROLLBACK;

MySQL默认是自动提交事务

Connection接口中定义了3个对应的方法:

  • 开启事务
     
  • 提交事务
    讯享网
  • 回滚事务
     

示例代码:

讯享网

作用就是用来执行SQL语句

  • 执行DDL、DML语句
  • 执行DQL语句

在这里插入图片描述

 

ResultSet使用

在这里插入图片描述

ResultSet(结果集对象)作用:

  • 封装了SQL查询语句的结果。

而执行了DQL语句后就会返回该对象,对应执行DQL语句的方法如下:

讯享网

那么我们就需要从 对象中获取我们想要的数据。 对象提供了操作查询结果数据的方法,如下:

boolean next()

  • 将光标从当前位置向前移动一行
  • 判断当前行是否为有效行

方法返回值说明:

  • true : 有效航,当前行有数据
  • false : 无效行,当前行没有数据

xxx getXxx(参数):获取数据

  • xxx : 数据类型;如: int getInt(参数) ;String getString(参数)
  • 参数
    • int类型的参数:列的编号,从1开始
    • String类型的参数: 列的名称

示例代码:

 

练习

需求:已知stu数据库中有张表student,将表中数据封装到实体类User中,并添加到集合中再打印集合。

在这里插入图片描述

创建实体类:

讯享网
 

2.5.1 PreparedStatement用处

在这里插入图片描述

PreparedStatement又是如何解决SQL注入漏洞问题的呢?它是将特殊字符进行了转义.

示例代码:解决SQL注入问题

讯享网

2.5.2 PreparedStatement原理

在这里插入图片描述

  • 数据库连接池是个容器,负责分配、管理数据库连接(Connection)
  • 它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;
  • 释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏
  • 好处
    • 资源重用
    • 提升系统响应速度
    • 避免数据库连接遗漏

  • 标准接口:DataSource

    官方(SUN) 提供的数据库连接池标准接口,由第三方组织实现此接口。该接口提供了获取连接的功能:

     

    那么以后就不需要通过 对象获取 对象,而是通过连接池(DataSource)获取 对象。

  • 常见的数据库连接池
    • DBCP
    • C3P0
    • Druid

    我们现在使用更多的是Druid,它的性能比其他两个会好一些。

  • Druid(德鲁伊)
    • Druid连接池是阿里巴巴开源的数据库连接池项目
    • 功能强大,性能优秀,是Java语言最好的数据库连接池之一

Driud使用

  • 导入jar包 druid-1.1.12.jar
  • 定义配置文件
  • 加载配置文件
  • 获取数据库连接池对象
  • 获取连接

首先需要先将druid的jar包放到项目下的lib下并添加为库文件

编写配置文件如下:

讯享网

示例代码:

 

(用数据库连接池)

完成商品品牌数据的增删改查操作

  • 查询:查询所有数据
  • 添加:添加品牌
  • 修改:根据id修改
  • 删除:根据id删除

数据准备:

  • 数据库表

    在stu数据库中创建tb_brand表,因为在配置文件中连接的是stu数据库

    讯享网

实体类:在pojo包下实体类 Brand

 

在这里插入图片描述

3.3.1 查询所有数据

讯享网

3.3.2 添加品牌

 

3.3.3 根据id修改

修改前:

在这里插入图片描述

修改后:

在这里插入图片描述

讯享网

3.3.4 根据id删除

 

小讯
上一篇 2025-06-16 23:34
下一篇 2025-04-15 11:59

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/204193.html