Java和Python对MySQL的增删改查

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Java和Python对MySQL的增删改查

前言:

相信大家都知道怎么在MySQL里面使用SQL语句对数据库进行一个增删改查。

小伙伴们有没有想过有没有用其他语言对MySQL进行操作呢?

这个回答肯定是有的,就比如今天带给大家的两种语言操作MySQL进行增删改查!!!

image.png



经过我上篇的 Java和Python各自链接MySQL的方法相信大家应该掌握了这两种语言链接MySQL的方法了,而今天带给大家的文章就是通过Java和Python对MySQL的增删改查。


Java对MySQL的操作

环境配置

使用工具:

IDEA,MySQL-8.0,MySQL驱动(mysql-connector-java-8.0.27)等。


其他配置:


这个可以参考我的上一篇文章,上篇有具体的环境配置介绍哦!


增添操作

注:Java下面的测试用例都是使用DriverManager链接MySQL进行增删改查操作


首先在使用Java链接到MySQL后我们能使用java操作我们所需要的功能。


那我们首先来进行MySQL的增添操作。


 

public static void main(String[] args) throws SQLException {
        Driver driver = new com.mysql.cj.jdbc.Driver();
        String url = "jdbc:mysql://localhost:3306/表名";
        String user = "root";
        String password = "数据库密码";
        DriverManager.registerDriver(driver);
        Connection conn = DriverManager.getConnection(url,user,password);
        System.out.println(conn);
        //对MySQL数据库的添加操作
        //预编译sql语句
        //注:dl是一个数据库表名
        String sql = "INSERT INTO dl (账号,密码)  VALUE (?,?)";
        PreparedStatement preparedStatement =  conn.prepareStatement(sql);
        //填充占位
        preparedStatement.setInt(1,123);
        preparedStatement.setInt(2,123);
        //执行操作
        preparedStatement.execute();
        //关闭操作
        preparedStatement.close();
        conn.close();
        System.out.println("添加成功!");
    }



结果:

image.png



及操作成功!!!


删除操作

在Java里面对MySQL的增删改操作都类似的,只需要更换操作的SQL语句就可!!!


代码段:


public class sql_delete {
    public static void main(String[] args) throws Exception {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要删除的账号:");
        int user = scanner.nextInt();
        Connection connection =  JDBCtils.getConnection();
        String sql = "DELETE FROM dl WHERE 账号 = ? ;";
        PreparedStatement ps  = connection.prepareStatement(sql);
        ps.setInt(1,user);
        ps.execute();
        JDBCtils.closeREsource(connection,ps);
        System.out.println("删除成功!");
    }
}


结果:

image.png



我们能看到表中的123已经被删除了!


修改操作

修改也是换汤不换药!


原来的表内容:

image.png



我们操作就第一个账号为666的吧!

代码段:


public class alter_sql {
    public static void main(String[] args) throws Exception{
        Connection conn = JDBCtils.getConnection();//使用写好了的链接工具返回链接
        Scanner scanner = new Scanner(System.in);//创建输入
        System.out.println("请输入需要修改的账号:");
        int zh = scanner.nextInt();
        System.out.println("请输入需要修改的密码:");
        int mm = scanner.nextInt();
        String sql = "UPDATE  dl SET 密码 = ? WHERE 账号 = ?";//SQL语句
        PreparedStatement ps =  conn.prepareStatement(sql);//执行SQL语句
        ps.setInt(1,zh);//填充占位符
        ps.setInt(2,mm);
        ps.execute();//返回是否有结果集
        JDBCtils.closeREsource(conn,ps);//导入之前写好的conn和ps关闭功能函数。
        System.out.println("修改成功!");
    }
}



执行结果:


image.png


运行成功,表示代码完全执行!!!


查询操作

到了今天的重头戏了——使用Java来对MySQL进行查询并返回到Java中。


这个步骤和上面的增删改可能有一些地方不同。


我我来给大家一步步的讲解哦,如果有哪个地方不对还请下伙伴们斧正哦!


通过上面的代码,相信大家都能看到在执行操作的时候都会有一个ps.excute这个代码,而其是用在对MySQL的增删改操作时使用的。


