用IDEA从头创建一个jdbc项目修改数据库数据(mysql+navicat)

news/2025/4/1 19:15:04/文章来源:https://www.cnblogs.com/sunshine233/p/18791077

0. 参考文档

  • [1] https://blog.csdn.net/PIKapikaaaa/article/details/124113065
  • [2] https://blog.csdn.net/qq_36816794/article/details/141621264

 JDBC是java访问数据库的基石,JDO, Hibernate等只是更好的封装了JDBC。

1、创建项目

IDEA新建一个空项目或者空module 选中 maven

2、安装 jdbc 驱动

在pom.xml中写入

    <dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.18</version></dependency></dependencies>

 刷新maven,等待依赖下载完成。

3、编写代码

jdbc访问数据库步骤:

1. 加载 mysql 驱动
2. 获取连接对象 
3. 创建命令对象
4. 编写sql命令
5. 执行sql命令 返回结果
6. 处理结果
7. 释放资源

3.1 JDBC API

JDBC API是⼀系列的接⼝,它统⼀和规范了应⽤程序与数据库的连接、执⾏SQL语句,并到得到返回结果等各类操作。声明在java.sql与javax.sql包中。

【谐音记忆:jdbc的创始人DCSR)】

  • DriverManager类 管理不同的驱动

  • Connection 接⼝ 应⽤和数据库的连接

  • Statement 接⼝ ⽤于执⾏sql语句

  • ResultSet 接⼝ 保存查询的结果

3.2 基础使用(查询)

如要访问的数据库是navicat,数据库名字是yssh,表名字是 jdbc_user

 先设置参数如下:

// 0. 设置参数
String url = "jdbc:mysql://localhost:3306/yssh?serverTimezone=GMT%2B8";
String user = "root";
String password = "1234";// 1. 加载 mysql 驱动
Class.forName("com.mysql.cj.jdbc.Driver");// 反射
System.out.println("加载 mysql驱动成功");
// 2. 获取连接对象
Connection connection = DriverManager.getConnection(url, user, password);
System.out.println("获取连接对象成功");
// 3. 创建命令对象
Statement statement = connection.createStatement();
// 4. 编写sql命令
String sql = "select * from jdbc_user";
// 5. 执行sql命令 返回结果
if (connection == null) {System.out.println("判断连接对象:连接失败");return;
}
System.out.println("判断连接对象:连接成功");
ResultSet resultSet = statement.executeQuery(sql);
// 6. 处理返回的结果
while (resultSet.next()){// ResultSet游标最初定位在第一行之前;对next方法的第一次调用使第一行成为当前行;第二次调用使第二行成为当前行,依此类推。Object id = resultSet.getObject(1);Object name = resultSet.getString(2);Object age = resultSet.getInt(3);Object grade = resultSet.getString(4);System.out.println("\33[0m" + id + " " + name + " " + age + " " + grade);
}
// 7. 关闭资源
resultSet.close();
statement.close();
connection.close();

点击运行,查询结果如下:

3.3 插入数据

public static void main(String[] args) throws ClassNotFoundException, SQLException {// 0. 设置参数String url = "jdbc:mysql://localhost:3306/yssh?serverTimezone=GMT%2B8";String user = "root";String password = "1234";// 1. 加载 mysql 驱动Class.forName("com.mysql.cj.jdbc.Driver");// 反射System.out.println("加载 mysql 驱动成功");// 2. 获取连接对象Connection connection = DriverManager.getConnection(url, user, password);System.out.println("获取连接对象成功");// 3. 创建命令对象Statement statement = connection.createStatement();insertUser(statement);queryUser(statement);// 7. 关闭资源
    statement.close();connection.close();
}
public static void insertUser(Statement statement) throws SQLException {// 4. 编写sql命令String sql = "INSERT INTO `jdbc_user` (  `name`, `age`, `grade`) VALUES ( 'eva', '66', '68');";// 5. 执行sql命令 返回结果
    statement.executeUpdate(sql);
}

运行结果如下:

3.4 更新数据

public static void updateUser(Statement statement) throws SQLException {// 4. 编写sql命令String sql = "UPDATE `jdbc_user` SET `age`='66', `grade`='66' WHERE (`name`='EVA');";// 5. 执行sql命令 返回结果
    statement.executeUpdate(sql);
}

  然后在main中调用,运行结果如下:

3.5 删除数据

public static void delUser(Statement statement) throws SQLException {// 4. 编写sql命令String sql = "DELETE FROM `jdbc_user` WHERE (`id`='7');";// 5. 执行sql命令 返回结果
    statement.executeUpdate(sql);
}

 然后在main中调用,运行结果如下:

