教你用eclipse连接mysql数据库


Posted in MySQL onApril 22, 2021

前言

由于总是出错,记录一下连接MySQL数据库的过程。

连接过程

1.下载MySQL并安装,这里的版本是8.0.18

2.下载MySQL的jdbc,下载后解压,个人将其保存在MySQL目录下,方便查找

教你用eclipse连接mysql数据库
教你用eclipse连接mysql数据库
教你用eclipse连接mysql数据库

3.连接数据库

(1)eclipse中选择Window-preferences-java-Build Path-User Libraries

教你用eclipse连接mysql数据库

(2)点击右侧的new按钮,

教你用eclipse连接mysql数据库

(3)在这里输入jdbc,选中对勾,点击ok

教你用eclipse连接mysql数据库

(4)回到上一级界面,点击Add External JARs,打开到你的jdbc存放的目录,打开-ok。

教你用eclipse连接mysql数据库

(5)接下来是在项目中导入jar包,项目右键-Build Path-Configure Build Path

教你用eclipse连接mysql数据库

(6)点击右侧Add Library… -User Library-Next。打上对勾点击finish

教你用eclipse连接mysql数据库

(7)回到上一级界面就可以看到你添加的jdbc,点击Apply再点击ok。

教你用eclipse连接mysql数据库

(8)这样在你的项目下就可以看到你导入的jdbc了

教你用eclipse连接mysql数据库

4.在项目中Java resources下创建一个新的包linkMysql,里面新建一个类Demo

代码如下:

