MySQL数据库(十)

news2024/10/6 0:35:38

目录

一、Java的数据库编程:JDBC

1.1JDBC工作原理

二、Java具体连接数据库

2.1准备过程

2.2代码连接数据库


一、Java的数据库编程:JDBC

JDBC,即Java Database Connectivity,java数据库连接。是一种用于执行SQL语句的Java API,它是Java中的数据库连接规范。这个API由 java.sql.*,javax.sql.* 包中的一些类和接口组成,可以为多种关系数据库提供统一访问。

1.1JDBC工作原理

JDBC访问数据库层次结构:

JDBC优势:

  • Java语言访问数据库操作完全面向抽象接口编程
  • 开发数据库应用不用限定在特定数据库厂商的API
  • 程序的可移植性大大增强

二、Java具体连接数据库

2.1准备过程

首先根据自己的mysql版本去选择对应的jar包,这里推荐使用中央仓库https://mvnrepository.com/去下载对应的jar包。

如果你的mysql版本是5.多那就在对应的5版本中随便下载一个就行了,8.多版本就在8.版本随便下载一个,不能5版本用8版本的jar包

 然后开始建立项目,在项目中建立一个lib的文件夹

将下载好的jar包复制到lib文件夹中,然后右键lib文件夹找到并点击Add最后点击ok,准备工作就已经结束了

2.2代码连接数据库

1.创建数据源:

