Java链接MySQL数据库实现增删改查

目录

一、准备工作

1、环境

2、导入jar包

二、编写连接代码

三、增删改查

1、新增和查询

2、修改和查询

3、删除和查询

4、查询群体

四、安装包获取


此教程展示如何在使用Java时如何链接数据库。

一、准备工作

1、环境

软件和jar包可以看自己喜好下面是我所使用的版本,这些东西在结尾可以下载

软件:IntelliJ IDEA 2023.3.4

数据库可视化软件:Navicat 17 for MySQL

jar包:mysql-connector-j-8.4.0.jar

2、导入jar包

1、先在项目里新建一个文件夹,然后把包复制粘贴进去。

2、将jar包添加为库

右键jar包选择添加为库,确定即可

二、编写连接代码

对数据库连接不熟悉的小伙伴一定要加这一判断连接是否成功,不然不知道哪里出错。

package stu.database;

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

public class DBConnection {
    private static Connection con = null;

    public  static Connection getCon(){
        try{
            //加载驱动,其路径在左侧的jdbc里,如果和我的不一样,可以自己找到然后写上去
            Class.forName("com.mysql.cj.jdbc.Driver");
        }catch (ClassNotFoundException e){
            System.out.println("加载数据库失败!");
            e.printStackTrace();
        }

        try{
            jdbc加载方式:mysql数据库类型://localhost:3306(端口号):要连接的数据库库名
            String url = "jdbc:mysql://localhost:3306/store?";
            String user = "root";//账户名称
            String password = "123456";//密码
            con = DriverManager.getConnection(url,user,password);//得到连接的对象
            //判断数据库是否连接成功,不熟悉一定要加这个步骤不然不知道错在哪一步
            if(con !=null){
                System.out.println("数据库连接成功!");
            }
        }catch (SQLException e){
            System.out.println("数据库连接失败!");
            e.printStackTrace();
        }
        return con;
    }
}

三、增删改查

1、新增和查询

在新增的同时执行查询看数据库是否已经有此信息,students为我的表格名称。

 Integer snumber = Integer.parseInt(JTNumber.getText());   //获取文本框中的内容,具体多少个文本框看个人想要添加什么东西进去。
 //检索学生,存储进入数据库
            String sql = "select * from students where number='"+snumber+"'";
            //打开数据库连接并创建Statement对象
            try {
                Statement stm = DBConnection.getCon().createStatement(); //为了执行sql语句
                ResultSet rs = stm.executeQuery(sql);     //运行上面的查重语句
                if(rs.next()) {
                    JOptionPane.showMessageDialog(null, "该学号学生已存在!", "提示信息", JOptionPane.WARNING_MESSAGE);
                }

                else {
                    //插入一条记录
                    sql = "insert into students values('"+snumber+"','"+sname+"','"+ssex+"','"+sbirth+"','"+sclass+"','"+sacademy+"')";
                    int i = stm.executeUpdate(sql);  //执行了这条插入学生的sql语句
                    if(i>0) {
                        JOptionPane.showMessageDialog(null, "添加成功!", "提示信息", JOptionPane.INFORMATION_MESSAGE);
                    }else {
                        JOptionPane.showMessageDialog(null, "添加失败!", "提示信息", JOptionPane.INFORMATION_MESSAGE);
                    }
                }
                stm.close();

            } catch (SQLException e1) {
                e1.printStackTrace();
            }


        }

