JDBC基础使用

1.注册驱动

DriverManager.registerDriver(new Driver()); //创建了两次
new Driver(); // 不能指定
Class.forName("com.mysql.cj.jdbc.Driver"); //最好的

2.获取连接

Connection connection =  DriverManager.getConnection("jdbc:mysql:///atguigu","root","abc123");/**getConnect(1,2,3)是一个重载方法* 核心属性*   1.数据软件所在的主机的IP地址 : localhost | 127.0.0.1*   2.数据软件所在的主机端口号:3306*   3.连接的具体库*   4.连接的账号*   5.连接的密码*   6.可选信息* 三个参数:*  String url  数据库软件所在的信息,连接的具体库,以及其他可选信息*               语法:jdbc:数据库管理软件名称[mysql,oracle]://ip地址|主机名:port/数据库名*           jdbc:mysql://127.0.0.1:3306/atguigu*           本机3306省略版 jdbc:mysql:///atguigu*  String user   数据库的账号*  String password 数据库的密码* 二个参数*         Properties info = new Properties();info.put("user","root");info.put("password","root");* Properties: 存储账号和密码,类似map,key和value都是string类型* url的路径属性可选信息* url?user=账号&password=密码*  */

3.创建statement

//不安全 sql注入攻击
Statement statement = connection.createStatement();
String sql = "Select * from t_user where account = '" + account +"' AND password = '" + password + "';";
ResultSet resultSet = statement.executeQuery(sql);//安全//       1、编写SQL语句结果,不包括动态值部分的语句,动态值部分使用使用占位符 ?
//        2、创建preparedstatement,并且传入动态值//       3、动态值占位符 赋值 ? 单独赋值即可
String sql = "select * from t_user where account = ? and password = ?;";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setObject(1,account);
preparedStatement.setObject(2,password);
ResultSet resultSet = preparedStatement.executeQuery();

4.发送sql语句,并且获取返回结果

//返回改变的行数
int i = statement.executeUpdate(sql);//返回查询结果集 也是一种类似与表的结构 
ResultSet resultSet = statement.executeQuery(sql);查询方式1 知道有几列并且列的名字确定
while (resultSet.next()) {int id = resultSet.getInt(1);String account1 = resultSet.getString("account");String password1 = resultSet.getString(3);String nickname = resultSet.getString(4);
}查询方式2 不知道有几列
ResultSetMetaData metaData = resultSet.getMetaData();
List<Map> list = new ArrayList<>();
int columnCount = metaData.getColumnCount();
while(resultSet.next()) {Map map = new HashMap();for(int i = 1; i <= columnCount; ++i) {Object value = resultSet.getObject(i);String columnLabel = metaData.getColumnLabel();map.put(columnLabel,value);}list.add(map);
}

5、释放资源

resultset.close();
statement.close();
connection.close();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/728602.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

让娃学习效率更高的“可视化”时间管理器

如果要问&#xff0c;老母亲在娃开学后&#xff0c;蕞着急孩子哪一种坏习惯&#xff0c;那时间管理肯定榜上有名&#xff01; 做作业的时候&#xff0c;才写了5分钟&#xff0c;已经没有耐心了&#xff0c;东摸摸西看看&#xff0c;一会说肚子疼想上厕所&#xff0c;一会又拿出…

【Java EE初阶三十】JVM的简单学习

1. JVM 内存区域划分 一个运行起来的 Java 进程&#xff0c;就是一个 JVM 虚拟机&#xff0c;需要从操作系统申请一大块内存&#xff0c;就会把这个内存&#xff0c;划分成不同的区域&#xff0c;每个区域都有不同的作用. JVM 申请了一大块内存之后,也会划分成不同的内…

Flink实时数仓之用户埋点系统(一)

需求分析及框架选型 需求分析数据采集用户行为采集业务数据采集 行为日志分析用户行为日志页面日志启动日志APP在线日志 业务数据分析用户Insert数据用户Update数据 技术选型Nginx配置Flume配置MaxWellHadoopFlink架构图 需求分析 数据采集 用户行为采集 行为数据&#xff1…

维修Balance Monitor动平衡仪触摸屏 SB-7705s工控电脑

Balance Monitor SB-7705系列 适用于柔性转子和高精度机械的现场平衡器 多速多平面平衡能力执行 灵活的转子平衡和抑制振动 在所有三个方向 (XYZ)。 高速旋转机械的主轴刚度较低&#xff0c;工作转速范围内存在临界转速。 SB-7705系列现场平衡机的多速度多平面平衡能力有助于此…

人类与智能体

1、人类与智能体 人类与智能体之间的关系在当今科技发展中变得日益紧密。智能体&#xff0c;作为人工智能领域的一个核心概念&#xff0c;通常指的是一种能够感知环境、做出决策并采取行动以实现特定目标的实体&#xff0c;它可以是软件系统、机器人或其他类型的自动化装置。 …

最小二乘法(带你 原理 实践)

文章目录 引言一、最小二乘法的基本原理二、最小二乘法的计算过程建立模型确定目标函数求解模型参数模型检验 三、最小二乘法的优缺点优点原理简单易懂统计特性优良适用范围广泛 缺点对异常值敏感假设条件较多 四、最小二乘法在实际应用中的案例五、如何克服最小二乘法的局限性…

