Java与MySQL的连接

 连接数据库:

1.打开数据库可视化工具然后点击连接

2.选择要连接的数据库类型

跟到图片填(用户名不晓得的往下面看点搞在后面的)

这就连接成功了

查询当前登录用户的账号信息:

Sql

SELECT CURRENT_USER();

返回格式'user_name'@'host_name'`。

查看所有存在的MySQL用户账号,你需要先以一个有足够权限的用户(比如root用户)登录MySQL,然后执行以下命令:

Sql

SELECT user,host FROM mysql.user;

这个命令会列出MySQL中所有用户的用户名(user列)以及他们可以从哪个主机连接(host列)。在这个列表中,你可以找到你的用户名以及与之关联的主机信息。

创建库

在MySQL中创建一个数据库,你可以通过以下步骤来完成:

  1. 登录到MySQL:首先,登录到MySQL服务器。输入你的密码后,按回车键。
  2. 创建数据库:建一个名为my_new_database的数据库,

Sql

 CREATE DATABASE my_new_database;
  1. 确认创建:使用SHOW DATABASES;命令来列出所有数据库:

Sql

SHOW DATABASES; 

   

创建表

  1. 选择数据库:通过USE命令来选择刚刚创建的数据库:

Sql

USE my_new_database;
  1. 创建表:接下来,使用CREATE TABLE命令来创建新表,并定义它的字段及数据类型。设Id是主键且自动增长,item_name是字符串类型,Value也是字符串类型(根据实际需求,你可能需要调整字段类型):

Sql

CREATE TABLE first_table (

    Id INT AUTO_INCREMENT PRIMARY KEY,

    item_name VARCHAR(255) NOT NULL,

    Value VARCHAR(255)

);

查询表

使用DESCRIBE或SHOW COLUMNS FROM命令:

Sql

DESCRIBE first_table;

或者

SHOW COLUMNS FROM first_table;

做完上面数据库部分就处理完成下面是程序部分

程序部分

1.下载mysql依赖包

首先去官网下载一个能够用Java处理mysql的依赖包

2.添加到库

mysql-connector-j-8.4.0.jar创建一个Java项目然后在项目根目录下新建一个文件夹"lib"将mysql-connector-j-8.4.0.jar复制到lib里

然后打开编辑器在lib目录下找到mysql-connector-j-8.4.0.jar

3.测试连接

然后修改代码进行测试

import java.sql.*;
import java.util.Scanner;

class DbConn {
    public static Connection GetConn() {
        String url = "jdbc:mysql://localhost:3306/my_new_database?useSSL=false&serverTimezone=UTC";
        String user = "root"; // 替换为你的MySQL用户名
        String password = "CST200212"; // 替换为你的MySQL密码
        try {
            return DriverManager.getConnection(url, user, password);
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
}

public class Main {

    public static void main(String[] args) {

            System.out.println( DbConn.GetConn());

    }

}

测试结果

运行成功

然后调整代码做实现其他功能

实现粗略增删改查

增加数据

class Add {
    public static void InsertData(String itemName, String value) throws SQLException {
        String sql = "INSERT INTO first_table (item_name, Value) VALUES (?, ?)";
        Connection conn = DbConn.GetConn();
        PreparedStatement preparedStatement = conn.prepareStatement(sql);
        preparedStatement.setString(1, itemName);
        preparedStatement.setString(2, value);
        preparedStatement.executeUpdate();
    }
}

更新数据

class Update {
    public static void updateData(int id, String price) throws SQLException {
        String sql = "UPDATE first_table SET Value = ? WHERE Id = ?";
        Connection conn = DbConn.GetConn();
        PreparedStatement preparedStatement = conn.prepareStatement(sql);
        preparedStatement.setString(1, price);
        preparedStatement.setInt(2, id);
        preparedStatement.executeUpdate();
    }
}

删除

class Delete {
    public static void deleteData(int id) throws SQLException {
        String sql = "DELETE FROM first_table WHERE Id = ?";
        Connection conn = DbConn.GetConn();
        PreparedStatement preparedStatement = conn.prepareStatement(sql);
        preparedStatement.setInt(1, id);
        preparedStatement.executeUpdate();
    }
}

查询

class SelectAll {
    public static void selectData(int id) throws SQLException {
        String sql = "SELECT * FROM first_table ";
        Connection conn = DbConn.GetConn();
        PreparedStatement preparedStatement = conn.prepareStatement(sql);
        // preparedStatement.setInt(1, id);
        ResultSet rs = preparedStatement.executeQuery();
    
        while (rs.next()) {
            String itemName = rs.getString("item_name");
            String value = rs.getString("Value");
            System.out.println("ID: " + id + ", Item Name: " + itemName + ", Value: " + value);
        }
    }
}

添加一个Alternative类用作简单的交互

class Alternative{
    public static void alternative() {
        Scanner scanner = new Scanner(System.in);
        int choice=9;
        // 处理换行符
        while (choice!=5) { 
         System.out.println("选择操作:1-添加 2-修改 3-查询 4-删除 5-退出");
        choice = scanner.nextInt();
        scanner.nextLine(); 
        try {
            
            switch (choice) {
                case 1:
                    System.out.println("输入项目名称:");
                    String itemName = scanner.nextLine();
                    System.out.println("输入项目值:");
                    String value = scanner.nextLine();
                    Add.InsertData(itemName, value);
                    System.out.println("数据已添加!");
                    break;
                case 2:
                    System.out.println("输入要修改的ID:");
                    int updateId = scanner.nextInt();
                    scanner.nextLine(); // 处理换行符
                    System.out.println("输入新的值:");
                    String newValue = scanner.nextLine();
                    Update.updateData(updateId, newValue);
                    System.out.println("数据已修改!");
                    break;
                case 3:
                    // System.out.println("输入要查询的ID:");
                    int queryId = 1;
                    SelectAll.selectData(queryId);
                    break;
                case 4:
                    System.out.println("输入要删除的ID:");
                    int deleteId = scanner.nextInt();
                    Delete.deleteData(deleteId);
                    System.out.println("数据已删除!");
                    break;
                case 5:
                    System.out.println("退出程序!");
                    break;
                default:
                    System.out.println("无效选择!");
            }
        } catch (SQLException e) {
            throw new RuntimeException(e);
        } 
        }
    }
}

主程序Main

public class Main {
    public static void main(String[] args) {
        Alternative.alternative();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值