而增删改和查询的操作不同的地方就是使用不同的excute对MySQL进行操作。所以在这就需要引入一个新的名称—executeQuery。


executeQuery是Java操作MySQL查询时使用的功能函数!


补充:


executeQuery:主要执行select语句,返回值为ResultSet结果集。


execute:运行sql语句,返回值为是否有结果集。


结果集对象的创建:


ResultSet  resultSet=  ps.executeQuery();


通过executeQuery( )返回的结果集对象后,我们能使用resultSet.next()来进行一个判断是否当前行有返回结果集。我们可以通过来输出MySQL的查询结果。


   

if(resultSet.next()){//next()判断结果集是否有下一条数据。
            int id =  resultSet.getInt(1);
            int mima = resultSet.getInt(2);
            System.out.println("id = "+ id +",mima:"+mima);
        }else {
            System.out.println("没有该数据!!");
        }


输出所有数据使用while即可。


     

while(resultSet.next()){//next()判断结果集是否有下一条数据。
            int id =  resultSet.getInt(1);
            int mima = resultSet.getInt(2);
            System.out.println("id = "+ id +",mima:"+mima);
        }else {
            System.out.println("没有该数据!!");
        }


完整测试代码:


 

public static void main(String[] args) throws Exception{
        Connection conn =  JDBCtils.getConnection();
        String sql = "select 账号,密码 from dl where 账号 = 666 ";
        PreparedStatement ps =  conn.prepareStatement(sql);
        //换方法 ,executeQuery()查询数据库用的方法
        ResultSet  resultSet=  ps.executeQuery();
        if(resultSet.next()){//next()判断结果集是否有下一条数据。
            int id =  resultSet.getInt(1);
            int mima = resultSet.getInt(2);
            System.out.println("id = "+ id +",mima:"+mima);
        }else {
            System.out.println("没有该数据!!");
        }
    }



测试结果:

image.png



Python对MySQL的操作

环境配置

使用工具:


Pycharm,MySQL—8.0,pymysql库。


其他配置:


这个可以参考我的上一篇文章,上篇有具体的环境配置介绍哦!


增添操作

通过上面的Java对MySQL进行增添操作,大家觉得Python是怎对MySQL进行添加操作的呢?


那么今天就给大家带来MySQL的增添操作!


工具包的导入:


import pymysql#Python链接MySQL的一个工具包。


创建链接:


本操作是在上一篇文章就介绍过了,不会的同学可以参考我的上一篇文章哦!


SQL语句的执行和提交:


相比于Java,Python在执行SQL语句后还会有一个commit。通过查询API我们直到commit的功能是 将更改提交到稳定存储。


请注意:


如果数据库支持自动提交特性,这必须在开始时关闭。可以提供一个接口方法来重新打开它。


   

cur.execute(sql)
        connection.commit()


在这里在给大家补充一个回滚功能—rollback(),在Python中当链接MySQL时如果没有链接成功的话我们选择的使用它。


让其进行一个回滚,直到链接成功。


rollback():这个方法是可选的,因为不是所有的数据库都提供事务支持。


如果数据库确实提供了事务,此方法将导致数据库回滚到任何挂起事务的开始。关闭连接而不首先提交更改将导致执行隐式回滚。


代码的演示:


#代码是我之前一个项目的部分代码,因为本文设计到数据库,所以就直接给大家拿出来做例子。
#在数据库中增加学生信息
def add_sql(stu):
    connection = get_connect()
    cur = connection.cursor(cursor=pymysql.cursors.DictCursor)
    sql = 'insert into student(学号,姓名,性别,电话) values("%s","%s","%s", "%s")'
    sid = stu['学号']
    name = stu['姓名']
    sex = stu['性别']
    iphone = stu['电话']
    try:
        cur.execute(sql%(sid,name,sex,iphone))
        connection.commit()
    except Exception as e:
        connection.rollback()
        raise e
    finally:
        connection.close()



这个结果的操作我就不给大家看了,大家可以自己试试哦。


删除操作

和Java类似Python的增删改都是需要对SQL语句进行改变,所以我就直接给大家上代码了。


