java通过JDBC连接mysql8.0数据库,并对数据库中的表进行增删改查操作

目录

一、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();
            }
        }
    }
}

  • 3
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值