Mysql语法五:idea连接数据库和jdbc

news2024/11/23 2:49:33

目录

1.连接数据库

1.1.下载驱动包

1.2:连接数据库

2.jdbc编程

2.1:何为jdbc

2.2:jdbc的使用。

2.2.1:直接插入操作

2.2.2:利用?进行插入

2.2.3:修改操作

2.2.4:删除操作

2.2.5:查找操作 


前言:前一篇我们讲了什么是数据库的事务和索引。接下来,我们要了解一下如何在idea连接数据库,并进行jdbc的编程。


1.连接数据库

连接数据库需要先下载一个mysql提供java的驱动包mysql-connector-java

首先需要下载一个驱动包

1.1.下载驱动包

下载地址:

 https://mvnrepository.com/

1.先在热门类型找到jdbc驱动程序并点击 

2.点击连接器

 3.找到和自己mysql相适应的驱动包并点击,我的mysql是5.7。

之后大致在一个版本就可以,不用精确到莫个版本的第几代。

 4.下载


1.2:连接数据库

1.找到驱动包下载到哪里,并将这个驱动包复制。

2.在idea建立一个lib 包并将这个驱动包粘贴进去。

 3.建立依赖


 1.3:检验数据库是否连接成功

characterEncoding=utf8是设置你的字符集是utf8.

useSSL=false:关闭保密功能。


2.jdbc编程

2.1:何为jdbc

jdbc就是Java数据库连接,是一种用于执行SQL语句的java  Api,是java中的数据库连接规范。

可以为多种关系数据库提供统一接口,jdbc为多种关系数据库提供了统一的访问方式,使程序的可移植性大大增加。

2.2:jdbc的使用。

jdbc的增加,修改,删除都是都是调用executeupdate()来执行的。

jdbc的查找是调用executeQuery()来执行的。并且查找返回的是一个结果集。

关闭资源的操作和打开资源的操纵顺组是相反的。

1.首先要和数据库建立连接。

2.你进行修改,查询和删除的表,首先要在数据库存在。

2.2.1:直接插入操作

 //从键盘中输入学号3 ,姓名:琪琪,数学 78,语文90 英语 72.5
        System.out.println("请输入学号,数,语,英三门成绩,姓名");
        Scanner scan=new Scanner(System.in);
        int id=scan.nextInt();
        double math=scan.nextDouble();
        double chinese=scan.nextDouble();
        double english=scan.nextDouble();
        String name=scan.next();
        //编写sql语句
        String sql = "insert into student values(" + id +",'"+name +"', " +math+"," +chinese+"," +english+")";
        PreparedStatement statement= connection.prepareStatement(sql);
        //sql语句的 增 删 改的语句都是通过executeUpdate()来执行的
        int row= statement.executeUpdate();
        System.out.println(row);
        //关闭连接
        statement.close();
        connection.close();
    }
}


2.2.2:利用?进行插入

 //String sql = "insert into student values(" + id +",'"+name +"', " +math+"," +chinese+"," +english+")";
        String sql = "insert into student values(?, ?, ?, ?, ?)";
        PreparedStatement statement= connection.prepareStatement(sql);
        statement.setInt(1,id);//id是int,是第一个?代替的。
        statement.setString(2,name);
        statement.setDouble(3,math);
        statement.setDouble(4,chinese);
        statement.setDouble(5,english);

第一个?的位置是1,依次类推,根据你要代替?的数据类型选择setString StringInt----

第一个参数是第几个?,第二个参数,是你想代替的数据。


2.2.3:修改操作

 //连接数据库
        Connection connection= dataSource.getConnection();
        //SQL语句
        String sql="update  student set name='琪琪' where name='qiqi'";
        PreparedStatement statement= connection.prepareStatement(sql);
        int row= statement.executeUpdate();
        //关闭。如同栈一般,先开后关
        statement.close();
        connection.close();


2.2.4:删除操作

//连接数据库
        Connection connection= dataSource.getConnection();
        //SQL语句
        String sql="delete from student where name='甜甜'";
        PreparedStatement statement= connection.prepareStatement(sql);
        int row = statement.executeUpdate();
        //关闭资源
        statement.close();
        connection.close();


