java连接mysql8.0.28数据库实例
首先说明,由于是8版本的数据库,所以配置类的写法上与5版本的有所区别,需要注意,同时用idea或eclipse时需要导入jar包,jar包的下载链接:
https://dev.mysql.com/get/archives/mysql-connector-java-8.0/mysql-connector-java-8.0.28.zip
如果想要下载8版本不同的jar包只需要修改8.0.28为指定版本即可。
idea导入jar包的方法如下:





然后是代码部分,首先先建表:
CREATE TABLE `train_message` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键id',
`train_name` varchar(20) NOT NULL COMMENT '列车名',
`origin` varchar(30) NOT NULL COMMENT '始发地',
`terminal` varchar(30) NOT NULL COMMENT '终到地',
`departure_time` timestamp NOT NULL COMMENT '出站时间',
`state` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '正常' COMMENT '列车状态',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb3
然后创建连接的配置类DbConfig.java,localhost是本机的ip地址,如果有服务器就填服务器的ip地址,message是数据库的名字,这里一张图说下有很多新手误解的名字


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException; /**
* 数据库配置类
* @author 景苒
*/
public class DbConfig {
public Connection dbConfig() throws SQLException {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
}catch (Exception e) {
System.out.print("加载驱动失败!");
e.printStackTrace();
}
String url = "jdbc:mysql://localhost:3306/message?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true";
String user = "root";
String password = "123456";
return DriverManager.getConnection(url, user, password);
}
}
然后写下主函数Main.java,这里主函数的函数体可以在最后再写,需要什么功能就把注释打开就好,快捷注释的方法,选中这句话,按ctrl加/,就能全注释了。
import java.sql.SQLException; /**
* 主函数,调用功能
* @author 景苒
*/
public class Main {
public static void main(String[] args) throws SQLException {
// new GetMessage().getMessage();
// new UpdateTrainState().updateTrainState();
// new InsertTrain().insertTrain();
// new GetNumber().getNumber();
}
}
然后是每个的功能:
1.查询沈阳到武汉的所有列车信息,按出发时间先后排序
建GetMessage.java类
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; /**
* 查询沈阳到武汉的所有列车信息,按出发时间先后排序
* @author 景苒
*/
public class GetMessage {
public void getMessage() throws SQLException {
Connection con = new DbConfig().dbConfig();
String sql = "select * from `train_message` where origin = ? and terminal = ? ORDER BY departure_time ASC";
String origin = "沈阳";
String terminal = "武汉";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, origin);
ps.setString(2, terminal);
ResultSet rs = ps.executeQuery();
try {
while (rs.next()) {
System.out.println("列车名:" + rs.getString("train_name")
+ " 始发站:" + rs.getString("origin")
+ " 终到站:" + rs.getString("terminal")
+ " 出发时间:" + rs.getString("departure_time")
+ " 列车状态:" + rs.getString("state"));
}
}catch (SQLException e) {
e.printStackTrace();
}finally {
ps.close();
con.close();
}
}
}
2.修改T2255列车的状态为停运
建UpdateTrainState.java类
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement; /**
* 修改T2255列车的状态为停运
* @author 景苒
*/
public class UpdateTrainState {
public void updateTrainState() throws SQLException {
Connection con = new DbConfig().dbConfig();
String sql = "UPDATE `train_message` SET state = '停运' WHERE train_name = 'T2255'";
Statement statement = con.createStatement();
try {
int i = statement.executeUpdate(sql);
if (i > 0) {
System.out.println("更新成功");
}else {
System.out.println("更新失败");
}
}catch (SQLException e) {
e.printStackTrace();
}finally {
statement.close();
con.close();
}
}
}
3.新增一辆列车信息(自己输入)
建InsertTrain.java类
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner; /**
* 新增一辆列车信息(自己输入)
* 始发时间为timestamp类型,输入时需要确保格式正确,如:2019-01-01 00:00:00
* @author 景苒
*/
public class InsertTrain {
public void insertTrain() throws SQLException {
Connection con = new DbConfig().dbConfig();
Scanner scanner = new Scanner(System.in);
String sql = "insert into `train_message` values(null, ?, ?, ?, ?, default)";
System.out.print("请输入列车名:");
String trainName = scanner.nextLine();
System.out.print("请输入始发站:");
String origin = scanner.nextLine();
System.out.print("请输入终到站:");
String terminal = scanner.nextLine();
System.out.print("请输入始发时间:");
String departureTime = scanner.nextLine();
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, trainName);
ps.setString(2, origin);
ps.setString(3, terminal);
ps.setString(4, departureTime);
try {
int i = ps.executeUpdate();
if (i > 0) {
System.out.println("添加成功");
}else {
System.out.println("添加失败");
}
}catch (SQLException e) {
e.printStackTrace();
}finally {
ps.close();
con.close();
}
}
}
4.查询状态为正常的列车数量
建GetNumber.java类
import java.sql.Statement; /**
* 查询状态为正常的列车数量
* @author 景苒
*/
public class GetNumber {
public void getNumber() throws SQLException {
Connection con = new DbConfig().dbConfig();
String sql = "select count(state) from `train_message` where state = '正常'";
Statement statement = con.createStatement();
try {
ResultSet resultSet = statement.executeQuery(sql);
while (resultSet.next()) {
System.out.println("状态为正常的列车数量为:" + resultSet.getInt(1));
}
}catch (SQLException e){
e.printStackTrace();
}finally {
statement.close();
con.close();
}
}
}
最后附上navicat的属性结构图和样例插入的语句


