JDBC-MySQL

JDBC-MySQL

  • 1.JDBC 操作步骤
    • 1.1 DriverManager
    • 1.2.Connection对象
    • 1.3 Statement
    • 1.4 PreparedStatement

1.JDBC 操作步骤

在这里插入图片描述

public  void quickStart() throws ClassNotFoundException, SQLException {//1、注册驱动 (确认要使用哪个数据库)Class.forName("com.mysql.jdbc.Driver"); //加载Driver类//2、连接数据库 (获取到一个数据库连接对象)String url ="jdbc:mysql://127.0.0.1:3306/db1";//String url ="jdbc:mysql://127.0.0.1:3306/db5?useUnicode=true&characterEncoding=utf8";//解决中文乱码Connection conn = DriverManager.getConnection(url, "root", "");//3、编写SQL语句String sql="select id,name  from user";//4、把SQL语句发送给数据库 (数据库执行SQL代码,并返回执行结果)Statement stmt = conn.createStatement();//基于数据库连接对象,创建一个操作数据库的对象ResultSet rs = stmt.executeQuery(sql);//把sql代码发给数据库//5、处理SQL的执行结果while(rs != null && rs.next()){System.out.print(rs.getInt("id")+"\t");System.out.print(rs.getString("name")+"\t");System.out.println("=======================================");}//6、释放资源(断开和数据库的连接)rs.close();stmt.close();conn.close();}

1.1 DriverManager

Driver Manager(驱动管理类)作用:
1.注册驱动
2.获取数据库连接
//注册驱动
MySQL 5之后的驱动包,可以省略注册驱动的步骤
自动加载jar包中META-INF/services/java.sql.Driver文件中的驱动类
Class.forName("com.mysql.jdbc.Driver");//获取数据库连接
Connection conn = DriverManager.getConnection(连接路径, 用户名, 密码);

1.2.Connection对象

Connection(数据库连接对象)作用:
1.获取执行 SQL 的对象
2.管理事务
//Connection是一个接口
//作为数据库连接对象
//作用:  1、创建数据库操作对象    2、管理事务conn.setAutoCommit(false); //相当于MySQL中的 : start transaction;conn.commit();             //相当于mysql中的: commitconn.rollback();            // rollback

1.3 Statement

Statement作用:
执行SQL语句
int    executeUpdate(sql):执行DMLDDL语句
//返回值:(1) DML语句影响的行数 (2) DDL语句执行后,执行成功返回 0
ResultSet    executeQuery(sql):执行DQL 语句
//返回值: ResultSet 结果集对象ResultSet使用步骤:
游标向下移动一行,并判断该行否有数据:next()
获取数据:getXxx(参数)
//循环判断游标是否是最后一行末尾
while(rs.next()){//获取数据rs.getXxx(参数);
}

1.4 PreparedStatement

解决Statement对象中存在的SQL注入风险

//创建PreparedStatement对象   【预编译SQL对象】
PreparedStatement  pstmt = 数据库连接对象.prepareStatement( sql语句 );
String sql="select * from user where username=? and pasword=?";//?是占位符(先占个位置,没有值)把sql语句先发给数据库给?占位符,赋值:   1,"aaa"     2,"aaa"

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

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

相关文章

嵌入式中,日志调试法的一些规则!

日志调试法是嵌入式系统开发中常用的一种调试手段,它通过在代码中添加日志信息来记录程序的运行状态,帮助开发者了解程序在运行过程中的行为,从而定位问题所在。以下是一些嵌入式日志调试的基本规则和示例代码。 日志调试的基本规则 确定日志…

C++使用QtHttpServer开发服务端Server的Http POST接口和客户端Client示例

Client HTTP POST 假设http://127.0.0.1:8888/post/是一个能够接受POST请求的路径,我们想要向它提交一段json数据,用Qt可以这样实现: Suppose we want to make an HTTP POST with json body to http://127.0.0.1:8888/post/. QCoreApplica…

短视频直播教学课程小程序的作用是什么

只要短视频/直播做的好,营收通常都不在话下,近些年,线上自媒体行业热度非常高,每条细分赛道都有着博主/账号,其各种优势条件下也吸引着其他普通人冲入。 然无论老玩家还是新玩家,面对平台不断变化的规则和…

《2024年DDoS趋势报告》:DDoS攻击规模飙升233.33%

2023年,数字领域面临着分布式拒绝服务(DDoS)攻击的变革浪潮,攻击速度创纪录地达到了每秒700 Gbps和8000万数据包。这些事件跨越了从游戏到金融服务的各个行业,突显了DDoS是一种普遍存在的风险。 值得注意的是&#xf…

Ubuntu server 24 (Linux) sudo 免输密码

1 sudo 使用要输入密码,费时费力。 2 sudo命令免输密码,需要修改/etc/sudoers文件 #本文以test用户为例,#允许不需要输入密码执行 sudo vi /etc/sudoers test ALL(ALL) NOPASSWD: ALL %sudo ALL(ALL:ALL) ALL --> #%sudo ALL(ALL:ALL) ALL#所有…

SASS语法基础

SASS基础语法 1. 变量和嵌套 变量:在SASS中,您可以使用变量来存储重复使用的值,例如颜色、字体大小等。定义一个变量时,使用$符号,如下所示: // 定义变量 $primary-color: #0074D9;// 使用变量 body {ba…

JavaScript逻辑中断

在JavaScript中,逻辑中断通常指的是在代码执行过程中,由于某些条件或异常,导致代码的正常流程被打断或改变。这种中断可以是由控制流语句(如if、for、while、switch等)引起的,也可以是由异常处理&#xff0…

掌握 NestJS 10.x:NestJS 结合 PostgreSQL 使用详解

NestJS 是一个用于构建高效、可扩展的 Node.js 服务端应用的框架。结合 PostgreSQL 数据库,可以为应用提供强大的数据存储和查询功能。本文将详细介绍如何在 NestJS 项目中集成和使用 PostgreSQL,并创建一个包含增加用户接口的完整示例。 1. 安装必要的依赖 首先,确保你的…

华为FPGA工程师面试题

FPGA工程师面试会涉及多个方面,包括基础知识、项目经验、编程能力、硬件调试和分析等。以下是一些必问的面试题: 基础知识题: 请解释FPGA的基本组成和工作原理。描述FPGA中的可编程互联资源以及它们在构建复杂数字电路中的作用。请解释嵌入式…

基于VITA57.4标准的单通道6GSPS 12位采样ADC,单通道 6GSPS 16位采样DAC子卡模块

板卡概述 FMC147是一款单通道6.4GSPS(或者配置成2通道3.2GSPS)采样率的12位AD采集、单通道6GSPS(或配置成2通道3GSPS)采样率16位DA输出子卡模块,该板卡为FMC标准,符合VITA57.4规范,该模块可以作…

Day 42 LVS四层负载均衡

一:负载均衡简介 1.集群是什么 ​ 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术 …

量化研究---大qmt实盘实现禄得可转债策略轮动

前面写了一个强大的可转债自定义系统,我们可以利用这个快速对接到大qmt,我提供实时数据支持 量化研究---强大的可转债分析系统上线,提供api,实时数据支持 打开网页 http://120.78.132.143:8023/ 强大可转债选择系统 http://120.78.132.143:8…

移植GT9XX遇到的问题

gt9xx驱动移植触摸不准:厂家提供的cfg有问题,重新问厂家要一份正确的 XY坐标镜像: 在gtp_get_points函数里修改代码: if(ts->pdata->reverse_xy) {points[i].x ts->pdata->abs_size_x - (coor_data[1] | (coor_da…

代码实操学会socket网络编程

一、网络编程接口 网络编程接口是一组提供给开发者使用的函数和方法集合,用于在应用程序中实现网络通信功能。它提供了一种抽象层,使得开发者能够使用高级编程语言(如C、C++、Java、Python等)来进行网络编程,而无需直接处理底层的网络协议和细节。 网络编程接口的功能和作…

容器中运行ifconfig提示bash: ifconfig: command not found【笔记】

容器中运行ifconfig提示bash: ifconfig: command not found 这个问题是因为在容器中没有安装ifconfig命令。 在容器中安装ifconfig命令,可以使用以下命令: 对于基于Debian/Ubuntu的容器,使用以下命令: apt-get update apt-get …

【小海实习日记】金融-现货以及合约理解

在股票和金融市场中,“单项持仓”和“双向持仓”是两个常见的概念,主要用于描述投资者在市场中的头寸及其策略。 单项持仓(单向持仓) 单项持仓是指投资者在市场中只持有一种方向的头寸(多头或空头)&#…

每日一练:利用多态思想和ArrayList集合,编写一个模拟KTV点歌系统的程序。【多态思想和ArrayList集合的综合应用】

目录 一、设计程序使用ArrayList集合,编写一个模拟KTV点歌系统的程序。参考代码歌曲类歌单类KTV类测试类运行效果 总结 最后 一、设计程序 使用ArrayList集合,编写一个模拟KTV点歌系统的程序。 要求: 输入0代表添加歌曲输入1代表将所选歌曲…

云原生环境下GPU算力调度发展分析

云原生环境下GPU算力调度深度分析 概述: 云原生时代,GPU算力调度与管理备受瞩目,成为企业和云服务提供商关注的焦点,助力AI、深度学习、高性能计算等领域,满足对GPU资源的迫切需求。 容器化与编排: Kube…

突破开源天花板!最强文本转语音工具ChatTTS:对话式高可控的语音合成模型

ChatTTS 一夜爆火, 极速出圈, 3 天就斩获 9k 的 Star 量, 截止 2024.06.04, 已经 19.3k 的 star, 极速接近 GPT-soVITs 当天的 26.2k 的 star 数。 什么是ChatTTS? TTS全称:Text To Speech&am…

java 基于注解的防重复提交

由于前端未作防抖校验或者接口调用者出现问题导致调用多次情况时有发生,像查询这种请求即使多次请求也不会造成什么影响,但是涉及增删改可就影响大了。 1、首先定义一个自定义注解 /*** 自定义注解防止表单重复提交* * author fjh**/ Inherited Target…