DataSource dataSource = new MysqlDataSource();
//这个setUrl中的直接复制就行了,不需要刻意的去记,但是一点要更改这个test数据库为自己的数据库
((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=false");
//输入用户名,一般都是root
((MysqlDataSource) dataSource).setUser("root");
//输入自己的数据库密码,
((MysqlDataSource) dataSource).setPassword("123456");

2.和数据库建立连接

//这里会有一个异常,直接抛出去就行了
Connection connection = dataSource.getConnection();

3.构造sql语句 

这里是默认已经有了test表,没有的可以自己建立一个,或者使用自己表

create table test(

        id int,

        name varchar(20)

);

String sql = "insert into test values(1,'张三')";
//使用prepareStatement对sql语句进行解析
PreparedStatement statement = connection.prepareStatement(sql);

4.执行sql语句

int n = statement.executeUpdate();

总体过程:

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class JDBCDemo2 {
    public static void main(String[] args) throws SQLException {
        //1.创建“数据源”
        DataSource dataSource = new MysqlDataSource();
        //这个setUrl中的直接复制就行了,不需要刻意的去记,但是一定要更改这个test数据库为自己的数据库
        ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=false");
        //输入用户名,一般都是root
        ((MysqlDataSource) dataSource).setUser("root");
        //输入自己的数据库密码,
        ((MysqlDataSource) dataSource).setPassword("123456");

        //2.和数据库服务器建立连接
        //这里会有一个异常,直接抛出去就行了
        Connection connection = dataSource.getConnection();

        //3.构造sql语句,这里默认已经有了test表
        String sql = "insert into test values(1,'张三')";
        //使用prepareStatement对sql语句进行解析
        PreparedStatement statement = connection.prepareStatement(sql);

        //4.执行sql语句
        int n = statement.executeUpdate();

        //释放资源.关闭连接
        statement.close();
        connection.close();
    }
}

准备执行,先查看test表是否含有数据,这里发现是没有数据的,然后启动程序,再次进行查询发现已经有数据了,证明数据库连接成功!

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

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

相关文章

华为认证HCIA-HCIP-HCIEdatacom题库解析+机构视频+实验

题库包含有2023年最新HCIA-datacom题库、HCIP-datacom题库,HCIE-datacom题库, 云计算HCIA,HCIP题库,云服务HCIA,HCIP题库,华为存储HCIP题库,华为安全HCIP题库 ,学习笔记,…

webrtc QOS笔记 Nack机制浅析

nack源码浅析 Video Nack 机制概述 nack的机制非常简洁,收到非连续的packet seq 会将丢包的seq插入自身nack_list缓存, 之后立即发送一次那组丢包的seq重传请求, 之后如果超时仍然没有收到重传回来的seq, 就通过定时任务继续发送. nack 三个缓存list nack_list_ : 用于记录已丢…

10分钟内入门 ArcGIS Pro

本文来源:GIS荟 大家好,这篇文章大概会花费你10分钟的时间,带你入门 ArcGIS Pro 的使用,不过前提是你有 ArcMap 使用经验。 我将从工程文件组织方式、软件界面、常用功能、编辑器、制图这5个维度给大家介绍。 演示使用的 ArcGI…

【SQL应知应会】表分区(一)• Oracle版

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流 本文收录于SQL应知应会专栏,本专栏主要用于记录对于数据库的一些学习,有基础也有进阶,有MySQL也有Oracle 分区表 • Oracle版 前言一、分区表1.什么是表分区…

《电脑城的衰退:时代变迁中的背影》

随着科技的不断进步和电子商务的兴起,电脑城这个曾经火爆的地方正逐渐走向衰退甚至面临消失。对于这一变迁,我认为既有利也有弊。 首先,电脑城的衰退带来了一定的便利。传统的电脑城通常拥有大量的实体店铺,买家必须亲自前往选择…

Qt/C++音视频开发49-多级连保存和推流设计(同时保存到多个文件/推流到多个平台)

一、前言 近期遇到个用户需要多级联的保存和推流,在ffmpegsave多线程保存类中实现这个功能,越简单越好,就是在推流的同时,能够开启自动转储功能,一边推流的同时一边录像保存到本地视频文件。最初设想的一个方案是new两…

LeetCode515. 在每个树行中找最大值

515. 在每个树行中找最大值 文章目录 [515. 在每个树行中找最大值](https://leetcode.cn/problems/find-largest-value-in-each-tree-row/)一、题目二、题解 一、题目 给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。 示例1: 输入: ro…

Nginx配置解析

server {listen 80;server_name example.com;location / {proxy_pass http://backend;}location / 是 Nginx 的一个匹配规则,用于匹配所有请求路径。proxy_pass 指令则用于将匹配到的请求转发给指定的后端服务器。下面是关于 location / 和 proxy_pass 的详细介绍&a…

YARN的设计思想

YARN的设计思想 ​ YARN的基本思想是将资源管理和作业调度/监视功能划分为单独的守护进程。其思想是拥有一个全局ResourceManager (RM),以及每个应用程序拥有一个ApplicationMaster (AM)。应用程序可以是单个作业,也可以是一组作业。 一个ResourceManag…

【Linux从入门到精通】进程的控制(进程替换)

本篇文章会对进程替换进行讲解。希望本篇文章会对你有所帮助 文章目录 一、进程替换概念 二、进程替换函数 2、1 execl 2、2 execlp 2、3 execv 2、3 execle 2、4 execve 三、总结 🙋‍♂️ 作者:Ggggggtm 🙋‍♂️ 👀 专栏&…

SpringBoot项目修改Tomcat版本号

SpringBoot项目修改Tomcat版本号 前言如果项目是以jar包形式打包部署如果项目是以war包形式打包部署示例 仰天大笑出门去,我辈岂是蓬蒿人 前言 Springboot项目,默认是使用内嵌Tomcat servlet容器形式打包部署。关于怎么修改默认的版本号,捣鼓了好久终于…

ChatGPT的工作原理:从输入到输出

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

Day 42 算法记录|动态规划 09 (打家劫舍)

打家劫舍 198.打家劫舍213.打家劫舍II337.打家劫舍 III 198.打家劫舍 1.dp[i]:考虑下标i(包括i)以内的房屋,最多可以偷窃的金额为dp[i]。 2.dp[i] max(dp[i - 2] nums[i], dp[i - 1]); 3.初始化,dp[0] 和 dp[1]&…

2021 年高教社杯全国大学生数学建模竞赛 E 题 中药材的鉴别 第一题

目录 1.数据预处理 1.1 数据基本信息探索 1.2 数据可视化 1.3 异常值处理 2. 数据特征值提取 2.1 数据标准化 2.2 PCA提取特征值 3. 数据聚类鉴别药材种类 3.1 肘部图确定K值 3.2 轮廓系数图确定K值 3.3 数据聚类 3.4 聚类结果可视化 4. 研究不同种类药材…

(10)强化:贪婪模式,捕获组,正则替换,正则分割,反向引用,UBB,断言,委托,Invoke,lambda,Action

一、作业问题 1、问:.net正则表达式默认使用unix的正则表达式模式? 答:在C#和.NET中,默认使用的是基于ECMAScript标准的正则表达式模式,而不是UNIX风 格的正则表达式模式。 …

MATLAB与ROS联合仿真——ROS环境搭建及相关准备工作(下)

本篇文章主要介绍在安装完ROS后,在进行MATLAB与ROS联合仿真之前,需要进行的一些环境搭建以及准备工作,主要分为 创建ROS工作空间及功能包、必备功能包安装、安装Gazebo11、导入实验功能包至工作空间、安装Visual_Studio_Code(选做)、常用便捷…

数据结构————顺序表

1.线性表 (1).线性表是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表,链表,栈,队列,字符串... (2).线…

如何学习python数据分析?

Python数据分析基础全流程攻略如下(适合初学、转岗、无编程基础小白,直接教学,没有额外链接) 一、学习 针对数据分析模块,python学习的内容并非全都要学(SQL也是如此),即不需要像程…

IT技术岗位应聘的关键技巧与准备方法

面试攻略: # 导入所需的模块 import pandas as pd import numpy as np# 定义一个函数,返回两个数字的和 def add_numbers(num1, num2):return num1 num2# 创建一个DataFrame data {"Name": ["Alice", "Bob", "Char…

新零售数字化商业模式如何建立?新零售数字化营销怎么做?

随着零售行业增速放缓、用户消费结构升级,企业需要需求新的价值增长点进行转型升级,从而为消费者提供更为多元化的消费需求、提升自己的消费体验。在大数据、物联网、5G及区块链等技术兴起的背景下,数字化新零售系统应运而生。 开利网络认为&…