当前位置: 首页 > news >正文

mysql-connector-java本地试验

mysql-connector-java本地试验

题外话:因为Intellij配置报错java: 错误: 不支持发行版本 5,试过调整project structure也不行,所以直接在Ubuntu里搞


  • 环境:Ubuntu 22.04
  • 软件:MySQL 8.0.39, jdk17.0.12

编写数据库

CREATE DATABASE test_db;
USE test_db;
CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),age INT
)
INSERT INTO users (name, age) VALUES ('Alice', 25), ('Bob', 30);
EXIT;

创建项目文件

mkdir ~/my-java-project && cd ~/my-java-project

vim编写Main.java

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;public class Main{public static void main(String[] args){String jdbcUrl = "jdbc:mysql://localhost:3306/test_db?useSSL=false&serverTimezone=UTC";String username = "root";String password = "密码";   //替换成MySQL密码Connection connection = null;Statement statement = null;try{connection = DriverManager.getConnection(jdbcUrl, username, password);statement = connection.createStatement();String sql = "SELECT * FROM users";ResultSet resultSet = statement.executeQuery(sql);while(resultSet.next()){System.out.println("ID:" + resultSet.getInt("id"));System.out.println("Name:" + resultSet.getString("name"));System.out.println("Age:" + resultSet.getInt("age"));}resultSet.close();}catch(Exception e){e.printStackTrace();}finally{try{if(statement != null) statement.close();if(connection !=null) connection.close();}catch(Exception e){e.printStackTrace();}}}
}

ESC :wq退出编辑


trouble shooting

  • 官网下载MySQL对应驱动包
  • 移动包到项目文件夹
  • 这里官网下载的为".deb"包,需要安装,安装完成后所在目录一般为/usr/share/java/mysql-connector-java-x.x.x.jar,
  • 没有对应的版本,所以我下载了9.0.0
cp /mnt/c/Users/用户名/Downloads/mysql-connector-j-9.0.0-1ubuntu22.04_all.deb ~/my-java-project/  //移动到项目文件夹
dpkg -i mysql-connector-j_9.0.0-1ubuntu22.04_all.deb //这里名字容易打错,注意下划线

  • 编译与执行
javac -cp .:/usr/share/java/mysql-connector-java-x.x.x.jar Main.java
java -cp .:/usr/share/java/mysql-connector-java-x.x.x.jar Main

  • 输出
ID:1
Name:Alice
Age:25
ID:2
Name:Bob
Age:30

  • MySQL用户权限(若出现拒绝访问)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

参数解释

dbkg: 包管
|: 管操符
grep: 搜文,后接字段名
-f: apt-get选项,fix-broken,修复依赖关系
-cp: 指定路径,'.'指当前路径,':/usr/share/'指jar文件路径,这样做将类文件和jar加入jvm类路径。

相关文章:

  • Python数据分析工具(三):pymssql的用法
  • 选对工具,效率飞跃提升
  • Kibana中突然看不到日志ElasticSearch突然采集不到日志问题解决分析
  • Ubuntu24.04 安装ssh开启22端口及允许root用户远程登录
  • 记录一次学习--委派攻击学习
  • Ubuntu以及ROS的一些方便设置及使用
  • H.264与H.265
  • Protobuf vs Thrift: 高性能序列化框架的对比与分析
  • 消息队列常见面试题总结
  • Linux复习--系统管理类(权限优化、备份策略、RAID、资源查看、启动流程、系统优化)
  • 灵当CRM index.php接口SQL注入漏洞复现 [附POC]
  • [uni-app]小兔鲜-02项目首页
  • 菱形继承、菱形虚拟继承、菱形继承中多态问题、菱形虚拟继承中多态问题
  • 2024外研社综合能力大赛第一场真题
  • 【redis-02】深入理解redis中RBD和AOF的持久化
  • Google 是如何开发 Web 框架的
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • E-HPC支持多队列管理和自动伸缩
  • Golang-长连接-状态推送
  • interface和setter,getter
  • Java精华积累:初学者都应该搞懂的问题
  • js递归,无限分级树形折叠菜单
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • leetcode46 Permutation 排列组合
  • nfs客户端进程变D,延伸linux的lock
  • python_bomb----数据类型总结
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • Redis中的lru算法实现
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • 编写符合Python风格的对象
  • 从0实现一个tiny react(三)生命周期
  • 记录一下第一次使用npm
  • 京东美团研发面经
  • 聚类分析——Kmeans
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 用 Swift 编写面向协议的视图
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 原生Ajax
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 交换综合实验一
  • ​如何在iOS手机上查看应用日志
  • # windows 运行框输入mrt提示错误:Windows 找不到文件‘mrt‘。请确定文件名是否正确后,再试一次
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #define用法
  • $.ajax()参数及用法
  • $LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams
  • (2)leetcode 234.回文链表 141.环形链表
  • (2015)JS ES6 必知的十个 特性
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (pojstep1.3.1)1017(构造法模拟)
  • (搬运以学习)flask 上下文的实现
  • (力扣)1314.矩阵区域和
  • **CI中自动类加载的用法总结
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .cn根服务器被攻击之后