MySQl&&Naicat连接及JDBC
一.MySQl下载
官网链接:https://dev.mysql.com/downloads/
以windows为例:进入选择第一个版本下载就可.
之后跳转到一个新界面,点击
No thanks, just start my download.
下载完成后
将他解压到你能找到的地方.
二.初始化配置
1.创建my.ini文件
注意:检查后缀名是否显示,是否真的为ini类型
用记事本打开写入:
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=C:\mysql-8.0.23-winx64
# 设置mysql数据库的数据的存放目录
datadir=C:\mysql-8.0.23-winx64\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
注意:
该两项的路径要和你放置的实际路径相同!
2.初始化MySQL
使用管理员身份运行CMD,否则权限不够可能导致安装报错.
打开后进入mysql的bin目录
之后执行以下命令:
mysqld --initialize --console
注意:一定要记住这个随机密码,先将它复制到文本里保存
之后执行下列语句:
mysqld --install
成功安装mysql服务.
如果为:
就执行sc delete mysql
如果出现其他情况,可能还有cmd没有用管理员身份运行.
接着执行下列语句:
net start mysql
部署启动完成.
接下来如果使用cmd命令行运行mysql的话,需要配置环境变量,方便我们调用.在此不在赘述.
二.连接Navicat
官方链接:https://www.navicat.com.cn/download/navicat-premium
该软件为付费软件.小伙伴们各显神通吧…
名字随便取,密码为之前保存的随机密码.
用户名默认为:root
改密码:
还是进入musql的bin目录用管理员身份打开cmd
执行下列语句:
mysql -u root -p
输入之前保存的随机密码,回车
执行下列语句:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
之后执行:
exit;
三.JDBC(Java DataBase Connectivity)
1.创建表格
一定注意字符集选择!!!
之后点击新建表:
我创建了三个名称
之后
打开表就是这个样子:
JDBC连接
首先下载JDBC加载驱动:
官方链接https://dev.mysql.com/downloads/
驱动下载教程:https://blog.csdn.net/HDZ1821/article/details/104373946
下载完毕之后,以idea为例:
搜索驱动压缩包的位置,添加完成后点击apply.
之后我们就可以进行数据库加载入类:
Driver接口
Class.forName("com.mysql.cj.jdbc.Driver");//sun公司提供的加载mysql数据库接口
Class.forName("oracle.jdbc.driver.OracleDriver");//加载Oracle数据库接口
mysql驱动5.0版本之后com.mysql.jdbc.Driver改为com.mysql.cj.jdbc.Driver
使用了Mysql最新版驱动所以报错
新版驱动名字为 driverClass=“com.mysql.cj.jdbc.Driver”
接着创建对象连接mysql数据库
-MySQL数据库
Connection con = DriverManager.getConnection("jdbc:mysql://host:port/database","user","password");
-ORACLE数据库
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@host:port:databse","user","password");
以mysql-Navicat为例:
其中host为本机地址,默认是localhost
port 端口默认3306
database 为数据库名称.
user为用户名,默认root
password为数据库密码.
例如:
import java.sql.*;
public class Main {
public static void main(String[] args) throws SQLException, ClassNotFoundException {
Class.forName("com.mysql.cj.jdbc.Driver");//加载JDBC驱动
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbctest?serverTimezone=UTC","root","123456");
String sql = "insert into yuanjie (name,number,time) values (?,?,?)";//占位符防止sql注入
PreparedStatement ps = con.prepareStatement(sql);
ps.setObject(1,"陈晨");
ps.setObject(2,"1008611");
ps.setDate(3,new java.sql.Date(System.currentTimeMillis()));
ps.execute();
}
}
注意:
原因是:
本人用最新版本的mysql数据库
DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbctest","root","123456");
必须在数据库名称后面加上?serverTimezone=UTC
DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbctest?serverTimezone=UTC","root","123456");
运行上面的例子:
成功!
关于jdbc在新版中出现更多的错误解析:
jdbc在8.0+版本后出现的报错问题