2.2.5:查找操作 

查找操作返回的是一个结果集。我们这里用while循环将结果集进行打印出来。

 next 相当于移动一下光标, 光标指向下一行. 然后移动到结尾, 就返回 false

使用 getXX() 方法获取到每一列 ,括号里面的是你想查询表的列名。返回的是你获取此列的数据。

  //连接数据库
        Connection connection= dataSource.getConnection();
        //执行SQL语句
        String sql="select * from student where math>80";
        PreparedStatement statement= connection.prepareStatement(sql);
        ResultSet set= statement.executeQuery();
        while(set.next()){
            int id= set.getInt("id");
            String name=set.getString("name");
            double math= set.getDouble("math");
            double chinese= set.getDouble("chinese");
            double english= set.getDouble("english");
            System.out.println(id+" "+name+" "+math+" "+chinese+" "+english+" ");
        }
        //关闭资源
        statement.close();
        connection.close();
    }


总结:

以上就是我总结的jdbc的使用,若有不对之处,请各位铁子留言纠错,若感觉不错,请一键三连。

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

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

相关文章

算法基础:动态规划

目录 动态规划之禅 多种纬度解决Fibonacci 数列 什么是Fibonacci数列 朴素递归方案 朴素递归的问题 Fib自上而下、备忘录方案 Fib自下而上法 动态规划之禅 动态规划是算法基础部分中最有趣的一个了,我想了很多天,怎么用很短的一些话把动态规划像之…

onnx删除无用属性

