java通过JDBC连接mysql8.0数据库,并对数据库进行操作

news2024/11/16 20:54:48

目录

一、JDBC简介

二、添加依赖

三、JDBC操作数据库的步骤

四、JDBC操作数据库——增删改查

(一)新增数据

(二)删除数据

(三)修改数据

(四)查询数据

(五)多表连接查询


一、JDBC简介

        Java数据库连接,(Java Database Connectivity,简称JDBC)是java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法,我们通常说的JDBC是面向关系型数据库的。

二、添加依赖

<dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.29</version>
    </dependency>

三、JDBC操作数据库的步骤

注意:在使用JDBC之前要保证数据库远程连接服务启动!

1.Class.forName()加载驱动

2.DriverManager获取Connection连接

3.创建Statement执行SQL语句

4.增删改操作使用preparedStatement.executeUpdate();返回影响的行数

   查询操作使用preparedStatement.executeQuery();返回查询结果

5.释放资源

四、JDBC操作数据库——增删改查

首先创建表:

create table if not exists dog
(
    id int(10) primary key auto_increment,
    name varchar(32) comment '宠物名',
    health int(10) comment '健康值',
    love int(10) comment '亲密度',
    strain varchar(32) comment '品种',
    lytime datetime comment '领养时间'
);

(一)新增数据

package jdbcstu;

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

