Java、JDBC、MySQL数据库相关操作

本文介绍了如何部署MySQL,包括下载、配置、初始化数据库及登录。接着讲解了使用JDBC(JavaDatabaseConnectivity)进行数据库操作,包括创建和删除数据库、通过Statement和PreparedStatement进行数据的插入和查询。此外,还展示了如何在IDEA中操作MySQL数据库以及编写数据库连接类GetConnection.java。
摘要由CSDN通过智能技术生成

JavaWeb学习记录🏃‍♂️🏃‍♂️🏃‍♂️🏃‍♂️🏃‍♂️✍✍✍✍✍👋👋👋👋👋

一、MySQL部署与学习

https://downloads.mysql.com/archives/

1、MySQL下载(压缩包形式)

https://downloads.mysql.com/archives/community/
在这里插入图片描述

2、 MySQL配置文件

MySQL配置文件,打开解压的文件夹D:\MySQL\mysql-5.7.24-winx64 ,在该文件夹下创建 my.ini 配置文件,编辑 my.ini 配置以下基本信息:

[client]
# 设置mysql客户端默认字符集
default-character-set=utf8
 
[mysqld]
# skip-grant-tables
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=D:\MySQL\mysql-5.7.24-winx64
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
# datadir=C:\\web\\sqldata
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

在这里插入图片描述

3、初始化数据库

以管理员身份打开 cmd 命令行工具,切换到bin目录;初始化数据库:
mysqld --initialize --console
输入以下安装命令:
mysqld install
启动输入以下命令即可:
net start mysql

4、登录MySQL

(如不记得密码可以再配置文件中通过越过权限进入后修改密码)
mysql -u root -p
在这里插入图片描述

5、MySQL相关管理与操作

查看MySQL服务器主机上的所有数据库:(不区分大小写)
show databases
在这里插入图片描述

查看某个数据库(mysql为例)中的所有表:
use mysql
show tables
在这里插入图片描述
其他MySQL查询操作命令可参考官网或https://www.runoob.com/mysql/mysql-tutorial.html

6、创建和删除数据库

在登陆 MySQL 服务后,使用 create 命令创建数据库:
CREATE DATABASE 数据库名
删除数据库:
drop DATABASE 数据库名

二、JDBC——“MySQL Connector/J”操作熟悉

JDBC代表Java数据库连接(Java Database Connectivity),它是用于Java编程语言和数据库之间的数据库无关连接的标准Java API。
1、 在MySQL的官网下载支持程序“MySQL Connector/J”(MySQL官方的JDBC驱动程序)
https://downloads.mysql.com/archives/c-j/在这里插入图片描述

2、 将下载的压缩包进行解压,在生成的文件中会有一个名为mysql-connector-java-8.0.28.jar的文件,将其复制粘贴到需要与MySQL连接的项目中的(新建的)lib文件夹下,并添加驱动程序路径:
在这里插入图片描述

3、 连接MySQL数据库,利用JDBC通过Java语言进行数据库相关操作:

JDBC快速入门步骤:

0.创建工程,导入驱动jar包
mysql-connector-java-5.1.48.jar
1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
2.获取连接
Connection conn = DriverManager.getConnection(url, username, password);
3.定义SQL语句
String sql = "“update...”";
4.获取执行SQL对象
Statement stmt = conn.createStatement();
5.执行SQL
stmt.executeUpdate(sql);
6.处理返回结果
7.释放资源

示例:

创建数据库表(Statement)

在之前创建的 myDB1030 数据库中创建数据库表:

public class JDBCdemo {
    public static void main(String[] args) throws Exception {
        // 1.注册驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
        // 2.获取连接
        String url = "jdbc:mysql://localhost:3306/myDB1030";
        String username = "root";
        String password = "123";
        Connection conn = DriverManager.getConnection(url, username, password);

        // 3.定义SQL
        // --创建数据表
        String sql ="CREATE TABLE mytable1(" +
                "my_id INT NOT NULL AUTO_INCREMENT," +
                "my_name VARCHAR(100) NOT NULL," +
                "my_password VARCHAR(40) NOT NULL," +
                "submission_date DATE," +
                "PRIMARY KEY ( my_id ))ENGINE=InnoDB DEFAULT CHARSET=utf8;"; //ENGINE 设置存储引擎,CHARSET 设置编码。
         // 4.获取执行SQL的对象
        Statement stmt = conn.createStatement();
        // 5.执行SQL
        boolean ct = stmt.execute(sql);  //执行任何SQL语句,执行的语句有查询结果返回true
//        int count = stmt.executeUpdate(sql);  //执行更新语句,返回值为受影响的行数
//        ResultSet rs = stmt.executeQuery(sql);  //执行查询语句,返回查询结果对象

        // 6.处理结果
        System.out.println(ct);
        System.out.println(conn);
        // 7.释放资源
        stmt.close();
       }
}

