1.前期准备

1.1软件需求

mysql8.0

Connector/J 8.0.31

workbench(懒得放链接自行百度吧)

一定不要下5.5或更低版本的,我折磨了宝贵的一上午,低版本bug很多,电脑win10 32位的只能cmd链接,放在workbench等等无法链接。

另外,我的链接是msi版本,如果用zip的话还要自己配置ini文本,容易出问题,具体不再阐述,总之这个博文是一个花了一天时间在黑暗中摸索出来的。

2.指令/快捷键

2.1cmd

mysql -u root -p cmd下用root用户进入mysql

首次使用该指令要配置path变量

在此电脑->管理->高级设置->配置变量

然后在path里加入你安装的mysql的bin文件目录

就可以在cmd中进入mysql了

2.2mysql

注意一一对应关系

database->table

先打开database,再打开table,table才是表

create database 数据库名 创建一个数据库

drop database 数据库名删除该数据库

show databases展示所有的数据库,有三个不能删除

use 数据库名打开数据库

desc 表名;展示表内的数据

select database()# 查看当前打开的数据库

id int not null primary key auto_increment,//id是跟着录入数据而自增的
stuno varchar(20) not null,
name varchar(20) not null,
gender varchar(1) not null,
age int,
birthdate date,
major varchar(20));//use进入数据库后在该表下创建student表

insert into students(stuno,name,gender,birthdate,major,age) values('201010001', 'zhangsan', 'm', '1992-10-01','cs',25);插入数据

注意每段代码后面都要带引号。

3.Connector导入

3.1netbeans的导入



点击services右键databases



点击这个

点击add,导入你下载的Connector jar包。

选择导入的数据,还有root和密码等等,就导入完成了。如果出错可能是url出错了。

3.2eclipse导入

右键点击项目,新建lib目录(Folder),将对应jar拷贝进该目录。注意:是右键点击"项目",而不是点击"src"。

右键点击项目->Properties->Build Path->Configure Build Path->选择"Libraries"->点击"Add JARs"将刚才的jar文件添加进来。

注意:Java 11下需在module-info.java中添加requires java.sql;

4.数据类型转换

MySQL数据类型与Java数据类型的转换

MySQL中的varchar、char对应Java的String

date类型对应java.sql.Date

5.URL

在一个java程序中,如果需要关联到数据库,则需要一个URL

5.1URL格式

格式如下

jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&useSSL=true

3306是端口号

test是数据库(database)的名称

useUnicode=truetrue表示使用unicode编码

zeroDateTimeBehavior=convertToNull&useSSL=true这是关于一个时间戳的内容,先留个白,如果有错误,请尝试替换这一段为serverTimezone=Asia/Chongqing

-在JDBC连接串中有一项属性:zeroDateTimeBehavior,可以用来配置出现这种情况时的处理策略,该属性有下列三个属性值:

l exception:默认值,即抛出SQL state [S1009]. Cannot convert value....的异常;

l convertToNull:将日期转换成NULL值;

l round:替换成最近的日期即0001-01-01;

因此对于这类异常,可以考虑通过修改连接串,附加zeroDateTimeBehavior=convertToNull属性的方式予以规避,例如:

jdbc:mysql://localhost:3306/mydbname?zeroDateTimeBehavior=convertToNull

   从另一个层面讲,这类异常的触发也与timestamp赋值的操作有关,如果能够在设计阶段和记录写入阶段做好逻辑判断,避免写入 '0000-00-00 00:00:00'这类值,那么也可以避免出现 Cannot convert value '0000-00-00 00:00:00' from column N to TIMESTAMP的错 误。

useSSL=true:使用JDBC跟你的数据库连接的时候,你的JDBC版本与MySQL版本不兼容,MySQL的版本更高一些,在连接语句后加上“useSSL=‘true’” ,就可以连接到数据库了。

引用

6 Java.sql包

