jdbc连接MySQL数据库(完整文件+详细说明)

2023-11-03

使用jdbc连接数据库:
可以直接在方法中定义url、user、psd等信息,也可以读取配置文件,但是在web项目中肯定是要使用第二种方式的,为了统一,只介绍第二种方式。
步骤
1、创建配置文件db.properties
无论是eclipse还是myeclipse,在工程下右键->new->file,以properties为后缀名就好了。
配置文件内容:

#连接数据库的url,如果主机地址是localhost,端口是3306也可以写成url=jdbc:mysql:///databasename
    url=jdbc:mysql://localhost:3306/databasename
    #用户名
    user=root
    #密码
    password=root
    #MySQL数据库加载驱动
    driverClass=com.mysql.jdbc.Driver

2、定义一个使用jdbc连接数据库的工具类JdbcUtil.java
工具类内容:

public class JdbcUtil{
    //定义全局变量
    private static String url = null;
    private static String user = null;
    private static String password = null;
    private static driverClass = null;
    //读取配置文件内容,放在静态代码块中就行,因为只需要加载一次就可以了
    static{
        try{
            Properties props = new Properties();
            //使用类路径加载的方式读取配置文件
            //读取的文件路径要以“/”开头,因为如果使用“.”的话,当部署到服务器上之后就找不到文件了,使用“/”开头会直接定位到工程的src路径下
            InputStream in = JdbcUtil.class.getResourceAsStream("/db.properties");
            //加载配置文件
            props.load(in);
            //读取配置文件信息
            url = props.getProperty("url");
            user = props.getProperty("user");
            password = props.getProperty("password");
            driverClass = props.getProperty("driverClass");
            //注册驱动程序
            Class.forName(driverClass);
        }catch(Exception e){
            e.printStackTrace();
            System.out.println("驱动程序注册失败!!!");
        }
    }

    //获取连接对象Connection
    public static Connection getConnection(){
        try{
            return DriverManager.getConnection(url,user,password);
        }catch(SQLException e){
            e.printStackTrace();
            //跑出运行时异常
            throw new RuntimeException();
        }
    }

    //关闭连接的方法,后打开的先关闭
    public static void close(Connection conn,Statement stmt,ResultSet rs){
        //关闭ResultSet对象
        if(rs != null){
            try{
                //关闭rs,设置rs=null,因为java会优先回收值为null的变量
                rs.close();
                rs = null;
            }catch(SQLException e){
                e.printStackTrace();
                throw new RuntimeException();
            }
        }
        //关闭Statement对象,因为PrepareStatement和CallableStatement都是Statement的子接口,所以这里只需要有关闭Statement对象的方法就可以了
        if(stmt != null){
            try{
                stmt.close();
                stmt = null;
            }catch(SQLException e){
                e.printStackTrace();
                throw new RuntimeException();
            }
        }
        //关闭Connection对象
        if(conn != null){
            try{
                conn.close();
                conn = null;
            }catch(SQLException e){
                e.printStackTrace();
                throw new RuntimeException();
            }
        }
    }
}

有任何问题可以+QQ:3393055725
可以聊任何java问题,JavaSE、JavaEE

工具类已经实现了,可以直接考到项目里使用,但是有一点要注意,就是这个类文件中没有导入支持的类,大家也可以看到在类的头部没有package 和import,这个需要自己手动添加上,导入类的快捷键是Ctrl+Shift+O,导包的时候不要导错了;别忘了引入MySQL的支持jar包mysql-connector-java-5.1.7-bin.jar

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

