教你用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 相关文章推荐
虚拟机linux端mysql数据库无法远程访问的解决办法
May 26 MySQL
mysql外连接与内连接查询的不同之处
Jun 03 MySQL
解析MySQL binlog
Jun 11 MySQL
分析mysql中一条SQL查询语句是如何执行的
Jun 21 MySQL
为什么MySQL分页用limit会越来越慢
Jul 25 MySQL
SQL实现LeetCode(177.第N高薪水)
Aug 04 MySQL
MySQL 用 limit 为什么会影响性能
Sep 15 MySQL
一条慢SQL语句引发的改造之路
Mar 16 MySQL
Mysql分析设计表主键为何不用uuid
Mar 31 MySQL
Mysql排查分析慢sql之explain实战案例
Apr 19 MySQL
MySQL 执行数据库更新update操作的时候数据库卡死了
May 02 MySQL
MySQL数据库安装方法与图形化管理工具介绍
May 30 MySQL
MySQL 慢查询日志深入理解
MySQL root密码的重置方法
MySQL性能压力基准测试工具sysbench的使用简介
Apr 21 #MySQL
Mysql MVCC机制原理详解
详解MySQL 用户权限管理
mysql死锁和分库分表问题详解
Apr 16 #MySQL
MySQL命令行操作时的编码问题详解
You might like
php 动态执行带有参数的类方法
2009/04/10 PHP
为PHP5.4开启Zend OPCode缓存
2014/12/26 PHP
php静态文件生成类实例分析
2015/01/03 PHP
PHP定时任务获取微信access_token的方法
2016/10/10 PHP
PHP实现浏览器中直接输出图片的方法示例
2018/03/14 PHP
jquery触发a标签跳转事件示例代码
2013/07/21 Javascript
jquery datepicker参数介绍和示例
2014/04/15 Javascript
JavaScript计算某一天是星期几的方法
2015/08/05 Javascript
使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目
2016/02/15 Javascript
原生JS获取元素集合的子元素宽度实例
2016/12/14 Javascript
jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】
2017/03/23 jQuery
js编写选项卡效果
2017/05/23 Javascript
浅谈ajax在jquery中的请求和servlet中的响应
2018/01/22 jQuery
javascript实现遮罩层动态效果实例
2019/05/14 Javascript
在vue中配置不同的代理同时访问不同的后台操作
2020/09/11 Javascript
[02:38]DOTA2亚洲邀请赛小组赛精彩集锦:Wings完美团击溃对手
2017/03/29 DOTA
Python pickle模块用法实例
2015/04/14 Python
为什么入门大数据选择Python而不是Java?
2018/03/07 Python
Python查找两个有序列表中位数的方法【基于归并算法】
2018/04/20 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
2018/07/17 Python
Django基于客户端下载文件实现方法
2020/04/21 Python
Python猫眼电影最近上映的电影票房信息
2020/09/18 Python
Python 删除List元素的三种方法remove、pop、del
2020/11/16 Python
美国本地交易和折扣网站:LocalFlavor.com
2017/10/26 全球购物
类如何去实现接口
2013/12/19 面试题
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2014/01/19 面试题
linux面试题参考答案(9)
2016/01/29 面试题
分别介绍一下Session Bean和Entity Bean
2015/03/13 面试题
数控加工专业毕业生自荐信
2013/09/27 职场文书
项目投资意向书
2014/04/01 职场文书
学生会宣传部部长竞选演讲稿
2014/04/25 职场文书
推广活动策划方案
2014/08/23 职场文书
工作失职造成投诉的检讨书范文
2014/10/05 职场文书
公安机关查摆剖析材料
2014/10/10 职场文书
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
2021/04/05 Python
Linux中各个目录的作用与内容
2022/06/28 Servers