iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL的JDBC 编程
  • 167
分享到

MySQL的JDBC 编程

mysql数据库java 2023-09-02 11:09:35 167人浏览 薄情痞子
摘要

目录 1.数据库编程:JDBC 2. JDBC工作原理 3. JDBC使用 3.1 驱动包的下载与导入 3.2 JDBC使用步骤(插入) 4.JDBC修改删除查询 1. 将数据库驱动包,添加到项目依赖中 创建目录,拷贝jar包,然

目录

1.数据库编程:JDBC

2. JDBC工作原理

3. JDBC使用

3.1 驱动包的下载与导入

3.2 JDBC使用步骤(插入)

4.JDBC修改删除查询


1. 将数据库驱动包,添加到项目依赖中

创建目录,拷贝jar包,然后add as library

2. 创建数据源

DataSourse:数据源,描述了数据库服务器在哪里

3. 和数据库建立连接

使用JDBC里的Connection将代码和数据库服务器进行连接

一个程序中,通常有一个数据源对象,可以有多个Connection对象

4. 构造sql语句

PreparedStatement:表示一个预处理过的SQL语句对象

5. 执行sql语句

(1)executeUpdate 对应插入到删除修改语句,返回值表示这次SQL操作影响到的行数

(2)executeQuery 对应查询语句,返回值则是返回的临时表数据,用ResultSet接收

6. 释放资源

colse释放资源 先创建的后释放,后创建的先释放

1.数据库编程:JDBC

各种数据库,都会提供api,方便编程语言来控制 API:就是应用程序编程接口,提供了一组类/方法,让程序员直接调用 oracleSQL ServerMysqlsqlite... 不同种类的数据库提供的API不一样
API不一样就会有很多问题 ( 提高程序员学习成本; 如果项目要把数据库替换成另一种,改动会非常大 Java中为了解决这个问题,就提供了一组统一风格的数据库操作API 然后让这些数据库厂商来适配java的API 所以程序员只要掌握这一套 java的API,就可以操作各种数据库,java把这个API叫JDBC

 

2. JDBC工作原理

 

3. JDBC使用

3.1 驱动包的下载与导入

下载方法:

(1)去Oracle官网下载(麻烦需要去官网登录注册才可以下载)

(2)去中央仓库下载(https://mvnrepository.com/ 

1.下载mysql驱动包 

1)打开中央仓库—搜索mysql驱动包

 2)找到和自己的mysql大版本对应的驱动包

 3)找到对应大版本,然后点击进行下载

 下载的是一个驱动包,驱动包在代码中才能看出来

 2.把刚刚下载的jar包导入到项目中,使用

1)先创建一个目录,比如名字叫lib,和src同级

 2)把刚才的jar包拷贝进lib中

 3)右键刚才的目录lib,找到add as library ,是idea可以识别到jar包

 


 

3.2 JDBC使用步骤(插入)

通过JDBC来操作数据库,往数据库java01中的student1表中插入一条记录

 

1. 将数据库驱动包,添加到项目依赖中

右键项目创建目录(点Directory,和src同级)——>拷贝驱动包到目录——>右键目录点击add as library(让idea识别jar包)

2. 建立数据库连接

创建数据源对象,数据源对象就描述了要访问的数据库是什么和数据库位置在哪里

        DataSource dataSource = new mysqlDataSource();//向下转型        ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java01?characterEncoding=utf8&useSSL=false");        ((MysqlDataSource)dataSource).setUser("root");        ((MysqlDataSource)dataSource).setPassword("111111");

 每种数据库都会提供对应的类来实现DataSourse接口

调用的这个方法不是DataSource中的,而是MysqlDataSource转成子类引用,才可以调用这个方法(向下转型)

DataSource是服务于各种数据库的,
MysqlDataSource只服务于MySQL

MySQL中,是一个客户端服务器的程序,描述服务器的位置
会使用URL(去唯一资源定位符)这个概念来表示
但是有点的数据库,比如SQLite,就不是客户端服务器结构的
也就不使用URL

