• ArthurSlog

  • SLog-5

  • Year·1

  • Guangzhou·China

  • July 11th 2018

微信扫描二维码,关注我的公众号

做到每个敲下的按键、每次鼠标的点击、每次手机屏幕的触碰,都能产生价值

开发环境MacOS(High Sierra 10.13.5)

Java为了开发应用级的程序,整个开发链比较繁琐复杂,所以会需要更多的时间来掌握。

  • 老规则,让我们明确一下需要的信息Mysql官方手册

  • 打开命令行,测试一下java,如果提示没有安装JDK,移步JavaJDK下载

  • 安装完JDK,测试一下安装是否完整

java -version

java version "10.0.1" 2018-04-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)
复制代码

javac -version

javac 10.0.1
复制代码
  1. 在macOS中,JDK安装路径是/Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home
  2. 在macOS中,JRE安装路径是/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
  • 下载Connector / J,选择platform Independent,选择Platform Independent (Architecture Independent), ZIP Archive下载

  • 下载好Connector / J后解压文件得到文件夹,配置 CLASSPATH

export CLASSPATH=~/Downloads/mysql-connector-java-8.0.11.jar:$CLASSPATH

  • 下面是完整代码

LoadDriver.java

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;// assume that conn is an already created JDBC connection (see previous examples)
public class LoadDriver {public static void main(String[] args) {try {// The newInstance() call is a work around for some// broken Java implementationsClass.forName("com.mysql.cj.jdbc.Driver").newInstance();Connection conn = null;try {conn =DriverManager.getConnection("jdbc:mysql://localhost/my_db?" +"user=root&password=88888888");// Do something with the ConnectionStatement stmt = null;ResultSet rs = null;try {stmt = conn.createStatement();rs = stmt.executeQuery("SELECT * FROM Account");// or alternatively, if you don't know ahead of time that// the query will be a SELECT...if (stmt.execute("SELECT * FROM Account")) {rs = stmt.getResultSet();}// Now do something with the ResultSet ....ResultSetMetaData rsmd = rs.getMetaData();int columnsNumber = rsmd.getColumnCount();while (rs.next()) {for (int i = 1; i <= columnsNumber; i++) {if (i > 1) System.out.print(",  ");String columnValue = rs.getString(i);System.out.print(columnValue + " " + rsmd.getColumnName(i));}System.out.println("");}}catch (SQLException ex){// handle any errorsSystem.out.println("SQLException: " + ex.getMessage());System.out.println("SQLState: " + ex.getSQLState());System.out.println("VendorError: " + ex.getErrorCode());}finally {// it is a good idea to release// resources in a finally{} block// in reverse-order of their creation// if they are no-longer neededif (rs != null) {try {rs.close();} catch (SQLException sqlEx) { } // ignorers = null;}if (stmt != null) {try {stmt.close();} catch (SQLException sqlEx) { } // ignorestmt = null;}}} catch (SQLException ex) {// handle any errorsSystem.out.println("SQLException: " + ex.getMessage());System.out.println("SQLState: " + ex.getSQLState());System.out.println("VendorError: " + ex.getErrorCode());}} catch (Exception ex) {// handle the errorSystem.out.println("Exception: " + ex.getMessage());}}
}
复制代码

执行流程如下:

  1. 用java应用程序注册你的mysql jdbc驱动程序,参考Mysql/JDBC执行SQL手册
Class.forName("com.mysql.cj.jdbc.Driver").newInstance()
复制代码
  1. 连接数据库
conn =DriverManager.getConnection("jdbc:mysql://localhost/my_db?" + "user=root&password=88888888")
复制代码
  1. 获得连接对象,并执行SQL指令
Statement stmt = null;
ResultSet rs = null;stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * FROM Account");
复制代码
  1. 获得SQL执行结果,对结果进行打印
ResultSetMetaData rsmd = rs.getMetaData();
int columnsNumber = rsmd.getColumnCount();
while (rs.next()) {for (int i = 1; i <= columnsNumber; i++) {if (i > 1) System.out.print(",  ");String columnValue = rs.getString(i);System.out.print(columnValue + " " + rsmd.getColumnName(i));}System.out.println("");}
复制代码
  • 打印SQL结果
ResultSet resultSet = statement.executeQuery("SELECT * from foo");
ResultSetMetaData rsmd = resultSet.getMetaData();
int columnsNumber = rsmd.getColumnCount();
while (resultSet.next()) {for (int i = 1; i <= columnsNumber; i++) {if (i > 1) System.out.print(",  ");String columnValue = resultSet.getString(i);System.out.print(columnValue + " " + rsmd.getColumnName(i));}System.out.println("");
}
复制代码
  • 切换到LoadDriver.java文件路径下,编译LoadDriver.java文件

javac LoadDriver.java

  • 编译生成LoadDriver.class,编译提示
注: LoadDriver.java使用或覆盖了已过时的 API。
注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。
复制代码
  • 执行LoadDriver.class文件

java LoadDriver

