JDBC*

*JDBC数据库连接步骤
      1.将JDBC驱动的jar添加到项目的依赖中。
      2.加载JDBC驱动
      例如: Class.forName("com.mysql.jdbc.Driver");
      3.连接数据库
      例如:
      Connection con = DriverManager.getConnection(URL,username,password);
      4.获取Statement【PreparedStatement】对象,执行SQL语句
      例如:
      String sql = "SELECT * FROM `stu`";
      Statement stm =  con.createStatement();
      ResultSet rs= stm.executeQuery(sql);
      例如:
       String sql = "SELECT * FROM `user` WHERE `username` =  ? AND `password` = ?";
       PreparedStatement pstm = con.prepareStatement(sql);
       pstm.setObject(1,username);
       pstm.setObject(2,password);
       ResultSet rs= pstm.executeQuery();
      5.处理结果
      例如:List<Student> studentList = new ArrayList<>();
        while(rs.next()){
            Student student = new Student();
            student.setSid(rs.getString("sid"));
            student.setSname(rs.getString("sname"));
            student.setAge(rs.getInt("age"));
            student.setGender(rs.getString("gender"));
            studentList.add(student);
      }
      6.释放资源
      注意:SQL对象资源如IO对象资源一样,不会被垃圾回收器回收。

*JDBC-API
   -  DriverManger(驱动管理器)的作用有两个:
   > 1. 注册驱动:这可以让JDBC知道要使用的是哪个驱动;
   > 2. 获取Connection:如果可以获取到Connection,那么说明已经与数据库连接上了。

   - Connection对象表示连接,与数据库的通讯都是通过这个对象展开的.
   > 1.负责Java程序与Mysql数据库之间的数据传输(通讯)

   -- Statement是用来向数据库发送SQL语句的,这样数据库就会执行发送过来的SQL语句:
   >1. int executeUpdate(String sql):执行更新操作(insert、update、delete等);
   >2. ResultSet executeQuery(String sql):执行查询操作,数据库在执行查询后会把查询结果,查询结果就是ResultSet;

   -  ResultSet对象表示查询结果集,只有在执行查询操作后才会有结果集的产生。
   结果集是一个二维的表格,有行有列。操作结果集要学习移动ResultSet内部的“行光标”,
   以及获取当前行上的每一列上的数据:
   >1. boolean next():使“行光标”移动到下一行,并返回移动后的行是否存在;
   >2. XXX getXXX(int col):获取当前行指定列上的值,参数就是列数,列数从1开始,而不是0。


  -PreparedStatement的使用
   >1. 使用Connection的prepareStatement(String sql):即创建它时就让它与一条SQL模板绑定;
   >2. 调用PreparedStatement的setXXX()系列方法为问号设置值
   >3. 调用executeUpdate()或executeQuery()方法,但要注意,调用没有参数的方法;
   优点:
   - 防止SQL攻击;
   - 提高代码的可读性,以可维护性;
   - 提高效率。
    
 

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

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

相关文章

html5实现好看的个人博客模板源码

文章目录 1.设计来源1.1 主界面1.2 认识我界面1.3 我的文章界面1.4 我的模板界面1.5 文章内容界面 2.结构和源码2.1 目录结构2.2 源代码 源码下载 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/135368653 html5实现好看…

C语言第三方库Melon开箱即用之词法分析器使用

之前的文章中&#xff0c;笔者介绍了Linux/UNIX C语言库Melon的基本功能及框架使用。 本文将介绍Melon中的词法分析器组件。 Melon的Github仓库为&#xff1a;https://github.com/Water-Melon/Melon 词法分析器在Melon中并不依赖于自身框架&#xff0c;因此可以在不初始化框…

Core Web Vitals

Core Web Vitals 是 Google 提出的一组用于衡量网页用户体验质量的指标。它们专注于三个方面&#xff1a;加载性能&#xff08;Largest Contentful Paint&#xff0c;LCP&#xff09;、交互性&#xff08;First Input Delay&#xff0c;FID&#xff09;和视觉稳定性&#xff08…

2024 年江苏省职业院校技能大赛高职软件测试赛项规程

2024 年江苏省职业院校技能大赛高职软件测试赛项规程 需要竞赛资源可私信博主&#xff01; 一、赛项名称 赛项编号&#xff1a;JSG202429 赛项名称&#xff1a;软件测试 赛项组别&#xff1a;高职学生组、高职教师组赛项归属专业大类&#xff1a;电子信息 二、竞赛目的 软件是…

详解Keras3.0 Callbacks API : TensorBoard(可视化工具)

TensorBoard TensorBoard是TensorFlow提供的可视化工具。需要安装TensorFlow才能使用此回调。此回调记录TensorBoard的事件&#xff0c;包括&#xff1a;度量汇总图、训练图可视化、重量直方图、采样剖面。 keras.callbacks.TensorBoard(log_dir"logs",histogram_…

vue3防抖函数封装与使用,以指令的形式使用

