用idea连接mysql数据库

一.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
在这里插入图片描述
在这里插入图片描述

数据库操作界面:
在这里插入图片描述

三.用idea连接数据库
先建立一个包,把代码放入
我是使用idea操作

代码如下:

import java.sql.*;

扫描二维码关注公众号,回复: 5415247 查看本文章

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;
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_42547934/article/details/86631427