mysql jdbc数据库速成总结

第一步导图jar包 我们下载一个jar 按照我的习惯是把这个jar包放在桌面上 方便后续操作 

 然后对这个jar包ctrl + c复制 

接着我们在idea里面创建一个目录

我们命名为lib 然后在这个lib安ctrl + V进行粘贴  然后右键这个lib 找到添加为库

我的idea好像没有选择  只有添加为模块

点击确定我们的jar包就算导入好了

接下来我们就在src创建一个类就好了 我们可以直接把包名和类名都创建一下 com.guansuian.JDBCDemo 注意包名只有小写字母 然后这个类名的第一个首字母需要大写

我们使用刚刚我写在这里的英文就可以将类和包都创建好了

第一步注册包:
先创建一个主函数然后Class. forname("  ");

注意我们需要抛出一下异常 

throws Exception
package com.guansuian;public class JDBCDemo {public static void main(String[] args) throws Exception {//1.注册驱动(这个其实在我看来就是报的意思)Class.forName("com.mysql.jdbc.Driver");}}

然后我们需要登录,登录需要一个地址 如果我们登录的是系统第一个为我们创建的链接我们就不需要写链接的名字

在这里面有几个类

第一个

 

DriverManager是一个类(驱动管理类)

它可以实现

 

Connection类

 

  1. 获取执行SQL的对象

Connection conn = DriverManager.getConnection();

  1. 管理事物 常常和java里面的try catch搭配使用

小技巧:ctrl + alt + t这个是将某一段代码包裹起来的一句话 然后选择你想要选择的语句

 

 Statement

 

DDL:对标和库的增删改查操作

DML:对数据增删改操作

DQL:对数据的查询操作

package com.guansuian;import org.junit.Test;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
//statement类的操作public class test1 {@Testpublic void testDML() throws Exception {//注册服务器// Class.forName("com.mysql.cj.jdbc.Driver");String url = "jdbc:mysql:///class?useSSL=false";//这个3306/后面就是创建数据库的名字,不是表的名字  这个可以直接不用写端口(前提是我们使用本机的端口)//注意我们使用这个为了不看键那行烦的注册 我们可以在class后面写上useSSL=false这个语句String user = "root";String password = "123456";Connection conn= DriverManager.getConnection(url,user,password);Statement stmt = conn.createStatement();String sql1 = "update user set name='hahaha' where id=1 "; //这个就是进行修改的操作 简单翻译一下就是 更新用户  设置名字为'?' 在哪里进行设置String sql2 = "update user set name='吴翔' where id = 5";try {//1.开启事物conn.setAutoCommit(false);int count1 = stmt.executeUpdate(sql1);int count2 = stmt.executeUpdate(sql2);//2.提交事物conn.commit();} catch (Exception e) {conn.rollback();throw new RuntimeException(e);}stmt.close();conn.close();}@Testpublic void testDDL() throws Exception {//注册服务器// Class.forName("com.mysql.cj.jdbc.Driver");String url = "jdbc:mysql:///class?useSSL=false";//这个3306/后面就是创建数据库的名字,不是表的名字  这个可以直接不用写端口(前提是我们使用本机的端口)//注意我们使用这个为了不看键那行烦的注册 我们可以在class后面写上useSSL=false这个语句String user = "root";String password = "123456";Connection conn= DriverManager.getConnection(url,user,password);Statement stmt = conn.createStatement();String sql1 = "update user set name='hahaha' where id=1 "; //这个就是进行修改的操作 简单翻译一下就是 更新用户  设置名字为'?' 在哪里进行设置String sql2 = "update user set name='吴翔' where id = 5";//下面这个语句是执行增加的语句String sql3 = "insert into user (id,name,password) values (6,'AA',123456)";String sql4 = "delete from user where id=1";try {//1.开启事物conn.setAutoCommit(false);int count1 = stmt.executeUpdate(sql1);int count2 = stmt.executeUpdate(sql2);//stmt.executeUpdate(sql3);stmt.executeUpdate(sql4);//2.提交事物conn.commit();} catch (Exception e) {conn.rollback();throw new RuntimeException(e);}stmt.close();conn.close();}}

这个只是实现了增删改的操作

如果要实现查的还需要学习到一个类

这个ResulitSet就是进行一个查询结果的返回值

小技巧:

我们要打印每一个变量的时候我们可以使用变量名.sout这样就可以直接将我们需要的东西直接进行打印

在后续的编程中我们常用到一种分层的思想进行编程:

常常有这么几层:

1.pojo层(存放对象的包)

2.dao层(数据持久层:操作数据库)

3.service层(业务层:处理业务逻辑,调用dao层)

4.controller层(控制层,调用业务方法,将数据返回给前端界面)

第一对于业务层:
这个就和之前我些项目的时候进行的文件操作一样,首先需要进行文件资料的导入

并将这个资料导入到一个集合中(输入数据)

小技巧:ctrl + w就是将整个句子进行扩张

完整的增删改查的操作:

package com.guansuian;import org.junit.Test;import java.sql.*;
import java.util.Scanner;
//statement类的操作public class test1 {//这个方法是修改方法@Testpublic void fix() throws Exception {String url = "jdbc:mysql:///class?useSSL=false";String user = "root";String password = "123456";Connection conn= DriverManager.getConnection(url,user,password);Statement stmt = conn.createStatement();String sql1 = "update user set name='hahaha' where id=1 ";String sql2 = "update user set name='吴翔' where id = 2";try {//1.开启事物conn.setAutoCommit(false);int count1 = stmt.executeUpdate(sql1);int count2 = stmt.executeUpdate(sql2);if(count1>0 && count2 > 0){System.out.println("修改成功");}else{System.out.println("修改失败");}//2.提交事物conn.commit();} catch (Exception e) {conn.rollback();throw new RuntimeException(e);}stmt.close();conn.close();}//增加操作@Testpublic void add() throws Exception {//注册服务器// Class.forName("com.mysql.cj.jdbc.Driver");String url = "jdbc:mysql:///class?useSSL=false";//这个3306/后面就是创建数据库的名字,不是表的名字  这个可以直接不用写端口(前提是我们使用本机的端口)//注意我们使用这个为了不看键那行烦的注册 我们可以在class后面写上useSSL=false这个语句String user = "root";String password = "123456";Connection conn= DriverManager.getConnection(url,user,password);Statement stmt = conn.createStatement();//下面这个语句是执行增加的语句String sql1 = "insert into user (id,name,password) values (1,'关岁安',123456)";String sql2= "insert into user (id,name,password) values (2,'郑美玲',123456)";String sql3= "insert into user (id,name,password) values (3,'刘欣',123456)";String sql4= "insert into user (id,name,password) values (4,'邓凯',123456)";String sql5= "insert into user (id,name,password) values (5,'邓志豪',123456)";String sql6= "insert into user (id,name,password) values (6,'陈归鸿',123456)";try {//1.开启事物conn.setAutoCommit(false);stmt.executeUpdate(sql1);stmt.executeUpdate(sql2);stmt.executeUpdate(sql3);stmt.executeUpdate(sql4);stmt.executeUpdate(sql5);stmt.executeUpdate(sql6);//2.提交事物conn.commit();} catch (Exception e) {conn.rollback();throw new RuntimeException(e);}stmt.close();conn.close();}//删除操作@Testpublic void detele() throws Exception {//注册服务器// Class.forName("com.mysql.cj.jdbc.Driver");String url = "jdbc:mysql:///class?useSSL=false";//这个3306/后面就是创建数据库的名字,不是表的名字  这个可以直接不用写端口(前提是我们使用本机的端口)//注意我们使用这个为了不看键那行烦的注册 我们可以在class后面写上useSSL=false这个语句String user = "root";String password = "123456";Connection conn= DriverManager.getConnection(url,user,password);Statement stmt = conn.createStatement();//下面这个语句是执行增加的语句String sql1 = "delete from user where id=6";try {//1.开启事物conn.setAutoCommit(false);stmt.executeUpdate(sql1);//2.提交事物conn.commit();} catch (Exception e) {conn.rollback();throw new RuntimeException(e);}stmt.close();conn.close();}//查询操作@Testpublic void equry() throws Exception {String url = "jdbc:mysql:///class?useSSL=false";String user = "root";String password = "123456";Connection conn= DriverManager.getConnection(url,user,password);Statement stmt = conn.createStatement();String sql1 = "SELECT *FROM `user`";ResultSet res = stmt.executeQuery(sql1);try {//1.开启事物conn.setAutoCommit(false);while(res.next()){int id = res.getInt(1);String name = res.getString(2);String password1 = res.getString(3);System.out.print("id:  " + id +"    ");System.out.print("name:  " +name+"    ");System.out.println("password1:  " + password1);}//2.提交事物conn.commit();} catch (Exception e) {conn.rollback();throw new RuntimeException(e);}stmt.close();conn.close();res.close();}
}

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

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

相关文章

在NaviCat中把.txt文本数据加载到创建好的表格中

本篇博客学习将文本文件(.txt)的数据加载到数据库表中 一、 打开NaviCat并连接到数据库 - 启动NaviCat应用程序。 - 在“连接”面板中,选择或创建一个到目标数据库的连接。 - 使用适当的凭据(如用户名和密码)连接到…

解决报错 npm ERR! Missing script:“serve“

项目场景: 在运行vue项目时,遇到报错!导致无法启动! 问题描述 报错:npm犯错!缺少脚本:“serve” npm ERR! Missing script:"servenpmERR!ERR! To see a list of scripts, run:noMnpmERR!npm runnpm ERR! A compl…

PicGo + Gitee + VsCode - 搭建私人图床

文章目录 前言搭建图床VsCode 安装插件安装 PicGo准备 Gitee 图床测试 尾声 前言 本人是一个重度 vimer,并且喜欢客制化一些东西… Typora 固然好用,但不支持 vim…发现 vscode 中既可以使用 vim,也可以 md,用起来比较舒服.因此…

Android 11属性系统初始化流程

在init进程启动的第二阶段,调用PropertyInit 对属性系统进行初始化 int SecondStageMain(int argc, char** argv) {//省略PropertyInit();//省略 }PropertyInit函数在system\core\init\property_service.cpp 中实现 void PropertyInit() {//省略mkdir("/dev/…

Linux进阶篇:磁盘管理(二):LVM的创建、格式化和使用

Linux磁盘管理(二):LVM的创建、格式化和使用 一、LVM原理回顾 LVM的工作原理进行一个总结: (1)物理磁盘被格式化为PV,空间被划分为一个个的PE (2)不同的PV加入到同一个VG中,不同PV的PE全部进入到了VG的PE…

10 Python进阶:MongoDB

MongoDb介绍 MongoDB是一个基于分布式架构的文档数据库,它使用JSON样式的数据存储,支持动态查询,完全索引。MongoDB是NoSQL数据库的一种,主要用于处理大型、半结构化或无结构化的数据。以下是MongoDB数据库的一些关键特点和优势&a…

LabVIEW太赫兹波扫描成像系统

LabVIEW太赫兹波扫描成像系统 随着科技的不断发展,太赫兹波成像技术因其非电离性、高穿透性和高分辨率等特点,在生物医学、材料质量无损检测以及公共安全等领域得到了广泛的应用。然而,在实际操作中,封闭性较高的信号采集软件限制…

最优算法100例之38-构建乘积数组

专栏主页:计算机专业基础知识总结(适用于期末复习考研刷题求职面试)系列文章https://blog.csdn.net/seeker1994/category_12585732.html 题目描述 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不…

【opencv】示例-dft.cpp 该程序演示了离散傅立叶变换 (dft) 的使用,获取图像的 dft 并显示其功率谱...

#include "opencv2/core.hpp" // 包含OpenCV核心功能头文件 #include "opencv2/core/utility.hpp" // 包含OpenCV实用程序头文件 #include "opencv2/imgproc.hpp" // 包含OpenCV图像处理头文件 #include "opencv2/imgcodecs.hpp" // 包…

深入Linux设备模型:开发者指南

Linux的设备模型是操作系统管理硬件设备的一种高级抽象,它不仅涉及到设备驱动程序的加载和卸载,还包括设备之间的关系、设备的状态管理以及与用户空间通信的机制。理解Linux的设备模型对于应用开发人员来说至关重要,它有助于开发出更加稳定、…

身份证实名认证接口的价格一般是多少呢?基于PHP身份核验接口

身份证实名认证接口分为身份证二要素、三要素、三要素人像核验接口,被广泛的应用于婚恋、交友、电商等等一系列行业领域,身份证实名认证需要实时数据,对于数据源来说也需要可靠,那么,身份证实名认证的价格是不是很贵呢…

故障诊断 | 一文解决,GCN图卷积神经网络模型的故障诊断(Matlab)

效果一览 文章概述 故障诊断 | 一文解决,GCN图卷积神经网络模型的故障诊断(Matlab) 模型描述 GCN(Graph Convolutional Network)是一种基于图结构数据进行卷积操作的神经网络模型。它在处理图数据上展现了很好的性能,特别适用于节点分类、图分类和图生成等任务。 GCN模…