IDEA使用JDBC连接MySQL数据库详细教程

2023-11-15

创建项目

首先需要保证你已经成功安装mysql和下载连接MySQL数据库的驱动

  • 在IDEA里面创建一个java项目,选择创建Java项目,JDK这里选择1.8,直接Next

请添加图片描述

  • 勾选按模板创建,Next

请添加图片描述

  • 输入项目名称和项目地址,Finish

请添加图片描述

  • 项目创建完成的界面如下

请添加图片描述

导入驱动

  • 在项目中建一个名为lib(名称建议就用lib)的文件夹
    在这里插入图片描述

  • 对之前下载来的zip文件进行解压(mysql-connector-java-5.1.12.jar ),并进入解压出来的文件夹

  • 复制其中的mysql-connector-java-5.1.12.jar文件,在lib文件夹上右键,粘贴到IDEA中,刚刚新建的lib文件夹里
    在这里插入图片描述

让导入的驱动生效

  • 在IDEA中点击 File——Project Structure

在这里插入图片描述

  • 其中的 Module 模块,Dependencies 选项卡请添加图片描述
  • 点击最右边的加号(+),选择 JARS or directories
  • 在弹出的窗口中选择刚刚导入 lib 文件夹的驱动,点击Ok
  • 可以看到Module模块中,多出了一个mysql驱动,最后点击Apply,然后Ok
    请添加图片描述

注册数据库驱动,连接数据库

  • 首先在mysql中创建数据库,我创建的数据库名为couerseadmin,同时插入数据表
  • 在src下新建一个LinkDatabseInsert类
import java.sql.Connection;
import java.sql.DriverManager;

