MySQL学习日志(建设中)

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的导入

image
点击services右键databases
image
点击这个
点击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包

posted @ 2022-12-09 18:09  魔法少女小胖  阅读(49)  评论(0编辑  收藏  举报