3.6 全部代码

package com.example;import java.sql.*;/*** jdbc访问数据库步骤:* // 1. 注册驱动(加载驱动)* // 2. 获取连接对象* // 3. 创建命令对象* // 4. 编写sql命令* // 5. 执行sql命令 返回结果* // 6. 处理结果* // 7. 释放资源*/
public class Main {public static void main(String[] args) throws ClassNotFoundException, SQLException {// 0. 设置参数String url = "jdbc:mysql://localhost:3306/yssh?serverTimezone=GMT%2B8";String user = "root";String password = "1234";// 1. 加载 mysql 驱动Class.forName("com.mysql.cj.jdbc.Driver");// 反射System.out.println("加载 mysql 驱动成功");// 2. 获取连接对象Connection connection = DriverManager.getConnection(url, user, password);System.out.println("获取连接对象成功");// 3. 创建命令对象Statement statement = connection.createStatement();// insertUser(statement);// updateUser(statement);
        delUser(statement);queryUser(statement);// 7. 关闭资源
        statement.close();connection.close();}public static void queryUser(Statement statement) throws SQLException {// 4. 编写sql命令String sql = "select * from jdbc_user";// 5. 执行sql命令 返回结果ResultSet resultSet = statement.executeQuery(sql);// 6. 处理返回的结果while (resultSet.next()) {Object id = resultSet.getObject(1);Object name = resultSet.getString(2);Object age = resultSet.getInt(3);Object grade = resultSet.getString(4);System.out.println(" " + id + " " + name + " " + age + " " + grade);}// 7. 关闭资源
        resultSet.close();}public static void insertUser(Statement statement) throws SQLException {// 4. 编写sql命令String sql = "INSERT INTO `jdbc_user` (  `name`, `age`, `grade`) VALUES ( 'eva', '66', '68');";// 5. 执行sql命令 返回结果
        statement.executeUpdate(sql);}public static void updateUser(Statement statement) throws SQLException {// 4. 编写sql命令String sql = "UPDATE `jdbc_user` SET `age`='66', `grade`='66' WHERE (`name`='EVA');";// 5. 执行sql命令 返回结果
        statement.executeUpdate(sql);}public static void delUser(Statement statement) throws SQLException {// 4. 编写sql命令String sql = "DELETE FROM `jdbc_user` WHERE (`id`='7');";// 5. 执行sql命令 返回结果
        statement.executeUpdate(sql);}
}

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 vxe-table 来实现左边是树,右边是表格联动功能

使用 vxe-table 来实现左边是树,右边是表格联动功能,当需要实现左右两侧联动时,表格 vxe-grid 配合分割模板 vxe-split 就很容易实现了 查看官网:https://vxetable.cn gitbub:https://github.com/x-extends/vxe-table gitee:https://gitee.com/x-extends/vxe-table 预览代…

day:31 pymysql(1)

一、pymysql下载 1、dos下安装: pip3 install pymysql 或pip install pymysql2、在pycharm中下载二、pymysql连接 (1)数据安装好,能连接(2)连接数据库1、连接方式:pymysql.Connection 或者pymysql.connect 2、包含内容 a.host 主机:填写IP地址 b.user 数据库用…

004 - 创建Runners , 就是创建编译node节点服务器

点击Admin:点击CICD 里面的Runner, 这里的CICD和我之前创建的CICD group没有任何关系. 点击 New instance runner 选择linux服务器, 然后点击 How do i install Gitlab Runner, 需要在node节点安装gitlab-runner 工具,让node节点连接到gitlab 服务器 , 然后就可以被gitlab的…

P1223 排队接水

方法1:冒泡排序方法2:sort

Web3.0时代,DAO如何颠覆传统项目管理?2025年组织治理的范式革命

当全球Web3市场规模突破800亿美元,传统项目管理正遭遇前所未有的范式挑战。麦肯锡研究显示,采用去中心化自治组织(DAO)模式的项目,其决策效率比传统架构提升300%,资源浪费减少75%。这场由区块链技术驱动的管理革命,正在重构项目治理的核心逻辑。一、DAO项目治理的三大底…

一文读懂2024!2025往“这”瞧 |《2024 IT行业项目管理调查报告》发布!

在科技一日千里的当下,IT行业始终站在时代前沿,不断推动着社会的发展与进步。 项目管理作为IT行业稳健前行的关键保障,其重要性不言而喻。 为深入洞察IT行业项目管理态势,给从业者提供权威、实用的参考依据,禅道于2024年年底开展了IT行业项目管理调查。 经过严密的数据收集…