vue-cli项目因为webpack版本不兼容运行后报错

vue-cli项目运行后报错&#xff1a; Error: Rule can only have one resource source (provided resource and test include exclude) in {"exclude": [null],"use": [{"loader": "G:\\CustomerDay\\customerday\\node_modules\\cache-l…

大语言模型的知识融合(ICLR2024)

一、写作动机&#xff1a; 虽然从头开始训练大型语言模型&#xff08;LLMs&#xff09;可以生成具有独特功能和优势的模型&#xff0c;但这种方法成本高昂&#xff0c;而且可能导致功能冗余。 二、主要贡献&#xff1a; 入了 LLMs 知识融合的概念&#xff0c;旨在结合现有 LL…

LiveNVR监控流媒体Onvif/RTSP功能-支持云端录像监控视频集中存储录像回看录像计划配置NVR硬件设备录像回看

LiveNVR支持云端录像监控视频集中存储录像回看录像计划配置NVR硬件设备录像回看 1、流媒体服务软件2、录像回看3、查看录像3.1、时间轴视图3.2、列表视图 4、如何分享时间轴录像回看&#xff1f;5、iframe集成示例7、录像计划7、相关问题7.1、录像存储位置如何配置&#xff1f;…

C++八股之RAII

RAII&#xff08;Resource Acquisition Is Initialization&#xff09;是一种编程范式&#xff0c;用于管理资源的获取和释放。它是C中的一项重要技术&#xff0c;通过在对象的构造函数中获取资源&#xff0c;在析构函数中释放资源&#xff0c;来确保资源的正确管理和释放&…

selenium也能过某数、5s盾..

文章转载于&#xff1a;selenium也能过某数、5s盾… 直接安装: pip install undetected_chromedriver运行代码&#xff1a; import undetected_chromedriver as uc import timedriver uc.Chrome(executable_pathrC:\Users\chromedriver.exe,version_main111) driver.get(网…

K线形态分析宝典:10种K线形态特征与应用场景详解,助您投资更有底气

在金融市场中&#xff0c;K线图是投资者们最常用的技术分析工具之一&#xff0c;通过观察K线形态可以揭示市场的走势和情绪。以下是10种常见的K线形态&#xff0c;包括详细的形态特征、作用以及应用场景&#xff0c;帮助您更好地理解市场走势&#xff0c;制定更精准的投资策略。…

设计模式-抽象工厂模式实践案例

抽象工厂模式&#xff08;Abstract Factory Pattern&#xff09;是一种创建型设计模式&#xff0c;它提供了一个接口&#xff0c;用于创建一系列相关或相互依赖的对象&#xff0c;而无需指定它们具体的类。抽象工厂模式是围绕一个超级工厂创建其他工厂的模式。该模式的实现涉及…

【React】state和props有什么区别?

1. state 一个组件的显示形态可以由数据状态和外部参数所决定&#xff0c;而数据状态就是state&#xff0c;一般在constructor中初始化 当需要修改里面的值的状态需要通过调用setState来改变&#xff0c;从而达到更新组件内部数据的作用&#xff0c;并且重新调用组件render方法…

JS实现chatgpt数据流式回复效果

最近高了一个简单chatgpt对话功功能&#xff0c;回复时希望流式回复&#xff0c;而不是直接显示结果&#xff0c;其实很简单&#xff0c;前端流式读取即可&#xff0c;后端SSE实现流式传输 前端用到fetch获取数据&#xff0c;然后利用reader读取 let requestId parseInt(Ma…

【Python】成功解决TypeError: ‘tuple‘ object does not support item assignment

【Python】成功解决TypeError: ‘tuple’ object does not support item assignment &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&am…

C语言对应汇编代码分析用gdb

在 GDB&#xff08;GNU 调试器&#xff09;中&#xff0c;layout 命令用于控制调试会话期间显示的窗口布局。它允许您在单个 GDB 窗口中同时查看源代码、汇编代码、寄存器内容等&#xff0c;以帮助您更好地理解程序的执行状态。以下是 layout 命令的基本用法和示例&#xff1a;…

算法归纳【数组篇】

目录 二分查找1. 前提条件&#xff1a;2. 二分查找边界 2.移除元素有序数组的平方长度最小的子数组59.螺旋矩阵II54. 螺旋矩阵 二分查找 参考链接 https://programmercarl.com/0704.%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE.html#%E6%80%9D%E8%B7%AF 1. 前提条件&#xff1a; 数…

SQL24 统计每个用户的平均刷题数

题意明确&#xff1a; 仅查看山东大学的用户在不同难度下的每个用户的平均答题题目数 问题分解&#xff1a; 限定条件&#xff1a;山东大学的用户 up.university"山东大学"&#xff1b;不同难度&#xff1a;按难度分组group by difficult_level平均答题数&#xff…

阿里云ECS磁盘扩容操作手册

云原生专栏大纲 文章目录 ESC磁盘扩容步骤前提条件云盘备份云盘扩容扩容分区和文件系统前提条件操作视频操作步骤准备工作&#xff1a;获取目标云盘信息步骤1&#xff1a;扩容分区步骤2&#xff1a;扩容文件系统 ESC磁盘扩容步骤 扩容已有云盘的操作步骤和注意事项_云服务器 …