数据根据自己需求自行写入几个就行,以上就是java连接mysql数据库的实例代码,eclipse也大同小异,就导入jar包的方式不同。
java连接mysql8.0.28数据库实例的更多相关文章
- JAVA连接MYSQL8.0问题
title: java连接mysql8.0问题 date: 2018-07-08 19:27:38 updated: tags: description: keywords: comments: im ...
- Java连接MySQL8.0以上版本数据库方式
MySQL 8.0 开始数据库相比常用的 5.X 版本发生了比较大的变化,我们在连接数据库的过程中许多地方也要发生一些变化. 总结一下,想要利用 mysql-connector-java 与 MySQ ...
- MySQL8.0.28安装教程全程参考MySQL官方文档
前言 为了MySQL8.0.28安装教程我竟然在MySQL官方文档逛了一天,至此献给想入门MySQL8.0的初学者.以目前最新版本的MySQL8.0.28为示例进行安装与初步使用的详细讲解,面向初学者 ...
- Linux下以tar包的形式安装mysql8.0.28
Linux下以tar包的形式安装mysql8.0.28 1.首先卸载自带的Mysql-libs(如果之前安装过mysql,要全都卸载掉) rpm -qa | grep -i -E mysql\|mar ...
- jTDS Java连接SQL Server 2000数据库
Java连接SQL Server 2000数据库时,有两种方法: (1)通过Microsoft的JDBC驱动连接.此JDBC驱动共有三个文件,分别 是mssqlserver.jar.msutil.ja ...
- Java连接并操作SQLServer数据库
本人只需在项目中引入sqljdbc4.jar 包即可 ----------------------------------------- 在JAVA中如何连接SQL Server数据库 - hangh ...
- mysql学习(2)-Navicat Premium 12 链接MySQL8.0.11数据库报2059错误
Navicat Premium 12 链接MySQL8.0.11数据库报2059错误 1,问题现象 安装完MySQL8.0.11和Navicat Premium12后,我们会用Navicat去测试连接 ...
- 远程连接MYSQL8.0服务器问题
title: 远程连接MYSQL8.0服务器问题 date: 2018-07-07 11:02:26 updated: tags: [MYSQL,坑] description: keywords: c ...
- SQLyog连接MySQL8.0报2058错误的解决方案
引言 用SQLyog连接MySQL8.0(社区版:mysql-installer-community-8.0.15.0.msi),出现错误2058(Plugin caching_sha2_passwo ...
随机推荐
- VBS文件无限循环解决办法
VBS文件无限循环解决办法,也就相当于编程中的停止运行指令. 那么如何关掉VBS文件呢?当然关机后会自动关掉,还有另外一种方法就是,在"任务管理器"中找到进程"WScri ...
- Net6 Configuration & Options 源码分析 Part2 Options
Net6 Configuration & Options 源码分析 Part2 Options 第二部分主要记录Options 模型 OptionsConfigurationServiceCo ...
- 通过DP总线实现S7-300/400与SINAMICS S120 通讯
一.DP总线通讯功能概述 S7-300/400与SINAMICS S120 之间通过DP总线可进行周期性及非周期性数据通讯. 使用标准S7功能块SFC14/SFC15,S7-300/400PLC通过P ...
- C语言对Mysql函数操作
数据类型 MYSQL MYSQL结构代表一个数据库连接句柄,包含有关服务器的连接状态的信息,几乎所有函数都是用到它 typedef struct st_mysql { NET net; /* Comm ...
- Captcha生成验证码,docker部署时问题
https://blog.csdn.net/huofuman960209/article/details/100738712 Dockerfile FROM openjdk:8-jdk-alpine ...
- Java中的软引用、弱引用、虚引用的适用场景以及释放机制
Java的强引用,软引用,弱引用,虚引用及其使用场景 从 JDK1.2 版本开始,把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期.这四种级别由高到低依次为:强引用.软引用.弱引 ...
- JVM-learning
JVM是什么?? Java Virtual Mechine JRE(JavaRuntimeEnvironment,Java运行环境),也就是Java平台.所有的Java 程序都要在JRE下才能运行. ...
- (转载) MOS管区分NP沟道
三极管是流控型器件,MOS管是压控型器件,两者存在相似之处.三极管机可能经常用,但MOS管你用的可能较少.对于MOS管先抛出几个问题: 如何区分P-MOS和N-MOS: 如何区分MOS的G.D.S ...
- SpringAOP+RabbitMQ+WebSocket实战
背景 最近公司的客户要求,分配给员工的任务除了有微信通知外,还希望PC端的网页也能实时收到通知.管理员分配任务是在我们的系统A,而员工接受任务是在系统B.两个系统都是现在已投入使用的系统. 技术选型 ...
- 学习zabbix(二)
超大规模门户网站集群架构: 运维30%的时间都在监控,监控要多维度: 监控(单机监控(系统监控).网络监控.应用监控.分布式监控): 业务监控(业务指标-->流量分析-->舆论监控): 流 ...