package linkMysql;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Demo {
    // 加载数据库驱动  com.mysql.jdbc.Driver
        private static String dbdriver = "com.mysql.cj.jdbc.Driver";  //因为MySQL是8.0版本,所以需要加上cj,如果是5.0版本就不用
        // 获取mysql连接地址
        private static String dburl = "jdbc:mysql://127.0.0.1:3306/cmxDatabaseName?&useSSL=false&serverTimezone=UTC";  
        		//这里的&serverTimezone=UTC很重要,之前就是因为这个出错
        // 数据名称
        private static String username = "root";
        // 数据库密码
        private static String userpassword = "123456";
        // 获取一个数据的连接
        public static Connection conn = null;
        // 获取连接的一个状态

		//下面是一个例子,其中database1是数据库名,后面是一条查询语句
        public static void main(String[] args) throws SQLException {
            List<List<Object>> x = getData("database1",
                    "select * from students");
            System.out.println(x);
        }

    /**
     * 获取数据库连接
     * 
     * @param myProjName
     * @return
     */
    private static Connection getConn(String myProjName) {
        Connection conn = null;
        try {
            Class.forName(dbdriver);            
            String myjdbcUrl = dburl.replace("cmxDatabaseName", myProjName);
            conn = DriverManager.getConnection(myjdbcUrl, username, userpassword);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }
    /**
     * 关闭数据库连接
     * 
     * @param rs
     * @param ps
     * @param conn
     */
    private static void closeAll(ResultSet rs, PreparedStatement ps,
            Connection conn) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (ps != null) {
            try {
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (conn == null)
            return;
        try {
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    /**
     * 查表,返回行的列表,每个列表中包含列的列表。
     * 
     * @param ProjName
     * @param sql
     * @return
     */
    public static List<List<Object>> getData(String ProjName, String sql) {
        Connection conn = getConn(ProjName);
        PreparedStatement ps = null;
        List<List<Object>> list = new ArrayList<List<Object>>();
        ResultSet rs = null;
        try {
            ps = conn.prepareStatement(sql);
            rs = ps.executeQuery();
            ResultSetMetaData md = rs.getMetaData();
            int columnCount = md.getColumnCount();
            while (rs.next()) {
                List<Object> lst = new ArrayList<Object>();
                for (int i = 1; i <= columnCount; ++i) {
                    lst.add(rs.getObject(i) == null ? "" : rs.getObject(i));
                }
                list.add(lst);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            closeAll(rs, ps, conn);
        }
        return list;
    }
}

5.将该类以Java application运行,就可以在控制台看见students表中的全部信息

教你用eclipse连接mysql数据库

到此这篇关于教你用eclipse连接mysql数据库的文章就介绍到这了,更多相关eclipse连接mysql数据库内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
mysql字符串截取函数小结
Apr 05 MySQL
为什么MySQL分页用limit会越来越慢
Jul 25 MySQL
MySQL去除重叠时间求时间差和的实现
Aug 23 MySQL
MyBatis 动态SQL全面详解
Oct 05 MySQL
MySQL表类型 存储引擎 的选择
Nov 11 MySQL
教你使用VS Code的MySQL扩展管理数据库的方法
Jan 22 MySQL
千万级用户系统SQL调优实战分享
Mar 03 MySQL
MySQL中一条update语句是如何执行的
Mar 16 MySQL
Mysql 8.x 创建用户以及授予权限的操作记录
Apr 18 MySQL
MySQL GTID复制的具体使用
May 20 MySQL
mysql查看表结构的三种方法总结
Jul 07 MySQL
MySQL生成千万测试数据以及遇到的问题
Aug 05 MySQL
MySQL 慢查询日志深入理解
MySQL root密码的重置方法
MySQL性能压力基准测试工具sysbench的使用简介
Apr 21 #MySQL
Mysql MVCC机制原理详解
详解MySQL 用户权限管理
mysql死锁和分库分表问题详解
Apr 16 #MySQL
MySQL命令行操作时的编码问题详解
You might like
分页详解 从此分页无忧(PHP+mysql)
2007/11/23 PHP
php 进度条实现代码
2009/03/10 PHP
PHP父类调用子类方法的代码例子
2014/04/09 PHP
laravel5.4生成验证码的实例讲解
2017/08/05 PHP
在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
2019/10/15 PHP
用jquery来定位
2007/02/20 Javascript
JQery jstree 大数据量问题解决方法
2010/03/09 Javascript
jQuery总体架构的理解分析
2011/03/07 Javascript
javascript标签在页面中的位置探讨
2013/04/11 Javascript
jquery子元素过滤选择器使用示例
2013/06/24 Javascript
jquery图片轮播插件仿支付宝2013版全屏图片幻灯片
2014/04/03 Javascript
jQuery响应鼠标事件并隐藏与显示input默认值
2014/08/24 Javascript
js编写贪吃蛇的小游戏
2020/08/24 Javascript
JavaScript动态添加css样式和script标签
2016/07/19 Javascript
AngularJS 输入验证详解及实例代码
2016/07/28 Javascript
深入理解javascript的getTime()方法
2017/02/16 Javascript
AngularJS之ionic 框架下实现 Localstorage本地存储
2017/04/22 Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
2017/12/13 Javascript
SVG实现时钟效果
2018/07/17 Javascript
vue 中基于html5 drag drap的拖放效果案例分析
2018/11/01 Javascript
vue2.0 实现富文本编辑器功能
2019/05/26 Javascript
小程序的上传文件接口的注意要点解析
2019/09/17 Javascript
[57:55]EG vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
bpython 功能强大的Python shell
2016/02/16 Python
python中多个装饰器的调用顺序详解
2019/07/16 Python
python进程的状态、创建及使用方法详解
2019/12/06 Python
Python日志处理模块logging用法解析
2020/05/19 Python
Python包资源下载路径报404解决方案
2020/11/05 Python
网络、C以及其他硬件方面的面试题
2016/08/23 面试题
幼儿园中秋节活动方案
2014/02/06 职场文书
十佳少年事迹材料
2014/12/25 职场文书
初二学生评语大全
2014/12/26 职场文书
初三数学教学反思
2016/02/17 职场文书
python本地文件服务器实例教程
2021/05/02 Python
vue项目打包后路由错误的解决方法
2022/04/13 Vue.js
使用Redis实现分布式锁的方法
2022/06/16 Redis