这里写自定义目录标题在推理onnx模型时,报了一个错,如下:InvalidGraph: [ONNXRuntimeError] : 10 : INVALID_GRAPH : This is an invalid model. In Node, ("Conv_0", Conv, "", -1) : ("x": tensor(float),&q…

DPVS时间轮移植

DPDK自带的定时器采用跳表实现,时间复杂度是O(logn),当有大量事件要定时触发时,比如会话session老化,效率并不高。因此DPVS采用了O(1)复杂度的时间轮。0. 概述 a. 添加定时器事件的核心是 static int __dpvs_timer_sched(struct…

为何 SPARK 在应用 GPU 后表现更出色

什么是 APACHE SPARK? 伴随数据的巨量增长,Apache Spark 已成为分布式横向扩展数据处理的热门框架之一,可以在本地和云端数以百万计的服务器上运行。 Apache Spark 是应用于大型数据处理的快速通用分析引擎,可在 YARN、Apache Mes…

程序员还在为变量取名苦恼,那是因为你不知道,这个变量命名神器

作为程序员,变量命名应该是我们编程的开端,也是我们每天都必须需要做的事情。变量命名规范的重要性,相信大家都知道非常重要,良好的代码风格,带来好处有: 1、具有良好的可读性; 2、维护代码时…

【独立篇】React UI组件库

文章目录1、React UI组件库1.1、material-ui(国外)1.2、ant-design(国内蚂蚁金服-antd)2、AntD的简单使用2.1、CODE2.2、Result1、React UI组件库 1.1、material-ui(国外) 官网: http://www.material-ui.…

硬件定义软件?还是,软件定义硬件?

文章目录**1 软件和硬件****1.1 软件和硬件的定义****1.2 “硬件定义软件”和“软件定义硬件”的定义****1.3 CPU,软件和硬件解耦****1.4 CPU的软硬件定义****2 硬件定义软件****2.1 系统从软件逐步到硬件****2.2 硬件架构决定了软件设计****2.2.1 ASIC的硬件定义**…

【车辆配送】基于模拟退火 (SA)求解车辆配送 (VPR) (Matlab代码实现)

目录 1 车辆配送问题 2 模拟退火法 3 实现结果 4 参考文献 5 Matlab代码实现 1 车辆配送问题 式(9)~( 12)中, 为配送车辆到达需求点i的时间;为需求点i到需求点j的运输成本;、分别为配送车辆提前到达需求点i的或者滞后到达需求点i的单位时间内的等待成本以及惩罚成本。该数…

基于vue项目的代码优化

前言 项目上线后其整体性能的优良是用户也是研发人员所关注的。项目优化非常重要,一丝一毫的提升都是对用户的负责。因此我们在开发中就应该注重细节,优化工作从日常开发做起。本篇文章就分享一些在日常开发中代码层面的优化手段。 开发常用优化手段 …

04-Docker-容器数据卷

目录 一、坑!!!! 二、什么是容器卷 三、容器卷的作用 四、容器卷案例 1、宿主vs容器之间映射添加容器卷 五、容器卷ro和rw规则 一、坑!!!! 容器卷记得加入 --privilegedtrue …

2022-11-30 Github Forking 工作流模式

Forking 工作流 fork 操作是在个人远程仓库新建一份目标远程仓库的副本,流程如下: 比如在 GitHub 上操作时,在项目的主页点击 fork 按钮(页面右上角),即可拷贝该目标远程仓库。 假设开发者 A 拥有一个远程仓…

HTML网页设计制作大作业(游戏主题)---电竞

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 游戏官网 | 游戏网站 | 电竞游戏 | 游戏介绍 | 等网站的设计与制作 | HTML期末大学生网页设计作业,Web大学生网页 HTML:结构 …

《MongoDB》Mongo Shell中的基本操作-文档查询

前端博主,热衷各种前端向的骚操作,经常想到哪就写到哪,如果有感兴趣的技术和前端效果可以留言~博主看到后会去代替大家踩坑的~ 主页: oliver尹的主页 格言: 跌倒了爬起来就好~ 来个关注吧,点个赞…

在Word、WPS中插入AxMath公式导致行间距异常的解决办法

引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常,如下图所示: 查遍互联网,最有效的办法竟然要取消文档网格对齐,这对于一些严格要求的场合是非常不利的,经过我的尝试&#…

xss-labs/level15

因为前一关打不开了 所以直接跳到15关来 查看源代码 他的输出点位于属性值处 所以要想通过<script></script>实现弹窗效果的话 那么就要逃离属性值 那么势必要闭合引号 根据以上的分析 我们做出如下构造 "><script>alert(xss)</script>// …

使用 Mason 创建自己的 Flutter brick

使用 Mason 创建自己的 Flutter brick 原文 https://medium.com/gytworkz/create-your-own-flutter-brick-using-mason-7abc70d0324e 前言 谁不喜欢用最少的努力完成大部分事情呢&#xff1f;我当然知道! &#xff01;Mason 帮我完成了几个简单的步骤。 在本文中&#xff0c;我…

观察者(订阅)模式

文章目录思考观察者模式1.观察者模式的本质2.何时选用观察者模式3.优缺点4.实现手写观察者模式JDK观察者模式思考观察者模式 观察者模式是典型的发布订阅模式&#xff0c;当一个东西有变化了&#xff0c;就通知所有订阅他的人 1.观察者模式的本质 观察者模式的本质:触发联动。 …

什么是等保

等保的全称是信息安全等级保护&#xff0c;是《网络安全法》规定的必须强制执行的&#xff0c;保障公民、社会、国家利益的重要工作。以下是一些有关等保的基本知识&#xff0c;希望通过这些知识能让大家更深刻地认识到等级保护的重要性。 等级保护定义 信息安全等级保护是指…

2.Conv2d实现

[C 基于Eigen库实现CRN前向推理] 第二部分&#xff1a;Conv2d实现 前言&#xff1a;(Eigen库使用记录)第一部分&#xff1a;WavFile.class (实现读取wav/pcm,实现STFT)第二部分&#xff1a;Conv2d实现第三部分&#xff1a;TransposedConv2d实现 (mimo,padding,stride,dilatio…

智工教育:注册计量师职业资格条件已改革!

第一&#xff0c;报名条件发生变化 注册计量师职业资格考试&#xff0c;取消了一级注册计量师职业资格考试报考条件中对工作年限的要求。 凡遵守中华人民共和国宪法、法律、法规&#xff0c;恪守职业道德&#xff0c;诚实守信&#xff0c;从事计量技术工作&#xff0c;符合注册…