public class LinkDatabase {
    public static Connection getConn() {
        // TODO Auto-generated method stub
        String driverName="com.mysql.jdbc.Driver";
        //String driverName="org.git.mm.mysql.Driver";
        String dbURL="jdbc:mysql://localhost:3306/courseadmin";
        String userName="root";
        String userPwd="123456";
        Connection conn=null;
        try {
            Class.forName(driverName);
            conn= DriverManager.getConnection(dbURL,userName,userPwd);
            System.out.println("数据库连接成功");
        }catch(Exception e) {
            System.out.println("数据库连接失败");
        }
        return conn;
    }
}
  • 在src下新建一个DatabseInsertOperation类
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class DatabaseOperation {
    public static List<Course> findCouInfo(){
        List<Course> courses=new ArrayList<Course>();
        Connection conn=LinkDatabase.getConn();
        if(conn==null){
            return null;
        }
        String sql = "select * from course ";
        try {
            PreparedStatement pst=conn.prepareStatement(sql);
            ResultSet results=pst.executeQuery();
            while(results.next()){
                int no=results.getInt("no");
                String name=results.getString("name");
                double score=results.getDouble("score");
                Course c=new Course(no,name,score);
                courses.add(c);
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return courses;
    }

}

Course类

public class Course {
    private int no;
    private String name;
    private double score;
    public Course(int no,String name,double score) {
        this.no=no;
        this.name=name;
        this.score=score;
    }
    public Course(String name,double score) {
        this.name=name;
        this.score=score;
    }
    public int getNo() {
        return no;
    }
    public void setNo(int no) {
        this.no = no;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public double getScore() {
        return score;
    }
    public void setScore(double score) {
        this.score = score;
    }

    @Override
    public String toString() {
        return "Course{" +
                "no=" + no +
                ", name='" + name + '\'' +
                ", score=" + score +
                '}';
    }
}

main方法

import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Course> courses=new ArrayList<Course>();
        courses=DatabaseOperation.findCouInfo();
        for(Course c:courses){
            System.out.println(c);
        }
    }
}

结果:
请添加图片描述
说明jdbc运行成功

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IDEA使用JDBC连接MySQL数据库详细教程 的相关文章

  • 如何确定c3p0 max_statements

    我想知道如何正确确定 c3p0 max statements 使用什么值 我经历过一些缓存死锁 这似乎指向我的 max statements 配置 基于我读过的所有 SO 问答 我正在使用 mysql 当我进行一些有 4 个活动线程的多线程
  • SQL 条件行插入

    如果满足条件是否可以插入新行 例如 我有这个表 没有主键也没有唯一性 image id tag id 39 8 8 39 5 11 如果 image id 和 tag id 的组合不存在 我想插入一行 例如 INSERT WHERE ima
  • mysql故障转移:如何选择slave作为新的master?

    我是 mysql 新手 当涉及到故障转移时 哪个从机应该晋升为新的主机 例如 A是master B和C是slave A对B和C进行异步复制 在某个时间点 B 从 A 接收的数据多于 C A 崩溃 如果我们将C提升为新的master 并将B的
  • Hibernate 乐观锁..它是如何工作的?

    我正在阅读下面关于休眠乐观锁定的博客 我打算将它与休眠一起使用 但是 我有一个担忧 我们有java代码和c 代码 都连接到一个数据库 虽然java代码可以使用hibernate来实现乐观锁定 但我想让c 代码做同样的事情 此外 C 代码正在
  • mysql select sql 中的竞争条件

    我试图完成的事情看起来很简单 数据库类型 MyISAM表结构 card id status查询 从表中选择一个未使用的card id 并将该行设置为 已使用 当两个查询同时运行并且状态更新之前 相同的card id被获取两次 这是否是竞争条
  • 如何将R连接到MySQL?无法连接到数据库:错误:无法加载插件 caching_sha2_password

    我最近在计算机上安装了 MySQL 并尝试将 RStudio 连接到 MySQL 我按照书上的说明以及说明进行操作here http mdsr book github io excerpts mdsr dbadmin pdf 然而 每当我使
  • 当数据表输入来自服务器的 JSON 数据时,更改 Google 图表栏颜色

    我一直在努力使用谷歌图表 API 我在 SO 上发现了这个出色的例子PHP MySQL Google Chart JSON 完整示例 https stackoverflow com questions 12994282 php mysql
  • Mysql - Mysql2::错误:字符串值不正确:

    所以我建造了一个刮刀并拉动一些物体 问题是有些是外语 它使 mysql 数据库有点崩溃 这是我得到的错误 知道我能用这个做什么吗 谢谢 Mysql2 错误 列的字符串值不正确 xC5 x8Dga 第 1 行的 描述 插入sammiches
  • 通过我的java代码导出数据库

    我想使用我的 java 代码导出我的 MySQL 数据库 但我还没有找到任何办法 我想要做的就是我的应用程序中有一个按钮作为 导出数据库 单击该按钮时 我的数据库应导出到指定的路径 我使用了以下代码 但它不起作用 Runtime runti
  • 如何使PHP中的激活链接过期?

    我有一个 php 脚本 它通过电子邮件向用户发送激活链接 以便他们可以激活他们的帐户 链接是这样的 mysite com activation phpid id 20 如何创建 24 小时后过期的链接 我还没有尝试过任何东西 因为我找不到任
  • MYSQL 查询返回“资源 id#12”而不是它应返回的数值

    不知道为什么 但这返回了错误的值 我正在取回此资源 ID 12 而不是我正在寻找的数值 1 执行此操作的代码是 type SELECT account type from user attribs WHERE username userna
  • Codeigniter 加入多个条件

    我正在使用 Codeigniter Active Records 课程 我想加入我的users与我的桌子clients表 这样我就可以显示用户的 真实 姓名 而不仅仅是他们的 ID 这是什么clients表看起来像 示例 列 a 1 a 2
  • MySQL 按主键排序

    某些 SQL 服务器允许使用通用语句 例如ORDER BY PRIMARY KEY 我不相信这适用于 MySQL 是否有任何此类解决方法可以允许跨多个表自动选择 或者是否需要查找查询来确定主键 我一直在研究的解决方法包括调用SHOW COL
  • 无法使用 Django 应用程序从容器连接到 MySQL docker 容器

    当我尝试从运行 Django 应用程序的 docker 容器连接到运行 MySQL 的容器时 出现以下错误 django db utils OperationalError 2003 Can t connect to MySQL serve
  • 单行的总和值?

    我有一个 MySQL 查询 它返回由一系列 1 和 0 组成的单行 它用于进度条指示器 我现在在代码中对它进行求和 但我尝试对查询中的值求和 并意识到我无法使用 SUM 因为它们有很多列 但只有一行 有没有办法可以在查询中自动求和 就像这样
  • 无法启动 MySQL 服务器 - 控制进程退出并出现错误代码

    我的 mysql 服务器停止后无法启动 命令使用 sudo etc init d mysql restart Error 重新启动 mysql 通过 systemctl mysql serviceJob for mysql service
  • 查询中列的顺序重要吗?

    当从 MySQL 表中选择列时 与表中的顺序相比 选择列的顺序是否会影响性能 不考虑可能覆盖列的索引 例如 您有一个包含行 uid name bday 的表 并且有以下查询 SELECT uid name bday FROM table M
  • java mysql 准备好的语句

    我正在尝试使用 java 向数据库中进行简单的插入 它告诉我我的 sql 语法已关闭 但是 当我复制打印出来的字符串并将其放入 phpmyadmin 中的 sql 命令中时 它会正确执行该命令 并且我似乎无法弄清楚 java 中的字符串查询
  • mysql-如何向列申请补助?

    用户名 撤销对数据库的选择 Person I set GRANT SELECT id ON database Person TO username localhost 不是工作 gt SELECT secret FROM Person Go
  • 如何使用 MySQL 的 LOAD DATA LOCAL INFILE 在导入 CSV 时将字符串日期更改为 MySQL 日期格式

    我正在使用 MySQL 的 LOAD DATA LOCAL INFILE SQL 语句将数据从 CSV 文件加载到现有数据库表中 下面是一个 SQL 语句示例 LOAD DATA LOCAL INFILE file csv INTO TAB

随机推荐

  • Docker入门命令

    文章目录 1 安装Docker 2 搜索 下载镜像 3 查询本地镜像 4 启动镜像到容器 5 查询已启动镜像 容器 6 进入容器环境 7 创建镜像 7 1 基于已有镜像的容器创建 7 2 基于本地模板导入 7 3 基于Dockerfile创
  • AI绘图:教你几个提示词 100%生成美丽小姐姐

    许多常用提示对于确保高质量的成像结果至关重要 我们将教您一些基本的提示词和设置 以节省您在初始探索过程中的时间 本次用到的模型ChilloutMix 基础设置 默认设置包括图片 大小 512 x 512 采样器 DPM SDE Karras
  • 逆序栈(使用递归)

    题目 一个栈依次压入1 2 3 4 5那么从栈顶到栈底分别为5 4 3 2 1 将这个栈转置后 从栈顶到栈底为1 2 3 4 5 也就是实现了栈中元素的逆序 请设计一个算法实现逆序栈的操作 但是只能用递归函数来实现 而不能用另外的数据结构
  • springBoot添加自定义拦截器

    文章目录 前言 步骤如下 首先新建一个自己的拦截器 其次 把自己的拦截器注册到spring中 让其生效 前言 新的项目需要校验用户是否登录 在springBoot项目中添加一个自定义的拦截器拦截到所有请求进行逻辑判断 步骤如下 首先新建一个
  • 资讯汇总230429

    230429 11 44 大华股份 重点投入大模型和多模态方向 会持续按需扩容算力 大华股份在业绩说明会表示 GPT 的发展具有里程碑式的意义 公司会重点投入大模型和多模态方向 过去在大模型领域的算法和工程能力已经有一定的积累 先进技术研究
  • 内行看门道:看似“佛系”的《QQ炫舞手游》,背后的音频技术一点都不简单

    欢迎大家前往腾讯云 社区 获取更多腾讯海量技术实践干货哦 本文由腾讯游戏云发表于云 社区专栏 内行看门道 看似 佛系 的 QQ炫舞手游 背后的音频技术一点都不简单 3月14日 腾讯旗下知名手游 QQ炫舞 正式上线各大应用商店 并迅速登上Ap
  • 卡尔曼滤波与目标跟踪(由cv模型的kf推理到CTRV模型的radar与lidar))(一)

    引用AdamShan 引用知乎陈光 基于cv模型的行人状态预测 卡尔曼滤波与目标追踪 卡尔曼的理论 一 初始化 我们认为小车在第1秒时的状态x与测量值z相等 二 预测 Prediction 完成初始化后 我们开始写Prediction部分的
  • Ubuntu20.04安装各种库----简洁版

    目录 Eigen3 Sophus Pangolin Ceres g2o 建议先装anaconda再装ros python opencv啥该有的都有了 下面仅仅安装ros没有的库 Eigen3 作用 线性代数开源库 提供了有关线性代数 矩阵和
  • 汽配企业如何利用MES管理系统解决生产防错难题

    汽车配件制造业是一个高效率 低成本 高质量的生产领域 但同时也面临着一系列的挑战 其中最为突出的挑战之一是如何在生产过程中避免错误 提高产品的合格率 本文将介绍汽车配件的制造特点以及如何通过MES管理系统解决方案实现生产防错 从而提高产品合
  • 爬虫逆向(js逆向)

    异步爬虫的实现方式 线程池 多任务的异步协程 多线程 生产者消费者模型 线程池 前提 from flask import Flask render template from time import sleep app Flask name
  • 【NLP】文本聚类和主题建模

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • Chrome浏览器更新之后在开发者工具中查看格式化后的js不显示行号问题

    最近更新了谷歌浏览器 然后在调试代码的时候发现一个问题 就是当js代码是压缩后的 将其格式化之后就只显示压缩之前的行号了 如下 未格式化的 格式化之后 这样就很无语了 突然没有了行号就很不习惯了 经过在浏览器设置里面一番找之后终于找到设置这
  • 微信公众号开发(一)——开发模式接入,消息的接收与响应

    1 想自己开一个公众号 先学习一下用 Java 进行微信公众号的开发 微信公众号的管理有开发模式和编辑模式两种 两者是互斥的 腾讯是这么讲的 编辑模式 编辑模式指所有的公众号运营者都可以通过简单的编辑 设置 按关键字回复 等功能 您可以设定
  • python 打包成可执行文件

    文章目录 pyinstaller 另外一个打包工具Nuitka 常见命令选项 工具很多 只说两个 pyinstaller 网上很多人说 pyinstaller 打包慢啊 文件大啊 这那这那的 可能是我还没理解别的工具的妙用 我发现 pyin
  • Unsupported major.minor version 52.0 版本不支持问题

    摘自 https blog csdn net qq 36769100 article details 78880341 Unsupported major minor version 52 0 这个错误网上一百度一大堆 我就简单的记一下 直
  • 从github上下载下来的c++代码用vs或QTCreator运行起来(Cmake)

    初学C 从github上下载了一份源码 不知道怎么运行 特此来记录一下 源码下载下来如图所示 1 用VS运行的方法 1 文件里有CMake 需要我们有CMake工具来构建 所以第一步就是下载CMake 下载链接 Download CMake
  • 微信小程序tab切换,可滑动切换,导航栏跟随滚动实现

    微信小程序tab切换 可滑动切换 导航栏跟随滚动实现 简介 看到今日头条小程序页面可以滑动切换 而且tab导航条也会跟着滚动 点击tab导航 页面滑动 切导航栏也会跟着滚动 就想着要怎么实现这个功能 像商城类商品类目如果做成左右滑动切换类目
  • 关于:Google Chrome 官方下载地址

    1 官方在线安装版 Google Chrome 网络浏览器https www google cn intl zh CN chrome 2 官方离线安装版
  • 五大学科竞赛(二)NIOP全国青少年信息学奥林匹克分区联赛竞赛大纲

    一 初赛内容与要求 表示普及组不涉及 以下同 计 基 算 本 机 常 的 识 诞生与发展 特点 在现代社会中的应用 计算机系统的基本组成 计算机的工作原理 计算机中的数的表示 计算机信息安全基础知识 计算机网络 计 基 算 本 机 操 的
  • IDEA使用JDBC连接MySQL数据库详细教程

    文章目录 创建项目 导入驱动 让导入的驱动生效 注册数据库驱动 连接数据库 创建项目 首先需要保证你已经成功安装mysql和下载连接MySQL数据库的驱动 在IDEA里面创建一个java项目 选择创建Java项目 JDK这里选择1 8 直接