DataSource考虑到通用性,就不能使用setURL这样的方法

 也可以这样写,但不建议

这种写法是不使用多态的写法

这样写可能会让MysqlDataSource这个类型出现在代码的很多地方

导致MySQL和项目的耦合性就提高了

(如果以后要更换成其他数据库,就需要把很多出现MysqlDataSoucre这个类型的地方,都要进行修改,非常麻烦) 

3. 创建操作命令

让代码和数据库服务器建立连接

 Connection connection = dataSource.getConnection();

4. 构造和执行SQL语句

构造要执行的SQL语句

(1)直接插入的 

        //1.构造请求        String sql = "insert into student1 values(1, '张三')";        PreparedStatement statement = connection.prepareStatement(sql);        //2.发送请求 & 读取响应        //返回影响到的行数        int n = statement.executeUpdate();        System.out.println("n = " + n);

 SQL语句发给数据库,然后数据库对这个SQL进行解析

解析过程是比较消耗资源、消耗时间的,所以就将一部分解析的工作,放在客户端完成,

客户端完成后,1将解析结果发给数据库,这样就节省了资源开销,提高效率

 

 执行SQL,执行方法有两个

(1)executeUpdate 对应插入到删除修改语句,返回值表示这次SQL操作影响到的行数

(2)executeQuery 对应查询语句,返回值则是返回的临时表数据,用ResultSet接收

(2)用户输入,确定插入的值

这样做的好处是 代码可读性好,并且SQL注入问题得到改善

  //用户输入,通过用户输入的数据,来确定插入的值        Scanner scanner = new Scanner(System.in);        System.out.println("请输入要插入的学号:");        int id = scanner.nextInt();        System.out.println("请输入要插入的名字:");        String name = scanner.next();        //构造sql语句        String sql = "insert into student1 values(?,?)";        PreparedStatement statement = connection.prepareStatement(sql);        statement.setInt(1,id);        statement.setString(2,name);        System.out.println("statement: " + statement);        //执行sql语句        int n = statement.executeUpdate();        System.out.println("n = " + n);

5. 释放资源

完成之后,就需要关闭释放相关资源

释放资源的顺序和申请资源的顺序正好相反

(先创建的后释放,后创建的先释放)

        statement.close();        connection.close();

执行代码

影响了一行

打开MySQL查询一下,看插入成功了没有 


 

4.JDBC修改删除查询