查看创建结果:在这里插入图片描述

向数据库表插入数据(PreparedStatement对象操作):
		// --插入数据
        String sql = "INSERT INTO mytable1(my_name,my_password,submission_date,email)"
                + "VALUES(?,?,?,?)";
        // 1.创建执行SQL语句的PreparedStatement对象
        PreparedStatement  preStmt = null;
        preStmt = conn.prepareStatement(sql);
        // 2.为SQL语句中的参数赋值
        preStmt.setString(1, "aaa");
        preStmt.setString(2, "123456a");

        long millis=System.currentTimeMillis();
        java.sql.Date date=new java.sql.Date(millis);
        preStmt.setDate(3, date);

        preStmt.setString(4, "111@qq.com");
        preStmt.executeUpdate();

在这里插入图片描述

查询数据库表结果集(ResultSet对象操作):
			Class.forName("com.mysql.cj.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/myDB1030";
            String username = "root";
            String password = "123";
            //1.获取Connection对象
            conn = DriverManager.getConnection(url, username, password);
            String sql = "select * from mytable1";
            //2.创建Statement对象并设置常量
            stmt =conn.createStatement(
                    ResultSet.TYPE_SCROLL_INSENSITIVE,
                    ResultSet.CONCUR_READ_ONLY);
            //3.执行SQL并将获取的数据信息存放在ResultSet中
            ResultSet rs = stmt.executeQuery(sql);
            //4.取出ResultSet中指定数据的信息
            System.out.print("第2条数据的name值为:");
            rs.absolute(2);        //将指针定位到结果集中第2行数据
            System.out.println(rs.getString("my_name"));
            System.out.print("第1条数据的name值为:");
            rs.beforeFirst();      //将指针定位到结果集中第1行数据之前
            rs.next();              //将指针向后滚动
            System.out.println(rs.getString("my_name"));
            System.out.print("第3条数据的name值为:");
            rs.afterLast();        //将指针定位到结果集中最后一条数据之后
            rs.previous();         //将指针向前滚动
            System.out.println(rs.getString("my_name"));

在这里插入图片描述

用IDEA打开MySQL数据库表

https://blog.csdn.net/xiaocui1995/article/details/124227968
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

IDEA新建一个javaweb项目


编写一个数据库连接类GetConnection.java

package com.example.WebGIS_1.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class GetConnection {
    Connection conn = null;
    public Connection getConnection() throws ClassNotFoundException {
        String driver="com.mysql.cj.jdbc.Driver";                //驱动路径
        String url = "jdbc:mysql://localhost:3306/数据库名";
        String user = "root";  //用户名
        String password = "123";   //密码
        Class.forName(driver);
        try {
            conn = DriverManager.getConnection(url,user,password);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        //返回Connection对象
        return conn;
    }
}

(写作servlet中用于用户名验证)执行查询语句核心代码:

		Connection conn = null;
        Statement st = null;
        ResultSet rs = null;
        PreparedStatement ptst = null;
        //sql语句
        String selectUsername = "select userName from users";
        try {
            //获取与数据库的链接
            conn = new GetConnection().getConnection();
            //遍历users表,将数据库中所有username存入集合中
            st = conn.createStatement();
            rs = st.executeQuery(selectUsername);
            List<String> usernameList = new ArrayList<String>();
            while (rs.next()) {
                usernameList.add(rs.getString(1));
            }
            //关闭连接
            if (rs != null) {
                rs.close();
            }
            if (st != null) {
                st.close();
            }
            //判断集合中是否存在所要登录的username
            if (usernameList.contains(username)||username=="") {
                out.print("1");
            } else {
                out.print("2");
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            //关闭链接
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值