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的导入
点击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=true
true表示使用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’” ,就可以连接到数据库了。
引用