草庐IT

Java连接Access数据库改成MySQL连接数据库

Jack魏 2023-03-28 原文
升级诉求:Java连接Access已经算是过时的产物了,一般作为存储服务的应用在Java界比较常用的还是MySQL, 当然还有Oracle数据库。这里要讲的就是连接MySQL数据库了。 就是因为有了SQL标准,各大厂商实现SQL语句基本上大同小异, 所以我们从Access平稳的切换到MySQL数据库也比较方便快捷, 那如何进行Access数据库切换成MySQL数据呢? 下文就是指导手册了,如有问题可以联系作者一同探讨哟~

(Java连接Access数据库改成MySQL连接数据库)

1. 环境准备

这里假设你已经安装好了必要的环境: JDK1.8 Access 2016+ MySQL 5.7+

Microsoft Access 2016安装教程:https://blog.csdn.net/WeiHao0240/article/details/120672363

Java使用ODBC连接Access数据库:https://blog.csdn.net/WeiHao0240/article/details/120727203

JDK8 连接Access数据库: https://blog.csdn.net/WeiHao0240/article/details/127944521

MySQL8.0和5.7安装教程: https://blog.csdn.net/WeiHao0240/article/details/86908034

2. 下载MySQL连接驱动

官网地址:https://dev.mysql.com/downloads/connector/j/

需要登录即可下载

3. 演示代码

码云地址:https://gitee.com/jack0240/SCS.git 可以将源代码下载到自己本地。 src就是源码了 card.sql 是数据库文件,可以直接导入。 Card.xlsx就是导入的数据。 mysql-connector-j-8.0.31.jar驱动文件,如果下载不下来官方的可以用这个。

4. 新建数据库和表数据

4.1 新建数据库和表

Navicat创建数据库和表教程: https://blog.csdn.net/WeiHao0240/article/details/100039403 右击你的数据库,然后点击新建数据库

这个时候数据库名可以随便取一个。 双击刚才新建的数据库,然后右击,点击新建表 接下来就是新建表数据了。

4.2 根据Access创建MySQL表数据

首先打开Access数据文件,然后点击设计模式 然后注意下面的1(图片中标1的地方),是主键,对应字段即可,如果没有主键就不用点击。 2 (图片中标2的地方)就是对应的字段名了,一定要一一对应上。 3 (图片中标3的地方)是类型,也要一一对应上,短文本对应的是varchar。

Access 数据类型 MySQL数据类型
短文本 varchar
长文本 text
数字 float
日期/时间 datetime

表名的话不要乱起,不然的话需要更换很多地方,这时候需要找到你原始连接Access的源代码(全局搜索jdbc:), 找到如下配置,可以看到最后一个是Card,那么表名就是它 然后按<kbd>Ctrl </kbd> + <kbd>S</kbd>保存:表名输入的就是上面源码的。 这时候需要设置数据库不区分大小写了,可以查看参考资料哟~

4.3 导入数据

首先打开Access数据,右击对应的表,然后点击导出将数据到处到Excel文件。 文件名可以修改你熟悉的地方,便于查找。 然后将Excel文件导入到MySQL表里面了,需要右击表,然后点击导入向导 选择Excel文件: 勾选新建好的表: 其他的默认即可,直接点击下一步: 可以根据自己的需求选择导入模式,这里我们选择追加模式: 点击最下面的刷新就可以看到导入的数据了。

5. 修改源代码连接

5.1 修改驱动

首先找到Class.forName关键字: 修改如下

// MySQL 8.0以下版本 Class.forName("com.mysql.jdbc.Driver"); // MySQL 8.0及以上版本需要修改如下 Class.forName("com.mysql.cj.jdbc.Driver");

5.2 修改数据库连接

找到DriverManager.getConnection关键字: 注意3306端口号,是你安装数据库的端口号。 test是你新建数据库的名称。 用户名、密码就是MySQL安装时设置的用户名、密码

// MySQL 8.0以下版本 DriverManager.getConnection("jdbc:mysql://localhost:3306/test","用户名","密码"); // MySQL 8.0及以上 DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC", "用户名","密码");

5.3 修改前后对比

修改前:

修改后:

6. 运行

6.1 使用命令方式