import pymysql
s=int(input('输入学号;'))
conn = pymysql.connect(host='localhost',user = "root",passwd = "数据库密码",database=数据库名称)
cursor = conn.cursor()
sql = 'delete from student where 学号=%s'
try:
    cursor.execute(sql % s)
    conn.commit()
except Exception as e:
    conn.rollback()
    raise e
finally:
    conn.close()


修改操作

def xname():
    xh = int(input('学号:'))
    name = input('请输入姓名:')
    arg = (name,xh)
    sql = "update  student set 姓名 = '%s' where 学号 = %s "
    result = cur.execute(sql%arg)
    print(result)
    if result == 1:#判断是否修改成功,返回的是1或0.
        print('修改成功!')
    else:
        print('修改失败!')
    conn.commit()
    cur.close()
    conn.close()


查询操作

在Python中查询的话我们需要在游标的基础上接收结果集。


是通过fetchall,获取所有行。然后通过数据的可视化对用户进行展示即可。


我们来通过一个完整的例子来讲解查询操作:


import pymysql#导入数据库
s = input('请输入查询姓名:')
conn = pymysql.connect(host='localhost',user = "root",passwd = "数据库密码",database='stu')
cur = conn.cursor()#获取游标
sql = 'select * from student where 姓名 ="%s" ;'#创建SQL语句
cur.execute(sql%s)#准备SQL语句
f = cur.fetchall()#获取结果集
for i in f:#输出结果集
    print(i)
cur.close()#关闭游标
conn.commit()#提交事务
conn.close()#关闭连接


我们可以看一下我们的查询结果:


image.png

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
人工智能 安全 Java
Java和Python在企业中的应用情况
Java和Python在企业中的应用情况
84 7
|
13天前
|
自然语言处理 Java 关系型数据库
Java mysql根据很长的富文本如何自动获取简介
通过使用Jsoup解析富文本并提取纯文本,然后根据需要生成简介,可以有效地处理和展示长文本内容。该方法简单高效,适用于各种应用场景。希望本文对您在Java中处理富文本并生成简介的需求提供实用的指导和帮助。
50 14
|
14天前
|
自然语言处理 Java 关系型数据库
Java mysql根据很长的富文本如何自动获取简介
通过使用Jsoup解析富文本并提取纯文本,然后根据需要生成简介,可以有效地处理和展示长文本内容。该方法简单高效,适用于各种应用场景。希望本文对您在Java中处理富文本并生成简介的需求提供实用的指导和帮助。
31 9
|
26天前
|
SQL 存储 关系型数据库
MySQL/SqlServer跨服务器增删改查(CRUD)的一种方法
通过上述方法,MySQL和SQL Server均能够实现跨服务器的增删改查操作。MySQL通过联邦存储引擎提供了直接的跨服务器表访问,而SQL Server通过链接服务器和分布式查询实现了灵活的跨服务器数据操作。这些技术为分布式数据库管理提供了强大的支持,能够满足复杂的数据操作需求。
78 12
|
1月前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
147 26
|
1月前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
263 15
|
2月前
|
关系型数据库 MySQL Java
Servlet+MySQL增删改查 原文出自[易百教程] 转载请保留原文链接: https://www.yiibai.com/geek/1391
对于任何项目开发,创建,读取,更新和删除(CRUD)记录操作是应用程序的一个最重要部分。
83 20
|
1月前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
|
2月前
|
关系型数据库 MySQL Java
MySQL索引优化与Java应用实践
【11月更文挑战第25天】在大数据量和高并发的业务场景下,MySQL数据库的索引优化是提升查询性能的关键。本文将深入探讨MySQL索引的多种类型、优化策略及其在Java应用中的实践,通过历史背景、业务场景、底层原理的介绍,并结合Java示例代码,帮助Java架构师更好地理解并应用这些技术。
81 2
|
Java Apache 索引
java 调用solr服务器 实现增删改查 及高亮显示
首先有几点需要注意 客户端要调用solr服务,首先要把solr服务端工程启动,即前面文章讲的把solr下的slor.war例子放在tomcat下,进行相关配置,并启动。 (1)Exception in thread "main" org.apache.solr.client.solrj.beans.BindingException: class: class solr.PeopleBe
2855 0

热门文章

最新文章