Java 连接 MySQL

Posted tuww

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 连接 MySQL相关的知识,希望对你有一定的参考价值。

使用环境

  • jdk 1.8
  • mysql 8.0
  • idea 2019

具体过程

1、自定义安装mysql时,需要勾选Connector/J。

然后可以在安装目录C:\\Program Files (x86)\\MySQL\\Connector J 8.0 下找到

mysql-connector-java-8.0.15.jar jar包,即为java连接mysql的驱动程序。

2、将驱动程序复制到jre的lib目录下。

即,将mysql-connector-java-8.0.15.jar 复制到

C:\\Program Files\\Java\\jdk1.8.0_211\\jre\\lib

3、利用idea新建一个普通空java项目

然后File —> Project Structure,或Ctrl+Alt+Shift+S 打开如下图所示窗口:
技术图片

4、在数据库中新建数据表

/*
Navicat MySQL Data Transfer

Source Server         : @localmysql
Source Server Version : 80015
Source Host           : localhost:3306
Source Database       : javademo

Target Server Type    : MYSQL
Target Server Version : 80015
File Encoding         : 65001

Date: 2019-05-28 16:25:05
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `id` int(255) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `age` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES ('1', '张三', '165');
INSERT INTO `student` VALUES ('2', '历史', '45');
INSERT INTO `student` VALUES ('3', '浮点', '32');
INSERT INTO `student` VALUES ('4', '法法', '54');

5、编写连接数据库的java代码

package com.tuweiwei;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class demo01 {
    public static void main(String[] args) {

        // Connection 是java.sql包下的类,表示数据库连接
        Connection conn;
        // 驱动程序名
        String driver = "com.mysql.cj.jdbc.Driver";
        // 指定要连接的数据库,这里我的数据库名为 javademo
        String jdbcUrl = "jdbc:mysql://localhost:3306/javademo?serverTimezone=UTC";
        // 数据库用户名
        String userName = "root";
        // 数据库密码
        String userPwd = "111111";

        try {
            // 加载驱动程序
            Class.forName(driver);
            // 连接数据库
            conn = DriverManager.getConnection(jdbcUrl, userName, userPwd);
            if (!conn.isClosed()) {
                System.out.println("Succeeded connecting to the Database!");
            }
            // java.sql包的Statement类,表示数据库的语句
            Statement statement = conn.createStatement();
            // 真实的SQL代码
            String sql = "select * from t_test_user";
            // java.sql包的ResultSet类,表示数据库的查询结果集
            ResultSet rs = statement.executeQuery(sql);
            String name = null;
            String age = null;
            while (rs.next()) {
                name = rs.getString("name");
                age = rs.getString("age");
                System.out.println(name+"\\t"+age);
            }
            rs.close();
            conn.close();
        }
        catch (Exception e){
            System.out.println(e);
        }
    }
}

遇到的问题

1、驱动包是 com.mysql.jdbc.Driver 而安装了 mysql 8.0过后要改成 com.mysql.cj.jdbc.Driver

2、java.sql.SQLException: The server time zone value ‘?D1ú±ê×?ê±??‘ is unrecognized or represents more than one time

提示系统时区出现错误,可以在mysql中执行命令:
set global time_zone=‘+8:00‘
或者在数据库驱动的url后加上serverTimezone=UTC参数

以上是关于Java 连接 MySQL的主要内容,如果未能解决你的问题,请参考以下文章

从mysql的片段中加载ListView

java 连接mysql数据库怎么连接

java是怎么连接mysql数据库的

Java连接MySQL数据库——代码

java 连接mysql 和sql server2008代码

使用 JDBC 将 Java 代码与远程 MySQL 数据库连接 [重复]