jdbc连接MySQL数据库(完整文件+详细说明) 的相关文章

  • 在 Java 中连接和使用 Cassandra

    我已经阅读了一些关于 Cassandra 是什么以及它可以做什么的教程 但我的问题是如何在 Java 中与 Cassandra 交互 教程会很好 如果可能的话 有人可以告诉我是否应该使用 Thrift 还是 Hector 哪一个更好以及为什
  • Java Swing:从 JOptionPane 获取文本值

    我想创建一个用于 POS 系统的新窗口 用户输入的是客户拥有的金额 并且窗口必须显示兑换金额 我是新来的JOptionPane功能 我一直在使用JAVAFX并且它是不同的 这是我的代码 public static void main Str
  • Final字段的线程安全

    假设我有一个 JavaBeanUser这是从另一个线程更新的 如下所示 public class A private final User user public A User user this user user public void
  • JavaMail 只获取新邮件

    我想知道是否有一种方法可以在javamail中只获取新消息 例如 在初始加载时 获取收件箱中的所有消息并存储它们 然后 每当应用程序再次加载时 仅获取新消息 而不是再次重新加载它们 javamail 可以做到这一点吗 它是如何工作的 一些背
  • 路径中 File.separator 和斜杠之间的区别

    使用有什么区别File separator和一个正常的 在 Java 路径字符串中 与双反斜杠相反 平台独立性似乎不是原因 因为两个版本都可以在 Windows 和 Unix 下运行 public class SlashTest Test
  • Mockito when().thenReturn 不必要地调用该方法

    我正在研究继承的代码 我编写了一个应该捕获 NullPointerException 的测试 因为它试图从 null 对象调用方法 Test expected NullPointerException class public void c
  • 斯坦福 NLP - 处理文件列表时 OpenIE 内存不足

    我正在尝试使用斯坦福 CoreNLP 中的 OpenIE 工具从多个文件中提取信息 当多个文件 而不是一个 传递到输入时 它会给出内存不足错误 All files have been queued awaiting termination
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • 十进制到八进制的转换[重复]

    这个问题在这里已经有答案了 可能的重复 十进制转换错误 https stackoverflow com questions 13142977 decimal conversion error 我正在为一个类编写一个程序 并且在计算如何将八进
  • JRE 系统库 [WebSphere v6.1 JRE](未绑定)

    将项目导入 Eclipse 后 我的构建路径中出现以下错误 JRE System Library WebSphere v6 1 JRE unbound 谁知道怎么修它 右键单击项目 特性 gt Java 构建路径 gt 图书馆 gt JRE
  • Java Integer CompareTo() - 为什么使用比较与减法?

    我发现java lang Integer实施compareTo方法如下 public int compareTo Integer anotherInteger int thisVal this value int anotherVal an
  • AWS 无法从 START_OBJECT 中反序列化 java.lang.String 实例

    我创建了一个 Lambda 函数 我想在 API 网关的帮助下通过 URL 访问它 我已经把一切都设置好了 我还创建了一个application jsonAPI Gateway 中的正文映射模板如下所示 input input params
  • 仅将 char[] 的一部分复制到 String 中

    我有一个数组 char ch 我的问题如下 如何将 ch 2 到 ch 7 的值合并到字符串中 我想在不循环 char 数组的情况下实现这一点 有什么建议么 感谢您花时间回答我的问题 Use new String value offset
  • Java执行器服务线程池[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果我使用 Executor 框架在
  • 如何从指定日期获取上周五的日期? [复制]

    这个问题在这里已经有答案了 如何找出上一个 上一个 星期五 或指定日期的任何其他日期的日期 public getDateOnDay Date date String dayName 我不会给出答案 先自己尝试一下 但是 也许这些提示可以帮助
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • 获取 JVM 上所有引导类的列表?

    有一种方法叫做findBootstrapClass对于一个类加载器 如果它是引导的 则返回一个类 有没有办法找到类已经加载了 您可以尝试首先通过例如获取引导类加载器呼叫 ClassLoader bootstrapLoader ClassLo
  • 捕获的图像分辨率太大

    我在做什么 我允许用户捕获图像 将其存储到 SD 卡中并上传到服务器 但捕获图像的分辨率为宽度 4608 像素和高度 2592 像素 现在我想要什么 如何在不影响质量的情况下获得小分辨率图像 例如我可以获取或设置捕获的图像分辨率为原始图像分
  • 有没有办法为Java的字符集名称添加别名

    我收到一个异常 埋藏在第 3 方库中 消息如下 java io UnsupportedEncodingException BIG 5 我认为发生这种情况是因为 Java 没有定义这个名称java nio charset Charset Ch
  • 当我从 Netbeans 创建 Derby 数据库时,它存储在哪里?

    当我从 netbeans 创建 Derby 数据库时 它存储在哪里 如何将它与项目的其余部分合并到一个文件夹中 右键单击Databases gt JavaDB in the Service查看并选择Properties This will

随机推荐

  • java基础速通(一)

    1 java基础语法 对象 类 方法 实例变量 2 java基本语法 大小写敏感 类名首字母大写 方法名首字母小写 源文件名与类名相同 主方法入口 3 类名 方法名 变量名命名规则 3 1 字母 下划线开头 3 2 首字符后可以是字母 下划
  • 黑马JVM总结(十二)

    1 五种引用 强软弱 实线箭头表示强引用 虚心线表示软弱虚终结器引用 在平时我们用的引用 基本都为强引用 比如说创建一个对象通过 运算符赋值给了一个变量 那么这个变量呢就强引用了刚刚的对象 强引用的特点 通过GC Root的引用链 能够找到
  • 最长公共子序列-Python-动态规划

    1 题目内容 题名为 最长公共子序列 题目要求 1 用动态规划算法思想设计最长公共子序列问题求解算法 并且对给定的数据 分两类 统一和自选 进行验证 2 要求分析算法的时间复杂性 3 与穷举算法 直接递归法 备忘录法进行对比并且形成分析报告
  • 如何释放已使用的EOS RAM,然后就可以自由买卖了

    昨天到今天 EOS RAM价格大跌 有一些用户想卖RAM 但是却发现大量RAM被占用 比如下图 这位伙伴找到我时 他说啥都没做但他的内存使用量怎么高达189k 然后我查了一下该账号的交易记录 发现他曾经部署过智能合约 然后他告诉我是他不小心
  • 分布式面试题

    文章目录 前言 一 大型网站系统的特点 二 拆分 VS 集群 三 微服务 VS SOA 四 前后端完全分离与Rest规范 总结 前言 大型网站系统的特点 拆分 VS 集群 微服务 VS SOA 前后端完全分离与Rest规范 一 大型网站系统
  • python类方法第一个参数_Python 类成员函数第一个参数self

    类的方法与普通的函数只有一个特别的区别 它们必须有一个额外的第一个参数名称 但是在调用这个方法的时候你不为这个参数赋值 Python会提供这个值 这个特别的变量指对象本身 按照惯例它的名称是self 你一定很奇怪Python如何给self赋
  • Python做简单小项目,Python如何赚钱项目

    Python都可以做哪些副业 1 兼职处理数据Excel整理数据功能虽然很强大 但在Python面前 曾经统治职场的它也的败下阵来 因为Python在搜集数据整理分析数据的过程中更加便捷 通过几行代码还可以实现自动化操作 如果你学会Pyth
  • 将输入的一行字符中的大写字符改为小写字符。(C语言)

    代码 include
  • 基于javaweb的留学生信息交流论坛

    该在线留学生交流网站 是一款主要以留学生交流为主题的交流性质的论坛网站 采用了SSH框架技术开发 利用mysql作为数据库 主要展示了留学新闻和论坛交流的功能 方便了交流和对澳洲那边生活的了解 面对面和去过的人交流 系统是一款简单毕业设计学
  • Linux中ELF格式文件介绍

    ELF Executable and Linkable Format 即可执行连接文件格式 是一种比较复杂的文件格式 但其应用广泛 与linux下的其他可执行文件 a out cof 相比 它对节的定义和gnu工具链对它的支持使它十分灵活
  • 最近忙了些啥

    最近自己忙忙叨叨 忙忙叨叨的 不知道都干了些啥 一直在围绕网站SNS建设的规划 讨论来讨论去 这个礼拜最终已经确定 虽然不是我想要的结果 但是我想时间已经不能再等人了 总要人做出牺牲 网站在排名方面一直没有太多的变化 SNS还是准备采用di
  • java日期和时间戳相互转换(实际项目开发总结)

    第一步 改变数据库中字段类型 我这里用的是bigint类型 第二步 编写转换代码 由于项目中用的都是时间戳 直接抽成工具类了 工具类最下面有测试的main方法 代码都一样 package com anjiplus template gaea
  • 深度学习常用单词

    深度学习英文单词表 英文 缩写 汉语 Absolute value rectification 绝对值整流 Activation Function 激活函数 Accumulated error backpropagation 累积误差反向传
  • proxy代理配置 goproxy 代理配置

    1 百度上搜索 goproxy 2 下载 proxy linux amd64 tar gz 2 1 直接下载地址 该版本 不限制默认数量 调整默认的每秒最大连接数 由默认20改为默认0无限制 https github com snail00
  • Maven配置了junit依赖,jar包已经导入,但是在使用Test测试时报错

    Maven配置了junit依赖 jar包已经导入 但是在使用Test测试时报错 作用域问题 每一个依赖都有一个scope标签标示这个依赖可以在哪里使用 如果作用域为test 那么只能在测试 Test Resource Root 包下使用 一
  • 存储器、运算器、控制器基本结构以及一条指令的执行

    Abstract 此篇文章讲述的是计算机存储器 控制器 运算器的基本结构组成以及指令的具体执行顺序 CPU包括运算器和控制器 而主机主要包括CPU和存储器 内容参考于 哈工大计算机组成原理 刘宏伟 存储器的基本组成 如下图所示 主存由存储体
  • Android获取APP的Package和Activity

    在使用android自动化测试工具中启动应用时 需要填写被测程序的包名和启动的Activity 以下是查看应用包名package和入口activity名称的方法 aapt 使用aapt aapt是sdk自带的一个工具 在sdk builds
  • 糖酵解反应动力学方程的微分方程建模

    糖酵解反应动力学方程的微分方程建模 题目 对于下面的糖酵解反应 设其满足如下动力学方程 d d
  • 服务器卡顿了该如何处理

    服务器卡顿了该如何处理 当Windows系统的服务器出现卡顿问题时 以下是一些常见的故障排除步骤 1 检查网络连接 确保服务器的网络连接正常 检查网络设备 交换机 防火墙等设备 确保它们正常运行 尝试通过其他计算机访问服务器 以确定是否存在
  • jdbc连接MySQL数据库(完整文件+详细说明)

    使用jdbc连接数据库 可以直接在方法中定义url user psd等信息 也可以读取配置文件 但是在web项目中肯定是要使用第二种方式的 为了统一 只介绍第二种方式 步骤 1 创建配置文件db properties 无论是eclipse还