2、修改和查询

 if(e.getSource() == ensureBtn) {
            Integer snumber = Integer.parseInt(JTNumber.getText());
            String sname = JTName.getText();
            String ssex = "女";
            String sbirth = JTBirth.getText();
            String sclass = JTClass.getText();
            String sacademy = JTAcademy.getText();
            if(radioBtn01.isSelected()) {
                ssex = "男";
            }
//检索学生

            String sql = "select * from students where number='"+snumber+"'";

            //打开数据库连接并创建Statement对象

            try {
                Statement stm = DBConnection.getCon().createStatement();
                ResultSet rs = stm.executeQuery(sql);
                if(rs.next()) {
                    //更新一条记录

                    sql = "update students set name ='"+sname+"',sex='"+ssex+"',birth='"+sbirth+"',class='"+sclass+"',academy='"+sacademy+"'where number="+snumber;
                    int i = stm.executeUpdate(sql);
                    if(i>0) {
                        JOptionPane.showMessageDialog(null, "修改成功!", "提示信息", JOptionPane.INFORMATION_MESSAGE);
                    }else {
                        JOptionPane.showMessageDialog(null, "修改失败!", "提示信息", JOptionPane.INFORMATION_MESSAGE);
                    }
                }

                else {
                    JOptionPane.showMessageDialog(null, "该学号学生不存在!", "提示信息", JOptionPane.WARNING_MESSAGE);

                }

                stm.close();

            } catch (SQLException e1) {
                e1.printStackTrace();
            }

3、删除和查询

 public void actionPerformed(ActionEvent e) {

        if(e.getSource() == ensureBtn) {
            Integer snumber = Integer.parseInt(JTNumber.getText());
            //检索学生

            String sql = "select * from students where number='"+snumber+"'";

            //打开数据库连接并创建Statement对象

            try {
                Statement stm = DBConnection.getCon().createStatement();
                ResultSet rs = stm.executeQuery(sql);
                if(rs.next()) {
                    //删除一条记录

                    sql = "delete from students where number ='"+snumber+"'";
                    int i = stm.executeUpdate(sql);
                    if(i>0) {
                        JOptionPane.showMessageDialog(null, "删除成功!", "提示信息", JOptionPane.INFORMATION_MESSAGE);
                    }else {
                        JOptionPane.showMessageDialog(null, "删除失败!", "提示信息", JOptionPane.INFORMATION_MESSAGE);
                    }
                }

                else {
                    JOptionPane.showMessageDialog(null, "该账号不存在!", "提示信息", JOptionPane.WARNING_MESSAGE);
                }

                stm.close();



            } catch (SQLException e1) {

                e1.printStackTrace();

            }

        }

4、查询群体

 public List<Students> queryAllUser(){



        Connection conn=null;
        //预编译语句

        PreparedStatement ps=null;
        //结果集

        ResultSet rs=null;
        String sql="select * from students";
        List<Students> list=new ArrayList<Students>();
        try {

            conn=DBConnection.getCon();
            //获取结果集

            ps=conn.prepareStatement(sql);
            rs=ps.executeQuery();



            while(rs.next()){
                Students student=new Students();
                student.setId(rs.getInt(1));
                student.setName(rs.getString(2));
                student.setSex(rs.getString(3));
                student.setBirthday(rs.getString(4));
                student.setClasses(rs.getString(5));
                student.setAcademy(rs.getString(6));
                list.add(student);

            }

            conn.close();



        } catch (SQLException e) {
            e.printStackTrace();
        }
        return list;
    }

四、安装包获取

阿里云盘: https://www.alipan.com/s/C7M3hQwpGKH

提取码: x2x1 

如需完整学生信息管理系统项目可以去我的主页查阅另一篇文章

https://blog.csdn.net/m0_62304704/article/details/140066053?spm=1001.2014.3001.5502

  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Java连接MySQL数据库可以使用JDBC技术,具体实现步骤如下: 1. 导入MySQL JDBC驱动包 在Java项目中,需要导入MySQL JDBC驱动包,以便能够连接MySQL数据库。可以从MySQL官网下载对应版本的驱动包,或者使用Maven等工具自动导入。 2. 建立数据库连接 使用JDBC API中的DriverManager类,通过指定数据库URL、用户名和密码等信息,建立与MySQL数据库的连接。 3. 执行SQL语句 通过Connection对象的createStatement()方法创建Statement对象,然后使用该对象执行SQL语句,包括增加、删除、修改和查询等操作。 4. 处理查询结果 对于查询操作,可以使用ResultSet对象获取查询结果集,然后遍历结果集并进行处理。 5. 关闭数据库连接 使用Connection对象的close()方法关闭数据库连接,释放资源。 以上就是Java连接MySQL数据库实现增删改查的基本步骤。 ### 回答2: Java连接MySQL数据库实现增删改查Java开发中经常要处理的工作。为了完成这个任务,我们需要使用Java中的JDBC API,该API提供了Java数据库交互的标准数据库访问接口。在本文中,我们将分步骤介绍如何使用Java连接MySQL数据库实现数据的增删改查。 1.准备工作 在开始连接MySQL数据库之前,我们需要做一些准备工作。 1)下载安装MySQL数据库。 2)下载并添加MySQL JDBC驱动器到Java项目的Classpath中,以便Java代码能够在运行时使用它。这个JDBC驱动器可以从MySQL官网下载。 3)我们需要在代码中导入java.sql和javax.sql包,这些包中含有Java连接数据库所需要的接口和类。 2.连接MySQL数据库 Java连接MySQL数据库的第一步是建立与数据库的连接。连接MySQL数据库时,需要使用MySQL提供的连接URL、用户名和密码。 连接MySQL数据库的示例代码如下: ```java import java.sql.*; public class MySQLTest { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/database_name"; String username = "root"; String password = "password"; Connection conn = null; try { conn = DriverManager.getConnection(url, username, password); if (conn != null) { System.out.println("Connected to the database!"); } } catch (SQLException e) { System.err.println("Unable to connect to the database!"); e.printStackTrace(); } finally { try { if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } } } ``` 这是一个基本的连接MySQL数据库的示例代码。在这个代码中,我们首先定义了一个连接数据库需要的url、用户名和密码。然后使用Connecton接口的getConnection()方法连接数据库。getConnection()方法把连接URL、用户名和密码传递给DriverManager类,建立数据库连接。如果连接成功了,则打印一条连接成功的信息。 3.数据查询 Java连接MySQL数据库之后,我们需要执行SQL查询语句来获取数据。Java提供了处理SQL查询语句的接口和类。 Java查询MySQL数据库的示例代码如下: ```java import java.sql.*; public class QueryTest { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/database_name"; String username = "root"; String password = "password"; Connection conn = null; Statement stmt = null; ResultSet rs = null; try { conn = DriverManager.getConnection(url, username, password); stmt = conn.createStatement(); String sql = "SELECT * FROM TABLE_NAME"; rs = stmt.executeQuery(sql); while (rs.next()) { //获取每一条记录的数据并处理 } } catch (SQLException e) { System.err.println("Query Error!"); e.printStackTrace(); } finally { try { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } } } ``` 以上代码中我们首先连接数据库,然后使用createStatement()方法创建一个Statement对象,使用该对象执行一个查询语句,得到一个ResultSet对象,通过该对象的next()方法遍历结果集,获取每一条记录的数据并处理。 4.数据插入 Java连接MySQL数据库之后,我们需要向数据库中插入数据。Java提供了处理SQL插入语句的接口和类。 Java插入数据的示例代码如下: ```java import java.sql.*; public class InsertTest { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/database_name"; String username = "root"; String password = "password"; Connection conn = null; Statement stmt = null; try { conn = DriverManager.getConnection(url, username, password); stmt = conn.createStatement(); String sql = "INSERT INTO TABLE_NAME (param1, param2, ...) VALUES (value1, value2, ...)"; int rows = stmt.executeUpdate(sql); if (rows > 0) { System.out.println(rows + " rows are inserted!"); } } catch (SQLException e) { System.err.println("Insert Error!"); e.printStackTrace(); } finally { try { if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } } } ``` 以上代码中,我们首先连接数据库,然后使用createStatement()方法创建一个Statement对象,使用该对象执行一个插入语句,得到一个int类型的rows对象,代表插入了多少行数据。 5.数据更新 Java连接MySQL数据库之后,我们需要更新数据库中的数据。Java提供了处理SQL更新语句的接口和类。 Java更新数据的示例代码如下: ```java import java.sql.*; public class UpdateTest { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/database_name"; String username = "root"; String password = "password"; Connection conn = null; Statement stmt = null; try { conn = DriverManager.getConnection(url, username, password); stmt = conn.createStatement(); String sql = "UPDATE TABLE_NAME SET param1=value1 WHERE clause"; int rows = stmt.executeUpdate(sql); if (rows > 0) { System.out.println(rows + " rows are updated!"); } } catch (SQLException e) { System.err.println("Update Error!"); e.printStackTrace(); } finally { try { if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } } } ``` 以上代码中,我们首先连接数据库,然后使用createStatement()方法创建一个Statement对象,使用该对象执行一个更新语句,得到一个int类型的rows对象,代表更新了多少行数据。 6.数据删除 Java连接MySQL数据库之后,我们需要从数据库中删除数据。Java提供了处理SQL删除语句的接口和类。 Java删除数据的示例代码如下: ```java import java.sql.*; public class DeleteTest { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/database_name"; String username = "root"; String password = "password"; Connection conn = null; Statement stmt = null; try { conn = DriverManager.getConnection(url, username, password); stmt = conn.createStatement(); String sql = "DELETE FROM TABLE_NAME WHERE clause"; int rows = stmt.executeUpdate(sql); if (rows > 0) { System.out.println(rows + " rows are deleted!"); } } catch (SQLException e) { System.err.println("Delete Error!"); e.printStackTrace(); } finally { try { if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } } } ``` 以上代码中,我们首先连接数据库,然后使用createStatement()方法创建一个Statement对象,使用该对象执行一个删除语句,得到一个int类型的rows对象,代表删除了多少行数据。 总结: 本文介绍了如何使用Java连接MySQL数据库实现增删改查。在实际应用中,我们还需要注意一些细节问题,例如:连接池、预编译语句、事务控制等等。希望大家能够在实践中掌握Java连接MySQL数据库的基本技巧,并制定出一些适合自己项目的数据库编程策略。 ### 回答3: Java连接MySQL数据库实现增删改查非常常见和基础的操作,下面我来简单介绍一下实现方法。 首先,需要引入MySQL的JDBC驱动器,可以在MySQL官网上下载最新的JDBC驱动器(mysql-connector-java.Jar),然后将它作为Java项目中的外部Jar包引入项目中。 其次,需要在Java程序中编写连接MySQL数据库的代码,首先需要定义连接信息,包括数据库的URL、用户名和密码: ```java String url = "jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=UTF-8"; String user = "root"; String password = "123456"; ``` 这里的URL中localhost是指连接的MySQL数据库所在的主机名,3306是MySQL监听的端口号,testdb是数据库名。 然后,在程序中使用Java的JDBC API进行数据库连接,代码如下: ```java Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(url, user, password); System.out.println("数据库连接成功!"); } catch (ClassNotFoundException e) { System.out.println("数据库驱动没有安装"); } catch (SQLException e) { System.out.println("数据库连接失败"); } ``` 这里使用Class.forName()动态加载MySQL的JDBC驱动器,然后调用DriverManager.getConnection()方法进行数据库连接,并验证连接是否成功。 然后就可以使用Java的JDBC API进行增删改查操作。例如,查询数据库中的数据: ```java Statement stmt = null; ResultSet rs = null; try { stmt = conn.createStatement(); rs = stmt.executeQuery("SELECT * FROM student"); while (rs.next()) { String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println("name:" + name + ", age:" + age); } } catch (SQLException e) { e.printStackTrace(); } finally { try { rs.close(); stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } ``` 这里的stmt是一个Statement对象,利用它可以向数据库发送SQL语句并返回查询到的结果,rs是一个ResultSet对象,是查询的结果集。 添加数据和修改数据的方法与查询类似,只是需要使用不同的SQL语句。例如,添加一条记录: ```java PreparedStatement ps = null; try { ps = conn.prepareStatement("INSERT INTO student(name, age) VALUES(?, ?)"); ps.setString(1, "Jack"); ps.setInt(2, 20); int i = ps.executeUpdate(); if (i > 0) { System.out.println("添加成功!"); } else { System.out.println("添加失败!"); } } catch (SQLException e) { e.printStackTrace(); } finally { try { ps.close(); } catch (SQLException e) { e.printStackTrace(); } } ``` 这里PreparedStatement对象可以使用占位符(“?”)来预编译SQL语句,防止SQL注入攻击。 删除数据也是类似的,这里就不赘述了。 总之,Java连接MySQL数据库实现增删改查Java程序员必备的基础操作,要熟练掌握这些操作,才能更好的进行Java开发。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值