public class Dog {
    public static void main(String[] args) {
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        try {
//        com.mysql.jdbc.Driver
            // 第一步:加载驱动
            Class.forName("com.mysql.jdbc.Driver");
            // 第二步:获取Connection对象
            connection = DriverManager.getConnection(
                    "jdbc:mysql://192.168.180.141:3306/jdbcstudb", // mysql服务器地址,端口,数据库名
                    "root", // 数据库的用户名
                    "root" // 数据库密码
            );
            System.out.println(connection);
            // 第三步:操作数据库 增删改查
            /*新增*/
//          String sql = "insert into dog(name,health,love,strain,lytime) values(?,?,?,?,?)";
            String sql = "insert into dog(name,health,love,strain,lytime) values(?,?,?,?,now())";
            String name = "ggg";
            Integer health = 92;
            Integer love = 66;
            String strain = "斗牛";
//          Date date = new Date(System.currentTimeMillis());// 只能存年月日

            // 第三步:创建preparedstatement
            preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setString(1,name);
            preparedStatement.setInt(2,health);
            preparedStatement.setInt(3,love);
            preparedStatement.setString(4,strain);
//            preparedStatement.setDate(5,date);

            // 第四步:获取到执行新增语句后的返回结果
            int num = preparedStatement.executeUpdate(); // 返回影响的行数
            if(num > 0){
                System.out.println("新增宠物狗成功!");
            }
        }catch (ClassNotFoundException e){
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            // 第五步:释放资源
            try {
                if (preparedStatement != null) {
                    preparedStatement.close();
                }
                if (connection != null) {
                    connection.close();
                }
            }catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

(二)删除数据

package jdbcstu;

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

public class Dog {
    public static void main(String[] args) {
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        try {
//        com.mysql.jdbc.Driver
            // 第一步:加载驱动
            Class.forName("com.mysql.jdbc.Driver");
            // 第二步:获取Connection对象
            connection = DriverManager.getConnection(
                    "jdbc:mysql://192.168.180.141:3306/jdbcstudb", // mysql服务器地址,端口,数据库名
                    "root", // 数据库的用户名
                    "root" // 数据库密码
            );
            System.out.println(connection);
            // 第三步:操作数据库 增删改查
            String sql = "delete from dog where name = ? and health = ?";
            preparedStatement = connection.prepareStatement(sql);
            String name = "ggg";
            Integer health = 92;
            preparedStatement.setString(1,name);
            preparedStatement.setInt(2,health);
            int num = preparedStatement.executeUpdate();
            if(num>0){
                System.out.println("删除成功!"+num);
            }
        }catch (ClassNotFoundException e){
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            // 第五步:释放资源
            try {
                if (preparedStatement != null) {
                    preparedStatement.close();
                }
                if (connection != null) {
                    connection.close();
                }
            }catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

(三)修改数据

package jdbcstu;

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

public class Dog {
    public static void main(String[] args) {
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        try {
//        com.mysql.jdbc.Driver
            // 第一步:加载驱动
            Class.forName("com.mysql.jdbc.Driver");
            // 第二步:获取Connection对象
            connection = DriverManager.getConnection(
                    "jdbc:mysql://192.168.180.141:3306/jdbcstudb", // mysql服务器地址,端口,数据库名
                    "root", // 数据库的用户名
                    "root" // 数据库密码
            );
            System.out.println(connection);
            // 第三步:操作数据库 增删改查
            String sql = "update dog set name = ?,health = ?,love = ? where id = ?";
            preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setString(1,"二哈");
            preparedStatement.setInt(2,99);
            preparedStatement.setInt(3,80);
            preparedStatement.setInt(4,2);
            int num = preparedStatement.executeUpdate();
            if(num > 0){
                System.out.println("修改宠物狗成功!");
            }
        }catch (ClassNotFoundException e){
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            // 第五步:释放资源
            try {
                if (preparedStatement != null) {
                    preparedStatement.close();
                }
                if (connection != null) {
                    connection.close();
                }
            }catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

(四)查询数据

package jdbcstu;

import java.sql.*;

public class Dog {
    public static void main(String[] args) {
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        try {
//        com.mysql.jdbc.Driver
            // 第一步:加载驱动
            Class.forName("com.mysql.jdbc.Driver");
            // 第二步:获取Connection对象
            connection = DriverManager.getConnection(
                    "jdbc:mysql://192.168.180.141:3306/jdbcstudb", // mysql服务器地址,端口,数据库名
                    "root", // 数据库的用户名
                    "root" // 数据库密码
            );
            System.out.println(connection);
            // 第三步:操作数据库 增删改查
            String sql = "select id,name,health,love,strain,lytime from dog where health = ? and strain = ? limit ?,?";
            preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setInt(1,99);
            preparedStatement.setString(2,"哈士奇");
            preparedStatement.setInt(3,0);
            preparedStatement.setInt(4,2);
            resultSet = preparedStatement.executeQuery();
            System.out.println("\t\t\t狗狗信息");
            System.out.println("编号\t宠物名\t健康值\t亲密度\t品种\t\t领养时间");
            while (resultSet.next()){
                System.out.print(resultSet.getInt("id")+"\t");
                System.out.print(resultSet.getString("name")+"\t\t");
                System.out.print(resultSet.getInt("health")+"\t\t");
                System.out.print(resultSet.getInt("love")+"\t\t");
                System.out.print(resultSet.getString("strain") + "\t\t");
                System.out.println(resultSet.getDate("lytime")+"\t");
            }
        }catch (ClassNotFoundException e){
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            // 第五步:释放资源
            try {
                if (preparedStatement != null) {
                    preparedStatement.close();
                }
                if (connection != null) {
                    connection.close();
                }
                if(resultSet != null){
                    resultSet.close();
                }
            }catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

(五)多表连接查询

package jdbcstu;

import java.sql.*;

public class Master {
    public static void main(String[] args) {
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        try {
            // 第一步:加载驱动
            Class.forName("com.mysql.jdbc.Driver");
            // 第二步:获取connection对象
            connection = DriverManager.getConnection(
                    "jdbc:mysql://192.168.180.141:3306/jdbcstudb",
                    "root",
                    "root"
            );
            System.out.println(connection);
            // 第三步:操作数据库 增删改查
            /*查询数据*/
            String sql = "select m.name ,\n" +
                    "       m.age ,\n" +
                    "       m.gender ,\n" +
                    "       m.yearnum ,\n" +
                    "       d.name ,\n" +
                    "       d.health ,\n" +
                    "       d.love \n" +
                    "       from master m\n" +
                    "join dog d on m.did = d.id\n" +
                    "where m.age > ?\n" +
                    "order by d.id desc\n" +
                    "limit ?";
            preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setInt(1,30);
            preparedStatement.setInt(2,2);
            resultSet = preparedStatement.executeQuery();
            System.out.println("\t\t\t领养信息");
            System.out.println("主人姓名\t主人年龄\t主人性别\t主人经验值\t宠物名\t宠物健康值\t宠物亲密度");
            while (resultSet.next()){
                System.out.print(resultSet.getString("m.name")+"\t\t");
                System.out.print(resultSet.getInt("m.age")+"\t\t");
                System.out.print(resultSet.getString("m.gender")+"\t\t");
                System.out.print(resultSet.getInt("m.yearnum") + "\t\t\t");
                System.out.print(resultSet.getString("d.name")+"\t\t");
                System.out.print(resultSet.getInt("d.health")+"\t\t\t");
                System.out.println(resultSet.getInt("d.love")+"\t\t");
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
           try {
                if (connection != null) {
                    connection.close();
                }
                if(preparedStatement != null){
                    preparedStatement.close();
                }
                if(resultSet != null){
                    resultSet.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

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

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

相关文章

C进阶:字符串相关函数及其模拟实现

目录 &#x1f431;&#x1f638;一.strlen &#x1f54a;️1.功能 &#x1f43f;️2.模拟实现 &#x1f42c;&#x1f40b;二.strcpy &#x1f432;1.功能 &#x1f916;2.注意事项 &#x1f47b;3.模拟实现 &#x1f431;&#x1f42f;三.strcat &#x1f984;1.功能…

i.MX8MP平台开发分享(IOMUX篇)- Linux注册PAD

专栏目录&#xff1a;专栏目录传送门 平台内核i.MX8MP5.15.71文章目录1. pinfunc.h2.pinctrl-imx8mp.c3.PAD信息注册这一篇开始我们深入Linux中的pinctl框架。1. pinfunc.h pinfunc.h中定义了所有的引脚&#xff0c;命名方式是MX8MP_IOMUXC___&#xff0c;例如下面的MX8MP_IO…

【JDBC】----------ServletContext和过滤器

分享第二十四篇励志语句 幸福是什么&#xff1f;幸福不一定是腰缠万贯、高官显禄、呼风唤雨。平凡人自有平凡人的幸福&#xff0c;只要你懂得怎样生活&#xff0c;只要你不放弃对美好生活的追求&#xff0c;你就不会被幸福抛弃。 一&#xff1a;ServletContext&#xff08;重要…

js对象篇

面向对象 对象 如果对象的属性键名不符合JS标识符命名规范&#xff0c;则这个键名必须用引号包裹 访问属性有2种方法&#xff0c;有点语法和方括号填写法&#xff0c;特别地&#xff0c;如果属性名不符合JS命名规范或者使用变量存储属性名&#xff0c;则必须使用方括号访问 属…

【王道操作系统】2.3.6 进程同步与互斥经典问题(生产者消费者问题、吸烟者问题、读者写者问题、哲学家进餐问题)

进程同步与互斥经典问题(生产者消费者问题、吸烟者问题、读者写者问题、哲学家进餐问题) 文章目录进程同步与互斥经典问题(生产者消费者问题、吸烟者问题、读者写者问题、哲学家进餐问题)1.生产者-消费者问题1.1 问题描述1.2 问题分析1.3 如何实现1.4 实现互斥的P操作一定在实现…

深化全面To C战略魏牌发布与用户共创大六座SUV蓝山

对魏牌而言&#xff0c;与用户共创不是吸引眼球的营销噱头&#xff0c;而是“直面用户需求&#xff0c;真实倾听用户意见”的有效途径。 2022年12月30日&#xff0c;第二十届广州国际汽车展览会&#xff08;以下简称“广州车展”&#xff09;正式启幕。魏牌以“品位蓝山 有咖有…

神经网络必备基础知识:卷积、池化、全连接(通道数问题、kernel与filter的概念)

文章目录卷积操作实际操作filter与kernel1x1的卷积层可视化的例子池化全连接卷积操作 这个不难理解。我们知道图像在计算机中是由一个个的像素组成的&#xff0c;可以用矩阵表示。 假设一个5x5的输入图像&#xff0c;我们定义一个3x3的矩阵&#xff08;其中的数值是随机生成的…

excel图表美化:设置标记样式让拆线图精巧有趣

折线图作为我们平时数据视图化非常常规的表现方式&#xff0c;想必大家已经司空见惯了。折线图很简单&#xff0c;每个人都会做&#xff0c;但是不同的人做出来的折线图却千差万别。大多数人的折线图都是直接插入默认折线图样式生成的&#xff0c;这样的折线图先不说有没有用心…

五、IDEA中创建Web项目

文章目录5.1 创建Web项目5.1.1 创建项目5.1.2 编写Servlet类5.2 手动部署项目5.3 自动部署项目5.3.1 IDEA集成Tomcat5.3.2 IDEA部署JavaWeb项目5.4 war包部署5.4.1 导出war包5.1 创建Web项目 5.1.1 创建项目 1、打开IDEA&#xff0c;单击“New Project”或者通过File–>ne…

Perl语言入门

一、简介 Perl语言是拉里.沃尔&#xff08;Larry Wall&#xff09;在1987年开发的一种编程语言&#xff0c;借鉴了C、sed、awk、shell脚本语言以及其他语言的特性&#xff0c;专门用于文本处理。 它可以在各种平台上运行&#xff0c;例如Windows&#xff0c;Mac OS和各种UNIX…

bean生命周期

1.Aware和InitializingBean接口 Aware 接口用于注入一些与容器相关信息&#xff0c;例如 BeanNameAware: 注入bean的名字BeanFactorAware&#xff1a; 注入beanFactor容器ApplicationContextAware&#xff1a; 注入applicationContext容器EmbeddedValueResolverAware: ${} 代码…

爬虫进阶一(基础一)

文章目录简介cookie爬取雪球热帖代理模拟登陆防盗链异步爬虫协程asyncioM3U8HLS爬取seleniumbilibili无头浏览器规避检测MySQLMongoDBRedis简介 这个系列分四部分 基础进阶Scrapy 框架逆向分析实战运用 先补充一些爬虫需要的基础知识和技能预热&#xff0c;爬取个简历模板网站…

浅谈Git

Git是一个开源的分布式版本控制系统&#xff0c;可以有效、高速地处理从很小到非常大的项目版本管理,也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。 版本控制 什么是版本控制&#xff1f; 版本控制是一种在开发的过程中用于管理我们对文…

如何评价唐卫国公李靖的战功、军事才能、政治才能?

link 一鞭直渡清河洛Research and no development已关注470 人赞同了该回答个人以为&#xff0c;在军事上&#xff0c;李靖是当之无愧的唐朝第一名将&#xff0c;他用兵如神&#xff0c;精于谋略&#xff0c;无论是在实际的军事指挥上&#xff0c;还是军事理论上&#xff0c;他…

Vue3 中computed计算属性的使用

目录前言&#xff1a;什么是计算属性选项式中的计算属性组合式中的计算属性计算属性和方法的区别&#xff1a;计算属性/计算方法注意事项&#xff1a;总结前言&#xff1a; 目标&#xff1a;现在vue3的使用越来越普遍了&#xff0c;vue3这方面的学习我们要赶上&#xff0c;今天…

银行家算法 源码+实验报告(用了自取)

XIAN TECHNOLOGICAL UNIVERSITY 课程设计报告 实验课程名称 操作系统—银行家算法 专 业&#xff1a;计算机科学与技术 班 级&#xff1a; 姓 名&#xff1a; 学 号&#xff1a; 实验学时&#xff1a; …

小程序03/ uni-app自定义全局组件 、 uni-app项目引入 Uview-ui 框架教程方法 和 Uview框架介绍

一. uni-app自定义全局组件 1.创建组件 注意: 在components文件夹下创建组件 、文件夹名要与文件名保持一致 2.使用组件 注意: 在pages文件夹下任意vue文件、 template标签内使用该组件即可 二.uni-app项目引入Uview-ui框架教程方法 和 Uview框架介绍 (1) Uview介绍: Uvi…

【自学Java】Java运算符

Java运算符 Java运算符 Java 程序是由许多语句组成的&#xff0c;而语句的基本操作单位是表达式与运算符。运算符就是数学中的运算符号&#xff0c;如 、-、*、 / 等等。 Java 中提供了许多的运算符&#xff0c;这些运算除了可以处理一般的数学运算外&#xff0c;还可以处理…

Android---AndroidX

目录 Android 支持库 Android Support Library AndroidX 如何迁移老项目到 AndroidX? 支持库的作用 Android 支持库 Android 支持库是每个Android 应用程序中必不可少的一部分&#xff0c;你会发现它们无处不在。支持库为开发人员提供了将 Android 的最新和最强大功能添加…

《最重要的事,只有一件》笔记——目标不是做得更多,而是让自己需要的事情更少

目录 一、引言 二、书中摘要 1、只做一件事、一次只做一件事 2、专心于一件事不那么容易 3、我们不可能同时专注于两件事 4、平衡工作与生活是无稽之谈 5、怎么做 6、成功的习惯-围绕着你的终极目标 7、找到投入的意义 8、确定优先事务-这要看你目前和将来的打算 9、…