MySQL学习日志(建设中)的更多相关文章

  1. U-Learning 后端开发日志(建设中...)

    目录 U-Learning--基于泛在学习的教学系统 项目背景 技术栈 框架 中间件 插件 里程碑 CentOS 7搭建JAVA开发环境 接口参数校验(不使用hibernate-validator,规 ...

  2. MySQL学习笔记(六)MySQL8.0 配置笔记

    今天把数据库配置文件修改了,结果重启不了了 需要使用 mysqld --initialize 或 mysqld --initialize-insecure 命令来初始化数据库 1.mysqld --i ...

  3. MySQL学习笔记(一)Ubuntu16.04中MySQL安装配置(5.6优化、错误日志、DNS解决)

    目录 第一部分.5.6安装.配置.自动备份 第二部分.5.7源码安装.配置.自动备份 第一部分.5.6安装 1.安装mysql sudo apt-get install mysql-server su ...

  4. 我的MYSQL学习心得(十五) 日志

    我的MYSQL学习心得(十五) 日志 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...

  5. 别人的的MYSQL学习心得(十五) 日志

    我的MYSQL学习心得(十五) 日志 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...

  6. 我的MYSQL学习心得 mysql日志

    这一篇<我的MYSQL学习心得(十五)>将会讲解MYSQL的日志 MYSQL里的日志主要分为4类,使用这些日志文件,可以查看MYSQL内部发生的事情. 分别是 1.错误日志:记录mysql ...

  7. MySQl Study学习之--MySQl二进制日志管理

    MySQl Study学习之--MySQl二进制日志管理 MySQL二进制日志(Binary Log)   a.它包括的内容及作用例如以下:     包括了全部更新了数据或者已经潜在更新了数据(比方没 ...

  8. 学习了解PHP中的SeasLog日志扩展

    今天来学习的扩展是和日志相关的一个扩展,对于 PHP 的日志应用来说,除了本身自带的 error_log() . syslog() 之外,在大多数的框架中还会经常见到 monolog 的踪影.当然,我 ...

  9. MySQL学习笔记十:日志管理

    1.错误日志文件 MySQL的错误日志文件记录错误信息,还会记录mysqld进程的关闭和启动的信息,但也不是什么错误信息都会记录,只记录mysqld进程运行过程中发生的关键性错误. 错误日志的启动,可 ...

  10. MYSQL学习笔记3--mysql 2PC二阶段协义 与 日志闪回

    mysql两份日志: binlog :server innodb redo log:engine 两份日志顺序一致性:否则主备不一致 两份日志:原子性,同时都有,同时都无 2PC二阶段协义: 第一阶段 ...

随机推荐

  1. OpenLayers地图标注及弹窗实现

    1. 引言 地图标注是在地图中进行文字或图标的标注,从而显示对应的信息 本文基于OpenLayers实现地图上图文的标注与弹窗显示 OpenLayers官网:OpenLayers - Welcome ...

  2. Postgresql如何防止数据库雪崩

    一.背景 在数据库的使用过程中,一些微妙的操作,在特殊的场景中就可能导致雪崩效应. 1. 当数据库中存在未提交事务,并且未提交事务已经持有了某个表的哪怕是最小的锁时,如果此时对这个对象发起DDL操作, ...

  3. centos7 开机自启动脚本

    两种实现方式 方法1:(rc.local) 1.因为在centos中/etc/rc.d/rc.local的权限被降低了,所以需要赋予其可执行权 chmod +x /etc/rc.d/rc.local ...

  4. Qt中的多窗体编程(续一)

    在前面一节中,已经把所有需要的窗体都创建好了,下面将依次实现预设的功能. 一.实现点击菜单打开模式子窗体的功能. 1.在编辑模式下双击Forms下的"mainWindow.ui", ...

  5. 项目管理 VS. 个人计划

    注会考试临近,好好的安排一下自己的时间.做个小计划是很有必要的了. 突然想到一个软件也许可以帮到我的忙,那就微软提供的办公软件 Project,大学时候就知道Project软件的存在,但是始终没有机会 ...

  6. Java--判空方法

    方法有StringUtils.isBlank() , StringUtils.isNotBlank() , StringUtils.isEmpty(); 使用关系 StringUtils.isNotE ...

  7. 堆相关题目-python

    栈&队列&哈希表&堆-python  https://blog.csdn.net/qq_19446965/article/details/102982047 1.丑数 II 编 ...

  8. js 判断条件分支优化

    优化前: 1.简单分支优化: 2.复杂分支优化: 3.抽离分支:

  9. C++ STL中的二分法

    二分法介绍 狭义的二分法是一种在有序的数组中查找是否存在某个值的算法.广义的二分法不一定需要显式的数组,只需要有序的解空间即可.(此处解空间借用线性代数的称谓,仅表示所有合法解的集合,与线性代数无关) ...

  10. Windows10使用VMware安装centos

    系统环境: Windows 10 安装步骤: 1.下载centos http://mirrors.aliyun.com/centos/ 2.使用VMware安装centos 3.配置网络 $ cd / ...