我们首先需要在Navicat Premium上创建一个数据库实例(test),然后创建一个stu_info表(id,name,mobile,address)
接着创建一个Test类进行操作:
在这之前需要导一个包:这个包可以在网上找到,连接MySQL数据库用于加载驱动的

mysql-connector-java-5.1.44-bin.jar

我们先来看看如何添加数据

package jdbc;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;public class Test {public static void main(String[] args) {Connection connection = null;Statement statement = null;try {Class.forName("com.mysql.jdbc.Driver");//加载驱动,此处会出现检查时异常,所以需要抛出或捕获String url = "jdbc:mysql://127.0.0.1:3306/test";//指定连接哪一台计算机上的哪个数据库实例connection = DriverManager.getConnection(url, "root", "root");//获取数据库的连接对象(用户名和密码因人或机器而异),//并返回Connection对象,//你可以想象成C语言中打开文件statement = connection.createStatement();//创建SQL语句,String sql = "insert into stu_info(id,name,mobile,address) values ('2016','张三','182','郑州市') ";int affect = statement.executeUpdate(sql);//执行SQL语句,并返回影响的行数,//但仅限用于insert(添加)、update(修改)、delete(删除),不包括select(查询)//显示出执行的效果if(affect>0) {//因为上一语句若执行成功,则影响的行数肯定>0System.out.println("执行成功");}else {          //否则肯定为0System.out.println("执行失败");}/*** 我们知道在C语言中打开一个文件,在执行完诸如读写添加修改等操作后,要及时把打开的文件再关上,以防文件的数据丢失等错误;* 同样的,在Java中先连接数据库,执行完操作后也要及时释放资源(即断掉链接),而断掉连接就用close;*/
//          connection.close();  //但关闭操作放在这里不合适,原因是如果上面的语句有异常(例如sql语句语法出错),
//          statement.close();   //则下面的语句无法再执行,资源就得不到释放,就有可能会出问题,//为解决这个问题,就需用到finally语句(无论是否有异常都会执行)} catch (Exception e) {e.printStackTrace();} finally {//释放connection资源try {if (connection != null) {/*此处之所以要用if语句,是因为怕上面出现异常导致connection为null,会出现空指针异常(你可以理解成C语言中文件打开错误,也就是压根没有打开,所以也就不用关闭了)*/connection.close();//此处也会出现检查时异常,所以需要捕获}} catch (SQLException e) {e.printStackTrace();}//释放statement资源try {if (statement != null) {//原因同上statement.close();}} catch (SQLException e) {e.printStackTrace();}}}
}

此时执行结果为:执行成功
再打开Navicat Premium中的stu_info表,刷新一下就可看到添加的数据了


我们再来看看如何修改数据
其实跟上面的步骤几乎一模一样,只需改动一下sql语句,将其改为
String sql = "update stu_info set mobile='123456',address='郑州市中原区' where name='张三'";
其中set mobile='123456',address='郑州市中原区'是传入新数据从而覆盖旧数据,而where name='张三'是指定修改哪一行数据
此时,再打开stu_info表,可以看到修改后的数据:

还有删除数据,跟上面的仍旧一样,仍只需改动一下sql语句,将其改为
String sql = "delete from stu_info where name='张三'";
其中where name='张三'是指定删除哪一行数据,若没有where,则删除stu_info表中的所有数据
因为本来表中只有一行数据,所以删除之后就没有了:

此时你是否会发现上面的代码除了sql不一样,也就是具体的操作不同之外,其他地方具有高度一致性,也就是重复的很多,显得冗余繁杂,所以为了简化代码,我们可以可以单独定义一个方法,将sql当成一个参数变量,并将该方法放到一个类中:

package jdbc;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;public class DBLink {public boolean update(String sql) {//将实参传给形参sqlConnection connection= null;Statement statement =null;try {Class.forName("com.mysql.jdbc.Driver");String url = "jdbc:mysql://127.0.0.1/test";connection = DriverManager.getConnection(url, "root", "root");statement = connection.createStatement();int affect = statement.executeUpdate(sql);return affect>0;//若执行成功,则返回true/*** 这里我想说明一下,由于finally的特殊性,会先执行完finally里的释放资源语句,再执行返回值语句* 总之就是在结束方法之前无论如何都要先释放资源才可以*/} catch (Exception e) {e.printStackTrace();} finally {//释放statement资源try {if (statement != null) {statement.close();}} catch (SQLException e) {e.printStackTrace();}//释放connection资源try {if (connection != null) {connection.close();}} catch (SQLException e) {e.printStackTrace();}}return false; //执行不成功,则返回false}
}

再来调用该通用方法:

package jdbc;public class Test {//添加public static void insert() {String sql = "insert into stu_info(id,name,mobile,address) values ('2016','张三','182','郑州市')";if(new DBLink().update(sql)) {//调用DBLink方法,并传入实参System.out.println("添加成功");return;}System.out.println("添加失败");}//修改public static void update() {String sql = "update stu_info set name = '李四' where mobile = '182'";            if(new DBLink().update(sql)) {System.out.println("修改成功");return;}System.out.println("修改失败");}//删除public static void delete() {String sql = "delete from stu_info where address = '郑州市'";          if(new DBLink().update(sql)) {System.out.println("删除成功");return;}System.out.println("删除失败");}//调用各个操作方法public static void main(String[] args) {insert();
//      update();
//      delete();}
}

至于为啥要把查询数据另说,是因为查询数据所用的方法跟其他三种略有不同,它用的不是statement.executeUpdate(),而是statement.executeQuery(),其他的地方大同小异:
我们直接通过定义一个查询方法(select())来进行说明

public static void select() {Connection connection = null;//initialize variable(初始化变量为null)Statement statement = null;ResultSet resultset = null;try {Class.forName("com.mysql.jdbc.Driver");String url = "jdbc:mysql://127.0.0.1:3306/test";connection = DriverManager.getConnection(url, "root", "root");statement = connection.createStatement();//创建SQL语句对象String sql = "select id,name,mobile,address from stu_info";resultset = statement.executeQuery(sql);//执行SQL语句//此时数据都在resultset里面,需要通过循环把它显示出来while(resultset.next()) {//next方法移动“指针”至一行数据,该行有数据则返回true,没有数据则返回false//你可以理解成C语言中的指针下移一位//查询数据String id = resultset.getString("id");String name = resultset.getString("name");String mobile = resultset.getString("mobile");   String address = resultset.getString("address");System.out.println(id+","+name+","+mobile+","+address);}} catch (Exception e) {e.printStackTrace();} finally {//释放resultset资源 (你可以理解成C语言中关闭文件,让指针不在指向该文件)try {if (resultset != null) {resultset.close();}} catch (SQLException e) {e.printStackTrace();}//释放connection资源try {if (connection != null) {connection.close();}} catch (SQLException e) {e.printStackTrace();}//释放statement资源try {if (statement != null) {statement.close();}} catch (SQLException e) {e.printStackTrace();}}
}

总结一下:
- 这次的重点就是如何连接MySQL数据库、以及如何简单的操作MySQL数据库实例!

如何用eclipse操作MySQL数据库进行增删改查?相关推荐

  1. adodb mysql.inc.php,php adodb操作mysql数据库示例(增删改查)

    php adodb操作mysql数据库示例(增删改查) 发布于 2014-10-05 08:16:18 | 113 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: H ...

  2. python操作mysql数据库实现增删改查

    Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: ...

  3. php操作mysql数据库(增删改查)

    1:连接到mysql php本身提供腿mysql数据库的支持,使用mysql_connect函数来连接,语法如下: resource mysql_connect([string server [, s ...

  4. 在node.js中,使用基于ORM架构的Sequelize,操作mysql数据库之增删改查

    Sequelize是一个基于promise的关系型数据库ORM框架,这个库完全采用JavaScript开发并且能够用在Node.JS环境中,易于使用,支持多SQL方言(dialect),.它当前支持M ...

  5. shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)

    shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)Shell脚本与MySQL数据库交互(增删改查)# 环境准备:安装mariadb 数据库 [root ...

  6. python操作mysql数据库(增、删、改、查)_python对 MySQL 数据库进行增删改查的脚本...

    # -*- coding: utf-8 -*- import pymysql import xlrd # import codecs #连接数据库 conn = pymysql.connect(hos ...

  7. 【接口测试】Day5-使用pymysql库对mysql数据库进行增删改查操作

    目录 今日目标 一.数据库介绍 二.数据库基本操作 1.安装 2.操作流程(重点) 1. 创建连接 2. 获取游标 3. 执行sql 4. 关闭游标 5. 关闭连接 3.数据准备 4.数据库基本操作 ...

  8. Java对MySQL数据库进行增删改查的操作(一)

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...

  9. java jdbc 连接mysql数据库 实现增删改查

    好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...

最新文章

  1. layui跳转html如何带参数,Layui跳转页面代码(可携带复杂参数)
  2. php增加mysql用户_PHP+MYSQL实现用户的增删改查_PHP
  3. pytorh 激活函数,循环神经网络层,损失函数和优化器
  4. 计算机复位启动如何操作,电脑能开机但进入不了系统,怎么办?按什么键能恢复系统?...
  5. simple2.py
  6. SEOer将灭绝,尽快辅佐“百毒”对手
  7. Elementui input不能再循环数据中每次自动聚焦的问题
  8. 一篇文章搞定java序列化机制
  9. java设计模式之模板方法
  10. 最新的Functions 类
  11. [19/06/08-星期六] CSS基础_表格表单
  12. powerDesigner 把name项添加到注释
  13. java 车牌号识别_JAVA车牌识别(包含车牌定位及车牌内容识别)
  14. Rplidar A2 屏蔽固定角度
  15. JQuery slidebox实现图片轮播
  16. sm框架 访问局域网mysql_ssm框架搭建之sm框架整合
  17. 全网最详细的深度学习pytorch-gpu环境配置
  18. 使用CE找天龙八部基址(图解)毛头小伙制作
  19. 邮箱邮件服务器迁移服务器要多久生效,邮件服务器迁移方案让企业邮箱安心“搬家”...
  20. linux管理进程ps命令,ps命令进程管理-linux

热门文章

  1. 吴裕雄--天生自然 高等数学学习:高阶偏导数
  2. windows 10 下部署WCF 一些细节
  3. linux Mysql 安装
  4. Python学习心得第一周-03练习2
  5. 安装完DevExpress14.2.5,如何破解它呢?
  6. haskell的分数运算
  7. 自动生成Makefile的全过程详解
  8. 《独辟蹊径品内核:Linux内核源代码导读(china-pub首发)》的前言
  9. 服务器集群负载均衡(F5,LVS,DNS,CDN)区别以及选型
  10. C# 特性(Attribute)学习。