(1)修改 

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;import javax.sql.DataSource;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;import java.util.Scanner;public class JDBCUpdate {    public static void main(String[] args) throws SQLException {        //1.创建数据源        DataSource dataSource = new MysqlDataSource();        ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java01?characterEncoding=utf8&useSSL=false");        ((MysqlDataSource)dataSource).setUser("root");        ((MysqlDataSource)dataSource).setPassword("111111");        //2.和数据库建立连接        Connection connection = dataSource.getConnection();        //3.构造sql语句        Scanner scanner = new Scanner(System.in);        System.out.println("请输入要修改的同学学号:");        int id = scanner.nextInt();        System.out.println("请输入要修改的同学姓名:");        String name = scanner.next();        String sql = "update student1 set name = ? where id = ?";        PreparedStatement statement = connection.prepareStatement(sql);        statement.setString(1,name);        statement.setInt(2,id);        //4.执行sql语句        int n = statement.executeUpdate();        System.out.println("n = " + n);        //5.关闭释放资源        statement.close();        statement.close();    }}

运行代码后,在MySQL中查看是否修改成功 

 (2)删除

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;import javax.sql.DataSource;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;import java.util.Scanner;public class JDBCDelete {    public static void main(String[] args) throws SQLException {        //1.创建数据源        DataSource dataSource = new MysqlDataSource();        ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java01?characterEncoding=utf8&useSSL=false");        ((MysqlDataSource)dataSource).setUser("root");        ((MysqlDataSource)dataSource).setPassword("111111");        //2.和数据库建立连接        Connection connection = dataSource.getConnection();        //3.构造sql语句        Scanner scanner = new Scanner(System.in);        System.out.println("请输入要删除的同学学号:");        int id = scanner.nextInt();        String sql = "delete from student1 where id = ?";        PreparedStatement statement = connection.prepareStatement(sql);        statement.setInt(1,id);        //4.执行sql语句        int n = statement.executeUpdate();        System.out.println("n = " + n);        //5.关闭释放资源        statement.close();        connection.close();    }}

执行代码,查看是否删除成功 

 (3)查询

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;import javax.sql.DataSource;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.Scanner;public class JDBCSelect {    public static void main(String[] args) throws SQLException {        //1.创建数据源        DataSource dataSource = new MysqlDataSource();        ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java01?characterEncoding=utf8&useSSL=false");        ((MysqlDataSource)dataSource).setUser("root");        ((MysqlDataSource)dataSource).setPassword("111111");        //2.和数据库建立连接        Connection connection = dataSource.getConnection();        //3.构造sql语句        String sql = "select * from student1";        PreparedStatement statement = connection.prepareStatement(sql);        //4.执行sql语句        //查询语句要使用executeQuery来完成        //返回结果是ResultSet,结果集,里面是一个“表”这样的数据结构        ResultSet resultSet = statement.executeQuery();        //5.遍历结果集合        while (resultSet.next()) {            //每次循环,都可以获取resultSet中的一行,进一步的就可以拿到每一列            int id = resultSet.getInt("id");            String name = resultSet.getString("name");            System.out.println("id = " + id + ", name = " + name);        }        //6.释放资源        resultSet.close();        statement.close();        connection.close();    }}

 也可以加上条件查询


 

来源地址:https://blog.csdn.net/m0_58761900/article/details/126197863

您可能感兴趣的文档:

--结束END--

本文标题: MySQL的JDBC 编程

本文链接: https://www.lsjlt.com/news/390737.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL的JDBC 编程
    目录 1.数据库编程:JDBC 2. JDBC工作原理 3. JDBC使用 3.1 驱动包的下载与导入 3.2 JDBC使用步骤(插入) 4.JDBC修改删除查询 1. 将数据库驱动包,添加到项目依赖中 创建目录,拷贝jar包,然...
    99+
    2023-09-02
    mysql 数据库 java
  • 【MySQL】 Java的JDBC编程
    文章目录 🌲数据库编程的必备条件🎋Java的数据库编程:JDBC🎍JDBC工作原理🌳建立数据库连接📌在项目中新建...
    99+
    2023-09-27
    mysql java 数据库 开发语言 基础操作
  • [MySQL]初始JDBC编程
    专栏简介 :MySql数据库从入门到进阶. 题目来源:leetcode,牛客,剑指offer. 创作目标:记录学习MySql学习历程 希望在提升自己的同时,帮助他人,,与大家一起共同进步,互相成长. 学历代表过去,能力代表现...
    99+
    2023-09-11
    mysql 数据库 java
  • 【MySQL系列】Java的JDBC编程
    ☕目录☕       🍚前言             🍜一、背景知识引入             🥡二、安装MySQL数据库驱动包,并且导入到项目中             🧇...
    99+
    2023-09-05
    MySQL数据库
  • 【通关MySQL】Java的JDBC编程
    ✨哈喽,进来的小伙伴们,你们好耶!✨ 🛰️🛰️系列专栏:【通关MySQL】 ✈️✈️本篇内容:Java的JDBC编程。 🚀🚀代码存放仓库gitee:MySQL码云存放...
    99+
    2023-09-06
    mysql 数据库 java
  • JDBC编程
    文章目录 一、JDBC简介二、驱动的下载三、JDBC的使用DriverManagerDataSourceConnectionStatementResultSetPreparedStatement数据库连接池 一、JDBC简...
    99+
    2023-08-18
    数据库 mysql java
  • 基于JDBC的MySQL数据库编程
    ✨博客主页: 荣 ✨系列专栏: MySQL ✨一句短话: 难在坚持,贵在坚持,成在坚持! 文章目录 一. JDBC概述二. JDBC前置工作1. 准备好MySQL驱动包2. 创建项目 三....
    99+
    2023-09-12
    数据库 mysql java
  • MySQL数据库 JDBC 编程(Java 连接 MySQL)
    目录1. 数据库编程的基础条件2. Java 的数据库编程:JDBC3. JDBC 访问数据库的层次结构4. MySQL 数据库操作介绍5. MySQL 驱动包的下载及添加到项目6....
    99+
    2024-04-02
  • MySQL中的JDBC编程该如何分析
    这期内容当中小编将会给大家带来有关MySQL中的JDBC编程该如何分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、数据库编程的必备条件编程语言,如Java,C、C++、Python等 数据库,如Or...
    99+
    2023-06-29
  • 6.Java的JDBC编程
    文章目录 🌆1. 数据库编程🌆🏯1.1数据库编程的必备条件🏯🏰1.2下载驱动包🏰⛺️1.3导入驱动包:⛺️🏭1.4编写J...
    99+
    2023-08-17
    java 数据库 JDBC mysql sql
  • MySQL数据库JDBC编程详解流程
    目录一、数据库编程的必备条件二、Java的数据库编程:JDBC三、JDBC工作原理四、JDBC开发步骤五、JDBC操作步骤六、优化JDBC的部分代码1.获取数据库连接对象2.操作命令...
    99+
    2024-04-02
  • MySQL五步走JDBC编程全解读
    目录一、数据库编程的必备条件二、Java的数据库编程:JDBC三、JDBC工作原理四、开发环境搭建五、MySQL中的JDBC编程1、五步流程2、添加信息3、查询信息4、删除信息5、修...
    99+
    2024-04-02
  • MySQL数据库JDBC编程的步骤是什么
    MySQL数据库JDBC编程的步骤如下:1. 加载驱动程序:使用Class.forName()方法加载MySQL的JDBC驱动程序。...
    99+
    2023-08-11
    MySQL数据库 JDBC
  • JDBC编程的详细步骤
    目录前言1.创建数据库连接Connection2.创建操作命令对象Statement3.执行SQL,替换占位符,之后再执行4.如果是查询操作,处理结果集5.释放资源返回对象前言 JD...
    99+
    2024-04-02
  • JSP (3)------JDBC编程1
    JDBC API :是一系列的编程接口,可以用来连接数据库,访问数据等。DriverManager : 驱动程序管理类,用来装载驱动程序,为创建数据库连接提供支持。Connection:用于连接某一指定的数据库Statement : 提供了...
    99+
    2023-01-31
    JSP JDBC
  • 如何实现JDBC编程
    本篇文章给大家分享的是有关如何实现JDBC编程,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。前言JDBC,即Java Database Connectivity,java数据库...
    99+
    2023-06-14
  • MySQL数据库JDBC编程知识点有哪些
    本篇内容主要讲解“MySQL数据库JDBC编程知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL数据库JDBC编程知识点有哪些”吧!1.JDB...
    99+
    2024-04-02
  • jdbc驱动mysql-connector-j的maven编译方法
    一、问题 MySQL官网上面提供的驱动编译方法,是通过ant编译的,所有依赖包都要自行下载,虽然提供了下载地址,但是过程也有点麻烦。 通过maven的方式进行编译,更加简洁,明了。 二、解决方法 1、资源下载  (1)MySQL官方提供的编...
    99+
    2023-09-29
    mysql maven 数据库
  • 怎么使用MySQL进行JDBC编程与增删改查
    本文小编为大家详细介绍“怎么使用MySQL进行JDBC编程与增删改查”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用MySQL进行JDBC编程与增删改查”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Jav...
    99+
    2023-07-02
  • MySQL与JDBC之间的SQL预编译技术讲解
    目录先说一下SQL预编译的好处吧下面贴上mysql官方文档截图两种实现进行基准测试客户端实现是否存在SQL注入风险呢?总结先说一下SQL预编译的好处吧 减少每次执行语句时解析语句的开销。 通常,数据库应用程序处理大量几乎...
    99+
    2022-11-15
    MySQLSQL预编译 JDBCSQL预编译 SQL预编译技术
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作