  • 执行结果,打印Account表信息如下:
1 ID,  ArthurSlog AccountName,  ArthurSlog Password
复制代码
  • 至此,Java与MySQL成功实现了数据交互。

欢迎关注我的微信公众号 ArthurSlog

微信扫描二维码,关注我的公众号

如果你喜欢我的文章 欢迎点赞 留言

谢谢

如何使用Java与Mysql进行数据交互相关推荐

  1. java向mysql插入数据乱码问题解决

    java向mysql插入数据乱码问题解决 参考文章: (1)java向mysql插入数据乱码问题解决 (2)https://www.cnblogs.com/jack204/archive/2012/0 ...

  2. Slog3_如何使用Python与Mysql进行数据交互

    ArthurSlog SLog-3 Year·1 Guangzhou·China July 9th 2018 自己的梦想需要你自己去实现 开发环境MacOS(High Sierra 10.13.5) ...

  3. java与数据库的数据交互,Java与数据库初步交互(后续需要进行优化)

    1.浅谈Java-MVC(个人理解) lModel层存放数据实体 lDao层访问数据库返回结果集给Controller层 lModelLogic(Model分支)用来进行业务逻辑处理,并进行一系列的判 ...

  4. 微信小程序 通过nodeJs操作MySQL进行数据交互

    下面的操作,我是通过phpStudy和Navicat for MySQL搭建起来的开发环境 我提供一个Navicat for MySQL的安装和破解方法:https://blog.csdn.net/m ...

  5. java获取mysql的数据_【助教】Java获取数据库数据展示

    本文将给出一个最简单的Java查询数据库中一张表的数据并将查询结果展示在页面的例子. 实际上,我们要解决以下两个问题: Java与数据库交互(以JDBC为例) 数据展示在前台页面(以Servlet+J ...

  6. java向mysql写入数据慢_通过java代码往mysql数据库中写入日期相关数据少13个小时...

    通过show variables like '%time_zone%'; 查看时区: CST 时区 名为 CST 的时区是一个很混乱的时区,有四种含义: 美国中部时间 Central Standard ...

  7. 安卓连接mysql客户端_安卓客户端与mysql服务器端数据交互

    1.安卓客户端的配置(上传数据) package com.dlvtc.upphp; import java.io.IOException; import java.io.UnsupportedEnco ...

  8. 一次较为完整的原生JavaScript AJAX与Java的前后端数据交互

    效果 Maven 依赖 <dependency><groupId>javax.servlet</groupId><artifactId>javax.se ...

  9. java把mysql大数据量表每个文件最多10MB分批次写入到txt文件中

    需求描述: 现在利率报备系统需要把数据上传到第三方系统,表中的数据量非常大,我们需要把表中的数据生成txt文件,然后上传到第三方系统,并且,上传的txt有大小限制,不能超过10MB,后面还需要压缩成z ...

最新文章

  1. 项目:IT资源共享资源(登录前端)1
  2. pixhawk的姿态控制算法解读
  3. 浅析 EF Core 5 中的 DbContextFactory
  4. 一个神奇的测试_一个神奇的测试!测一测孩子的健康成长水平!
  5. 计量风险系列—两大定价产品怎么计算风险损失
  6. UVN相机模型矩阵推导
  7. Mac更新Big Sur或者Monterey后没有管理员账户或当前账户没有管理员权限或rm /var/db/.AppleSetupDone: No such file or directory解决方案
  8. java解析json字符串数据
  9. Hashtable如何保证线程安全
  10. UVA - 10410 -通过dfs序列和bfs序列还原树
  11. 用敏捷思维来指导我们的工作和学习 --专栏《说透敏捷》学习总结
  12. 虚拟机或公有云搭建wordpress博客
  13. 计算机组成中位、字节、字、字长、存储单元、存储字、存储字的辨析
  14. 【翻译】CEDEC2014[跨越我的尸体2]跨越Stylized Rendering
  15. 世界500强公司面试题(很多)
  16. 大数据治理:那些年,我们一起踩过的坑
  17. 济南2022年全面实行电子劳动合同,爱签电子合同为HR赋能增效
  18. 【毕业设计day04】思路理清
  19. 电脑待机服务器没有响应,电脑和服务器的CPU的uncore待机功耗显示异常的问题
  20. HTML5移动端手机网站开发

热门文章

  1. 【2013年11月12号】日记
  2. Eclipse导入工程后显示小红叉叉怎么解决?
  3. CodeSmith使用笔记
  4. 解决TM2008的界面字体问题
  5. #{}不自动改参数类型_ORT-260电动打包机常规参数
  6. 光流 | 基于Lukas-Kanade光流法的目标跟踪(附C++代码)
  7. 浅谈C/C++引用和指针的联系和区别
  8. select 1 from table
  9. html 价格列表组件,评价列表ratings组件
  10. linux离线安装python3 devel_linux离线安装python3