2024/10/19日 日志--》关于MySQL中 JDBC的API 详解的整理简述
1.2024/10/16 日 日志 --》关于MySQL的中 基础操作的整理以及 DQL的初步学习笔记与整理2.2024/10/17日 日志 --》关于MySQL中的 约束、多表查询的初步学习笔记与整理3.2024/10/18日 日志 --》关于MySQL中的 事务 以及JDBC的初步学习笔记与整理
4.2024/10/19日 日志--》关于MySQL中 JDBC的API 详解的整理简述
5.2024/10/21 日 日志 --》关于Mysql中的数据库连接池 简述笔记整理6.2024/10/22日 日志 --》关于Maven的基础学习 笔记整理7.2024/10/23日 日志--》关于Maven的基础学习--2 坐标与依赖范围8.2024/10/24日 日志 --》关于Mybatis的学习笔记整理 - 环境与性质 以及ResultMap9.2024/10/25日 日志 --》关于使用Mybatis进行增删改查 ---1 查询10.2024/10/26 日 使用Mybatic --》关于Mybatis 进行增删改查 ---2 添加、修改与删除11.2024/10/28日 使用Mybatic --》关于Mybatis 的参数传递与注解开发12.2024/10/29 HTML --》关于HTML的快速入门与标签13.2024/10/30 日 日志 --》关于CSS的学习14.2024/11/1日 日志 关于JavaScript简介&引入方式 以及基础语法的学习15.2024/11/4日 日志 关于JavaScript 变量、数据类型、类型转换和流程控制语句以及对象的学习16.2024/11/5日 日志 关于BOM浏览器对象模型和DOM文档对象模型的学习与笔记整理17.2024/11/6日 日志 正则表达式,web与HTTP18.2024/11/7日 日志 Tomcat简介&基本使用19.2024/11/8日 日志 关于Servlet ----(上)20.2024/11/11日 日志 关于Servlet ----HttpServlet(下)21.2024/11/12日 日志 关于Servlet ---- Request(请求)& Response(响应) 的补充22.2024/11/13日 日志 代码优化 以及 JSP 的快速入门、原理、脚本、缺点 和 EL表达式 以及 JSTL标签23.2024/11/14日 日志 关于 MVC 分层开发模式24.2024/11/15日 日志 关于 会话跟踪技术--- Cookie & Session25.2024/11/20日 日志 关于 Filter & Listener26.2024/11/21日 日志 关于AJAX & Axious异步框架 & JSON27.2024/11/27日 日志 关于Vue && Element28.JavaWeb案例整体分析---》差旅费报销管理信息系统->>题目详情29.JavaWeb案例整体分析---》差旅费报销管理信息系统->>登录与注册30.JavaWeb案例整体分析---》差旅费报销管理信息系统->>数据库操作和Mybatis配置以及pom.xml31.JavaWeb案例整体分析---》差旅费报销管理信息系统->>出差申请与报销部分32.2024/1/13日 日志 关于Vue && Element 的后续---》综合案例(1)33.2024/1/14日 日志 关于Vue && Element 的后续---》综合案例(2)34.2024/1/16日 日志 关于Vue && Element 的后续---》综合案例(4)35.2024/1/17日 日志 关于Vue && Element 的后续---》综合案例(5)36.2024/1/18日 日志 关于Vue && Element 的后续---》综合案例(6)37.2024/1/19日 日志 关于Vue && Element 的后续---》综合案例(7)38.2024/1/20日 日志 关于Vue && Element 的后续---》综合案例(8.1)39.2024/1/21日 日志 关于Vue && Element 的后续---》综合案例(8.2)40.2024/1/22日 日志 期末考试案例回顾与分析---》综合案例(1)41.2024/1/23日 日志 期末考试案例回顾与分析---》综合案例(2)42.2024/1/24日 日志 期末考试案例回顾与分析---》综合案例(3)43.2024/1/25日 日志 期末考试案例回顾与分析---》综合案例(4)44.2024/1/26日 日志 期末考试案例回顾与分析---》综合案例(5)45.2024/1/27日 日志 期末考试案例回顾与分析---》综合案例(6)46.2024/2/3日 日志 期末考试案例回顾与分析---》综合案例(7)47.2024/2/4日 日志 期末考试案例回顾与分析---》综合案例(8)48.2024/2/5日 日志 期末考试案例回顾与分析---》综合案例(9)49.2024/2/6日 日志 期末考试案例回顾与分析---》综合案例(10)50.2024/2/7日 日志 期末考试案例回顾与分析---》综合案例(汇总)51.2024/2/24日 日志 第一次测试案例分析(1)--题目52.2024/2/25日 日志 第一次测试案例分析(2)--数据库层面53.2024/2/26日 日志 第一次测试案例分析(3)--基础准备54.2024/2/27日 日志 第一次测试案例分析(4)--登录与注册和仓库方面今天进一步学习了JDBC中的API,已经可以初步连接数据库了,接下来继续进行学习。
点击查看代码
-- JDBC API详解
-- DirverManager
-- DriverManager(驱动管理类)作用: 1.注册驱动 2.获取数据库连接
-- 1.注册驱动
-- Class.forName("com.mysql.jdbc.Driver");
-- ·需要注意的是:MySQL 5之后的驱动包,可以省略注册驱动步骤
-- ·自动加载jar包中META-INF/services/java.sql.Driver文件中的驱动类
-- 2.获取连接
-- static Connection getConnection(String url,String user,String password);
-- ·参数
-- 1.url:连接路径
-- 语法:jdbc:mysql://ip地址(域名):端口号/数据库名称?参数键值对1&参数键值对2...
-- 示例:jdbc:mysql://127.0.0.1:3306/test
-- 细节:
-- ·如果连接的事本机mysql服务器,并且mysql服务默认端口是3306,
-- 则url可以简写为:jdbc:mysql:///数据库名称?参数键值对
-- ·配置 useSSL=false 参数,禁用安全连接方式,解决警告提示
-- 2.user:用户名
-- 3.password:密码
--
-- Connection
-- Connection(数据库连接对象)作用: 1.获取执行SQL的对象 2.管理事务
-- 1.获取执行SQL对象
-- ·普通执行SQL对象
-- Statement createStatement();
-- ·预编译SQL的执行SQL对象:防止SQL注入
-- PreparedStatement prepareStatement(sql);
-- ·执行存储过程的对象
-- CallableStatement prepareCall(sql)
-- 2.事务管理
-- · MySQL事务管理
-- 开启事务: BEGIN;/START TRANSACTION;
-- 提交事务: COMMIT;
-- 回滚事务: ROLLBACK;
-- MySQL默认自动提交事务
-- · JDBC事务管理:Connection接口中定义了3个对应的方法
-- 开启事务: setAutoCommit(boolean autoCommit); true为自动提交事务 false为手动提交事务,即为开启事务
-- 提交事务: commit();
-- 回滚事务: rollback();
--
-- Statement
-- Statement作用: 1.执行SQL语句
-- ·执行SQL语句
-- int executeUpdate(sql): 执行DML(对数据增删改)、DDL(操作数据库、表)语句
-- 返回值:(1)DML语句影响的行数 (2)DDL语句执行后,执行成功也可能返回0
-- ResultSet executeQuery(sql):执行DQL(对表中数据查询)语句
-- 返回值:ResultSet结果集对象
--
-- ResultSet
-- ·Result(结果集对象)作用:
-- 1.封装了DQL查询语句的结果
-- ResultSet stmt.executeQuery(sql);执行DQL语句,返回ResultSet对象
-- ·获取查询结果
-- Boolean next(); (1)将光标从当前位置向前移动一行 (2) 判断当前行是否为有效行
-- 返回值:
-- · true:有效行,当前行有数据
-- · false:无效行,当前行没有数据
-- xxx getXxx(参数);获取数据
-- xxx:数据类型。如: int getint(参数); String getString(参数);
-- 参数:
-- · int: 列的编号,从1开始
-- · String: 列的名称
-- ·使用步骤:
-- 1.游标向下移动一行,并判断该行是否有数据:next();
-- 2.获取数据:getXxx(参数);
-- //循环判断游标是否是最后一行
-- while(rs.next()){
-- //获取数据
-- rs.getXxx(参数;
-- }
-- 注意最后释放资源时ResultSet类型的变量也要释放 如 rs.close();
--
-- PreparedStatement
-- · PreparedStatement 作用:
-- 1.预编译SQL语句并执行:预防SQL注入问题
-- · SQL注入
-- ·SQL注入是通过操作输入来修改事先定义好的SQL语句,用以达到执行代码对服务器进行攻击的方法
-- 如:'+'1'=1'
-- ·1.获取 PreparedStatement 对象
-- //SQL语句中的参数值,使用?占位符替代
-- String sql "select * from user where username = ? and password = ?";
-- //通过Connection对象获取,并传入对应的sql语句
-- PreparedStatement pstmt = conn.prepareStatement(sql);
-- ·2.设置参数值
-- PreparedStatement对象:setXxx(参数1,参数2):?赋值
-- Xxx:数据类型;如setInt(参数1,参数2)
-- 参数:
-- · 参数1:?的位置编号,从 1 开始
-- · 参数2:?的值
-- ·3.执行SQL
-- executeUpdate(); /executeQuery();不需要再传递sql 如:pstmt.executeQuery();
--
-- PrepardStatement 原理
-- · PrepardStatement 好处:
-- 1. 预编译SQL,性能更高
-- 2. 防止SQL注入: 将敏感字符进行转义
-- ·1 PreparedStatement 预编译功能开启: useServerPrepStmts=TRUE
-- 示例:String url = "jdbc:mysql://127.0.0.1:3306/db1?useSSL=false&useServerPrepStmts=true";
-- ·2 配置MySQL执行日志(重启mysql服务后生效)
-- log-output=FILE
-- general-log=1
-- general_log_file="D:\mysql.log"
-- slow-query-log=1
-- slow_query_log_file="D:\mysql_slow.log"
-- long_query_time=2
-- · PreparedStatement原理:
-- 1. 获取PreparedStatement对象时,将sql语句发送给mysql服务器进行检查,编译(这些步骤很耗时)
-- 2. 执行时就不用再进行这些步骤了,速度更快
-- 3. 如果sql模板一样,则只需要进行一次检查、编译
--
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署