一.MySQL安装
1.下载MySQL
MySQL8.0 For Windows zip包下载地址:https://dev.mysql.com/downloads/file/?id=476233
2.安装
(1) 解压zip包到安装目录
(2)配置环境变量
(3) 配置初始化的my.ini文件
[mysqld]
#设置3306端口
port=3939
#设置mysql的安装目录
basedir=E:/mysql-5.7.20-winx64
#设置mysql数据库的数据的存放目录
datadir=E:/mysql-5.7.20-winx64/data
#允许最大连接数
max_connections=200
#允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
#服务端使用的字符集默认为UTF8
character-set-server=utf8
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8
[client]
#设置mysql客户端连接服务端时默认使用的端口
port=3939
default-character-set=utf8
注意:其中的data目录不需要创建,下一步初始化工作中会自动创建。
3、安装mysql
下面进行命令行配置
1.以win10系统为例,右键点你的开始菜单,点击windows powershell(管理员)或者命令提示符(管理员),总之不管是那种,必须要带管理员权限的!!!
2.进入mysql的路径, D:\mysql-5.7.24-winx64\bin
3.依次执行如下命令
(1)初始化mysql,此操作会生成data文件夹,data文件夹配置路径在my.ini文件中mysqld --initialize --user=mysql –console
(2)初始化后,出现如下图字样,需要复制红框内的密码,这个密码是mysql的初始密码,之后改密码需要这个.
(3)执行安装mysql服务命令:mysql -install “mysql3309” 其中mysql3309为你自己命名的mysql服务名,可自定义.执行后会出现如下图所示提示.
(4)执行启动mysql服务命令:net start mysql3309 其中mysql3309为你刚刚安装的mysql服务名称,执行后会出现如下图所示提示.
(5)执行登录mysql命令:mysql -u root -p 执行后会让你输入密码,这时输入刚才复制的乱码密码,注意不要复制两边的空格. 执行后会出现如下图所示提示.
(6)执行修改root用户密码命令:ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’; 其中123456为你要修改的mysql密码,可自定义. 执行后会出现如下图所示提示.
(7)执行退出mysql命令:exit;
下面说一下卸载mysql.
1.进入mysql的安装目录下的bin文件夹,按序执行如下命令即可.
2.执行停止mysql服务命令:net stop mysql3309 其中mysql3309为你安装的mysql服务名。
3.执行卸载mysql服务命令:mysqld -remove “mysql3309” 其中mysql3309为你安装的mysql服务名。
二.下载软件SQLyog
下载链接地址:http://www.xue51.com/soft/2982.html
代码如下:
import java.sql.*;
public class DBUtil {
static final String DB_URL = “jdbc:mysql://127.0.0.1:3939/mydb?useSSL=true&serverTimezone=GMT”;
static final String USER = “root”;
static final String PASS = “123456”;
static Connection conn = null;
static Statement stat = null;
static ResultSet rs = null;
static PreparedStatement psql=null;
static{
try {
Class.forName(“com.mysql.jdbc.Driver”);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static int execSql(String sql,Object... params) throws Exception{
int sum=0;
conn = (Connection) DriverManager.getConnection(DB_URL,USER,PASS);
PreparedStatement psql = conn.prepareStatement(sql);
for (int i=1;i<=params.length;i++){
if(params[i-1] instanceof String){
psql.setString(i,params[i-1].toString());
}else if(params[i-1] instanceof Double){
psql.setDouble(i,Double.parseDouble(params[i-1].toString()));
}else if(params[i-1] instanceof Integer){
psql.setInt(i,Integer.parseInt(params[i-1].toString()));
}else{
psql.setString(i,params[i-1].toString());
}
}
sum=psql.executeUpdate();
psql.close();
if (conn != null) {
conn.close();//关闭连接
}
return sum;
}
public static ResultSet selectSql(String sql) throws Exception{
int sum=0;
// 创建链接
conn = (Connection) DriverManager.getConnection(DB_URL,USER,PASS);
// 执行查询
stat = conn.createStatement();
rs = stat.executeQuery(sql);
return rs;
}
public static void close(){
/*
================关闭数据库连接代码开始===============
*/
try {
if (rs != null) {
rs.close();//关闭数据流
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (stat != null) {
stat.close();//关闭查询占用
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (conn != null) {
conn.close();//关闭连接
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/*
================关闭数据库连接代码结束===============
*/
}
}
下面是我做的实际操作的代码(用户登陆系统)
import com.alibaba.mysql.util.DBUtil;
import com.alibaba.mysql.util.MD5;
import java.sql.*;
import java.util.*;
public class PracTest {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Connection con = null;
for (; ; ) {
System.out.println(“用户界面”);
System.out.println(“1.用户登陆”);
System.out.println(“2.用户注册”);
System.out.println(“3.修改基础资料(用户名,密码,真实姓名等)”);
for (; ; ) {
System.out.println(“选择需要进行的功能”);
String direname = in.next();
if (direname.equals(“1”)) {
System.out.println(“用户登录 (请输入用户名和密码)”);
String name = in.next();
String Pwd = in.next();
try {
ResultSet rs1 = DBUtil.selectSql(“select * from tbuser where loginname=” + “’” + name + “’”);
while (rs1.next()) {
if (rs1.getString(“loginname”).equals(name)) {
System.out.println(“登陆成功!”);
System.out.println(“输入任意键退出”);
} else {
System.out.println(“用户名不存在!”);
System.out.println(“如需登陆请先进入主菜单注册,输入任意值退出”);
}
}
} catch (Exception e) {
e.printStackTrace();
}
String any = in.next();
if (any != null) {
break;
}
} else if (direname.equals(“2”)) {
for (; ; ) {
System.out.println(“用户注册:”);
System.out.print(“请输入用户名和密码:”);
String loginName1 = in.next();
String loginPwd1 = in.next();
try {
PreparedStatement pre = con.prepareStatement(“insert into tbuser(loginName,loginPwd)” + “values(?,?)”);
pre.setString(1, loginName1);
pre.setString(2, loginPwd1);
int sum = pre.executeUpdate();
if (sum > 0) {
System.out.println(“输入成功!”);
}
else {
break;
}
System.out.println(“是否注册?(注册输入yes,不注册输入no)”);
String order = in.next();
if(order.equals(“yes”)){
continue;
}
else if(order.equals(“no”)){
break;
}
ResultSet rs1 = DBUtil.selectSql(“select loginname,loginPwd from tbuser where loginname=” + “’” + loginName1 + “’”);
ResultSet rs2 = DBUtil.selectSql(“select count(1)from tbuser where loginName =” + “’” + loginName1 + “’”);
while (rs2.next()) {
if (rs2.getInt(“count(1)”) == 1) {
System.out.println(“可以注册!”);
} else {
System.out.println(“用户名已存在,不可以注册!”);
ResultSet rs3 = DBUtil.selectSql(“DELETE FROM tbuser WHERE loginname=” + “’” + loginName1 + “’”);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
else if(direname.equals(“3”)){
System.out.println(“修改基础资料…就比较狠,啥都能改”);
for (;; ) {
System.out.println(“1.修改用户名”);
System.out.println(“2.修改密码”);
System.out.println(“3.修改真实姓名”);
String name = in.next();
if (name.equals(“1”)) {
try {
int sum = DBUtil.execSql(“update tbuser set loginname=? where loginname =’’”, “’” + name + “’”);
System.out.println(sum);
if (sum > 0) {
System.out.println(“修改成功!”);
}
} catch (Exception e) {
e.printStackTrace();
}
}
else if(name.equals("2")){
}
else if(name.equals("3")){
}
else{
break;
}
}
}
else{
break;
}
}
}
}