// 编译 javac -cp ".;E:\Code\git\SCS\MySQL\mysql-connector-j-8.0.31.jar" -encoding utf-8 Main.java // 运行 java -cp ".;E:\Code\git\SCS\MySQL\mysql-connector-j-8.0.31.jar" Main 注意红色方框里面的内容。 -cp是指定额外的包进行编译 -encoding utf-8 是指定文件编码。

运行截图:

6.2 使用Eclipse运行

一种简单的方式就是将驱动直接放到JDK外部包下面: 这种方式就像JDK自带数据库驱动一样,不需要额外的配置, 但是一定要放到你安装JDK目录jre\lib\ext目录下哟。 接下来的另一个方式就是通用的Eclipse添加外部包的方式了: 右击你的项目→Properties→Java Build Path → Libraries → Add JARs,选择驱动即可。 然后右击主类,Run As → Java Application

参考资料

Java MySQL 连接教程:https://www.runoob.com/java/java-mysql-connect.html MySQL 5.7中文乱码与远程链接问题 https://blog.csdn.net/WeiHao0240/article/details/128166409

有关Java连接Access数据库改成MySQL连接数据库的更多相关文章

  1. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  2. ruby - 续集在添加关联时访问many_to_many连接表 - 2

    我正在使用Sequel构建一个愿望list系统。我有一个wishlists和itemstable和一个items_wishlists连接表(该名称是续集选择的名称)。items_wishlists表还有一个用于facebookid的额外列(因此我可以存储opengraph操作),这是一个NOTNULL列。我还有Wishlist和Item具有续集many_to_many关联的模型已建立。Wishlist类也有:selectmany_to_many关联的选项设置为select:[:items.*,:items_wishlists__facebook_action_id].有没有一种方法可以

  3. java - 等价于 Java 中的 Ruby Hash - 2

    我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/

  4. ruby - 无法在 60 秒内获得稳定的 Firefox 连接 (127.0.0.1 :7055) - 2

    我使用的是Firefox版本36.0.1和Selenium-Webdrivergem版本2.45.0。我能够创建Firefox实例,但无法使用脚本继续进行进一步的操作无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055)错误。有人能帮帮我吗? 最佳答案 我遇到了同样的问题。降级到firefoxv33后一切正常。您可以找到旧版本here 关于ruby-无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055),我们在StackOverflow上找到一个类

  5. 使用 ACL 调用 upload_file 时出现 Ruby S3 "Access Denied"错误 - 2

    我正在尝试编写一个将文件上传到AWS并公开该文件的Ruby脚本。我做了以下事情:s3=Aws::S3::Resource.new(credentials:Aws::Credentials.new(KEY,SECRET),region:'us-west-2')obj=s3.bucket('stg-db').object('key')obj.upload_file(filename)这似乎工作正常,除了该文件不是公开可用的,而且我无法获得它的公共(public)URL。但是当我登录到S3时,我可以正常查看我的文件。为了使其公开可用,我将最后一行更改为obj.upload_file(file

  6. ruby - Ruby 有 `Pair` 数据类型吗? - 2

    有时我需要处理键/值数据。我不喜欢使用数组,因为它们在大小上没有限制(很容易不小心添加超过2个项目,而且您最终需要稍后验证大小)。此外,0和1的索引变成了魔数(MagicNumber),并且在传达含义方面做得很差(“当我说0时,我的意思是head...”)。散列也不合适,因为可能会不小心添加额外的条目。我写了下面的类来解决这个问题:classPairattr_accessor:head,:taildefinitialize(h,t)@head,@tail=h,tendend它工作得很好并且解决了问题,但我很想知道:Ruby标准库是否已经带有这样一个类? 最佳

  7. java - 从 JRuby 调用 Java 类的问题 - 2

    我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www

  8. java - 我的模型类或其他类中应该有逻辑吗 - 2

    我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我

  9. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

  10. ruby - 我如何添加二进制数据来遏制 POST - 2

    我正在尝试使用Curbgem执行以下POST以解析云curl-XPOST\-H"X-Parse-Application-Id:PARSE_APP_ID"\-H"X-Parse-REST-API-Key:PARSE_API_KEY"\-H"Content-Type:image/jpeg"\--data-binary'@myPicture.jpg'\https://api.parse.com/1/files/pic.jpg用这个:curl=Curl::Easy.new("https://api.parse.com/1/files/lion.jpg")curl.multipart_form_

随机推荐