utils/debounce.js /*** 防抖函数* param {*} fn 函数* param {*} delay 暂停时间* returns */ export function debounce(fn, delay 500) {let timer nullreturn function (...args) {// console.log(arguments);// const args Array.from(arguments)if (timer) {clearTim…

docker部署simpleDocker

1&#xff0c;安装docker&#xff0c;请参考 linux安装docker 2&#xff0c;安装docker-compose&#xff0c;请参考 Docker-Compose 3&#xff0c;安装simpleDocker 准备docker-compose.yml文件 version: 3 services:redis:container_name: redisimage: redis:latestweb:conta…

imgaug库指南(八):从入门到精通的【图像增强】之旅

引言 在深度学习和计算机视觉的世界里&#xff0c;数据是模型训练的基石&#xff0c;其质量与数量直接影响着模型的性能。然而&#xff0c;获取大量高质量的标注数据往往需要耗费大量的时间和资源。正因如此&#xff0c;数据增强技术应运而生&#xff0c;成为了解决这一问题的…

Linux top命令教程:实时监控系统状态和进程(附实例详解和注意事项)

Linux top命令介绍 top命令&#xff08;Table of Processes&#xff09;是Linux中用来监视系统运行状态和查看系统中运行的进程的实时动态管理命令。它可以显示系统的总体信息&#xff0c;包括运行时间、负载、运行的进程数、CPU使用率、内存使用率等。 Linux top命令适用的L…

mysql原理--事务

1.事务的起源 对于大部分程序员来说&#xff0c;他们的任务就是把现实世界的业务场景映射到数据库世界。比如银行为了存储人们的账户信息会建立一个 account 表&#xff1a; CREATE TABLE account (id INT NOT NULL AUTO_INCREMENT COMMENT 自增id,name VARCHAR(100) COMMENT …

java 常⽤的线程池模式ScheduledThreadPool

用于定时或周期性地执行任务。 可以设置任务的延迟执行时间或执行周期。 使用场景&#xff1a;适用于需要定时执行任务的应用程序&#xff0c;如定时清理缓存、定时发送邮件等。 import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorServ…

excel统计分析——两因素有重复方差分析

参考资料&#xff1a;生物统计学 无重复观测值的两因素方差分析只能研究两个因素的主效应&#xff0c;不能考察因素间的交互作用&#xff0c;只有在确定因素间不存在交互作用时才能进行无重复观测值的试验和分析。为了准确估计因素的主效应、交互作用和随机误差&#xff0c;每个…

K8S学习指南(66)-CRD介绍

文章目录 引言什么是自定义资源定义&#xff08;CRD&#xff09;&#xff1f;CRD 对于 Kubernetes 的意义1. 定制资源类型2. 统一管理3. 更好的扩展性4. 与生态系统集成 如何使用 CRDCRD 的规范详解1. apiVersion 和 kind2. metadata.name3. spec.group 和 spec.versions4. spe…

061:vue中通过map修改一维数组,增加一些变量

第061个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏提供行之有效的源代码示例和信息点介绍&#xff0c;做到灵活运用。 &#xff08;1&#xff09;提供vue2的一些基本操作&#xff1a;安装、引用&#xff0c;模板使…

K8S-应用部署

1 应用管理解读 2 应用部署实践 资源对象管理关系 资源对象管理实践 手工方式&#xff1a; kubectl run pod名称 --imageimage地址资源清单方式: apiVersion: v1 kind: Pod metadata:labels:run: my-podname: my-pod spec:containers:- image: kubernetes-register.sswang.co…

Ubuntun构建本地源详细教程

联网主机上下载软件包并打包 首先使用一台已连接互联网的同版本ubuntu主机添加国内镜像源 mv /etc/apt/sources.list /etc/apt/sources.list.bak vim /etc/apt/sources.list# 写入下面的内容: deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiv…

jenkins安装报错:No such plugin: cloudbees-folder

jenkins安装报错&#xff1a;No such plugin: cloudbees-folder 原因是缺少cloudbees-folder.hpi插件 解决&#xff1a; 一&#xff0c;重新启动 http://xxx:8800/restart 二&#xff0c;跳到重启界面时&#xff0c;点击系统设置 三&#xff0c;找到安装插件&#xff0c;然…

1-03C语言超基础语法

一、概述 为了更好的进行后续的课程&#xff0c;避免出现"老师&#xff0c;我还没学过的东西&#xff0c;你怎么直接用&#xff1f;"诸如此类疑问&#xff0c;本小节就诞生了。 实际上&#xff0c;整个第一个大章节的所有小节都是"C语言基础语法"&#x…

【js逆向】爬虫之进程,线程,协程

目录 1、进程 1.1 进程定义 1.2 创建进程 1.2.1 创建单个进程 1.2.2 进程池 2、线程 2.1 线程定义 2.2 创建线程 2.2.1 创建单个线程 2.2.2 线程池

C/C++ 枚举

目录 枚举概述 枚举的使用 枚举的大小计算 枚举的优点 C语言中的自定义类型有&#xff1a;结构 位段 枚举 联合 枚举概述 枚举顾名思义就是一一列举&#xff0c;把可能的取值一一列举。 比如我们现实生活中&#xff1a;一周的星期一到星期日是有限的7天&#xff0c…