JDBC学习笔记--JdbcUtil工具类

 

目录

(一)为什么要使用JdbcUtil工具类

(二)创建一个prorperties文件

1.在文件目录或src目录下,选择新建FIle

2.创建properties文件 

3.编写配置文件

Java基础:反射

4.获取资源的方式

第一种

第二种 

​编辑 第三种


(一)为什么要使用JdbcUtil工具类

问题:

  1. 在编写jdbc的时候,在每一句sql语句以及功能的实现时,有大量重复的代码,如获取Connection,关闭资源...
  2. 数据库四大参数,写在代码中,硬编码(后期需要连接其他的数据库时,可能需要把代码改掉,换个环境就要改代码,修改配置参数,就要就该代码,造成不便)

解决方案:

  1. 封装思维 ,解决大量代码重复问题,将一样的代码取出来,加载驱动类只需要一次就行了
  2. 配置文件:properties文件

(二)创建一个prorperties文件

1.在文件目录或src目录下,选择新建FIle

2.创建properties文件 

3.编写配置文件

把配置参数引入到properties文件里面

使用Properties格式配置文件

#注释   key=value
driverClass=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql://localhost:3306/esa?useUnicode=true&characterEncoding=utf8
username=root
password=123456

为什么要使用Properties? 

  • Properties文件不需要像xml一样去手动解析, jdk有一个对应类:java.util.Properties,是Map接口实现类,但是key,value都是String类型

  • Properties可以通过load方法,读取Properties文件,解析数据,变成key/value结构,存储到Properties对象

Java基础:反射

反射(Reflection),Java 中的反射机制是指,Java 程序在运行期间可以获取到一个对象的全部信息。

反射机制一般用来解决Java 程序运行期间,对某个实例对象一无所知的情况下,如何调用该对象内部的方法问题。

4.获取资源的方式

不同的方式对存放文件的目录有要求

第一种

放在项目下面

Properties prop=new Properties();
//读取db.properties文件
//FileInputStream("文件名"); 相对路径:相对于user.dir
//user.dir 系统参数 当前项目路径
//D:\作业\jdbc-demo1
System.out.println(System.getProperty("user.dir"));
//FileInputStream("文件名");  相对路径:相对于user.dir
prop.load(new FileInputStream("db.properties"));
//TestProperties.class.getResourceAsStream("db.properties");

System.out.println(prop.getProperty("driverClass"));

第二种 

放在同一个包下面

Properties prop=new Properties();
//读取db.properties文件
//FileInputStream("文件名"); 相对路径:相对于user.dir
//user.dir 系统参数 当前项目路径
//D:\作业\jdbc-demo1
//System.out.println(System.getProperty("user.dir"));
//FileInputStream("文件名");  相对路径:相对于user.dir
//prop.load(new FileInputStream("db.properties"));
//TestProperties.class.getResourceAsStream("db.properties");  要求:文件与这个类在同一个目录下
InputStream in=TestProperties.class.getResourceAsStream("db.properties");
System.out.println(in);
prop.load(in);
//获取数据
System.out.println(prop.getProperty("driverClass"));

报错: 

 原因:

TestProperties.class.getClassLoader().getResourceAsStream("db.properties"); 

要求:文件与这个类在同一个目录下

将这个包移动到与类同目录即可

解决成功: 

 第三种

获取类加载器,放在src下面

 Properties prop=new Properties();
        //读取db.properties文件
        //FileInputStream("文件名"); 相对路径:相对于user.dir
        //user.dir 系统参数 当前项目路径
        //D:\作业\jdbc-demo1
        //System.out.println(System.getProperty("user.dir"));
        //FileInputStream("文件名");  相对路径:相对于user.dir
        //prop.load(new FileInputStream("db.properties"));
        //TestProperties.class.getResourceAsStream("db.properties");  要求:文件与这个类在同一个目录下
//        InputStream in=TestProperties.class.getResourceAsStream("db.properties");
//        System.out.println(in);
//        prop.load(in);
        //getClassLoader() 获取类加载器
        InputStream in=TestProperties.class.getClassLoader().getResourceAsStream("db.properties");

        System.out.println(in);
        prop.load(in);
        //获取数据
        System.out.println(prop.getProperty("driverClass"));

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/11134.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

DNS域名解析

1、DNS简介 DNS(Domain Name System)是互联网上的一项服务,它作为将域名和IP地址相互映射的一个分布式 数据库,能够使人更方便的访问互联网。 DNS系统使用的是网络的查询,那么自然需要有监听的port。DNS使用的是53端…

点云从入门到精通技术详解100篇-基于结构光测量的三维人脸重建及识别(下)

目录 4.4 实验结果与分析 5 基于多特征组合阈值技术的三维人脸识别 5.1 引言 5.2 基于多特征组合阈值技术的部分遮挡三维人脸识别 5.2.1 三维人脸预处理 5.2.2 三维人脸表征 5.2.3 混合平均脸生成 5.2.4 基于多特征组合式遮挡去除法 5.2.5 神经网络架构 5.2…

A025-基于SpringBoot的售楼管理系统的设计与实现

🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹 赠送计算机毕业设计600…

私域流量圈层在新消费时代的机遇与挑战:兼论开源 AI 智能名片、2 + 1 链动模式、S2B2C 商城小程序的应用

摘要:本文剖析了私域流量圈层在新消费时代呈现出的独特温度与信任优势,阐述了从传统销售到新消费转型中用户心理的变化。同时,强调了内容对于私域流量的关键作用,并分析开源 AI 智能名片、2 1 链动模式、S2B2C 商城小程序在私域流…

LeetCode 540.有序数组中的单一元素

思路一:hash,键存入元素,值存入次数,然后遍历,不是最优解 思路二:二分查找 假设数组为 [1, 1, 2, 2, 3, 4, 4],其中唯一出现一次的元素是 3。在一个有序数组中,如果没有唯一的元素&…

ssm082基于java斗车交易系统设计与实现+vue(论文+源码)_kaic

摘 要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存…

linux命令curl

curl 是一个用于从命令行传输数据的强大工具,支持多种协议(如 HTTP、HTTPS、FTP 等)。它常用于测试 API、下载文件、提交表单、模拟浏览器请求等操作。 基本语法 curl [选项] [URL]常用选项 以下是一些常用的 curl 命令选项及其功能&#…

【GoWeb示例】通过示例学习 Go 的 Web 编程

文章目录 你好世界HTTP 服务器路由(使用 gorilla/mux)连接到 MySQL 数据库MySQL 数据库简单操作模板静态资源和文件操作表单处理中间件(基础)中间件(高级)会话JSONWebsockets密码哈希 你好世界 Go语言创建…

基于Multisim的烟雾报警电路设计与仿真

设计任务和要求: ( 1 )需要有低浓度、中浓度和高浓度 3 个浓度范围。 ( 2 )需要用电压比较器设置不同浓度的阈值。 ( 3 )用蜂鸣器和二极管指示灯( 3 个浓度范围的指示灯用 3 …

旅行是过于梦幻的镜月【西域之旅】

旅行的意义就是几个定格的“瞬间” 短暂的相遇 恰如涉水而过 每条河终究是 奔向属于它的海看到一句话:一个人的行走范围,就是他的世界。 快节奏的社会里,旅行也许不值得被歌颂,但它却实实在在拓宽一个人的世界。 当我没灵感时&…

Simulink中Matlab function使用全局变量

目录 一. 引言二. 普通Matlab function使用全局变量三. Simulink中的Matlab function使用全局变量四. 如何利用Matlab function的全局变量施加随机噪声 一. 引言 最近发现了之前仿真中的一个问题,记录一下备忘。 Matlab function中有时候需要用到全局变量&#xf…

架构篇(04理解架构的演进)

目录 学习前言 一、架构演进 1. 初始阶段的网站架构 2. 应用服务和数据服务分离 3. 使用缓存改善网站性能 4. 使用应用服务器集群改善网站的并发处理能力 5. 数据库读写分离 6. 使用反向代理和CDN加上网站相应 7. 使用分布式文件系统和分布式数据库系统 8. 使用NoSQL和…

zabbix前台界面配置

点击下一步 如上异常错误解决方法代码如下,安装缺失的软包,并修改php.ini对应参数的值即可 yum install php-mbstring php-bcmath php-gd php72w-xml -y yum install gd gd-devel -y 修改配置文件 sed -i /post_max_size/s/8/16/g;/max_ex…

数据库去O搞了个寂寞!甲骨文股价翻倍,市值突破5200亿美金!

随着川建国同志的当选,到账最近几天美股科技股都有不小的涨幅,涨幅最高的当tesla莫属,然而据传甲骨文老板也是川普的金主! 或许正因为如此,甲骨文股价也创新高了,最近几天涨了10%,市值突破5200…

[强网杯 2019]随便注 1

[强网杯 2019]随便注 1 审题 观察题目,判断可能是SQL注入,或者Linux命令执行,结合题目就是注入了 知识点 堆叠注入,handler命令执行,更改表名,预编译 知识点解析 堆叠注入 简单来说,堆叠注入就是按…

三菱QD77MS定位模块紧急停止功能

“紧急停止功能” 是通过简单运动模块的外部输入连接用连接器上连接的紧急停止输入,对同服放大器的全部轴进行批量停止的功能。(初始值为“0:有效”。)通过“[r.82]紧急停止有效/无效设置”可以选择紧急停止输入的有效/无效。 [1]控制内容 将“[r82]紧急停止有效/无…

计算机组成原理(指令格式)

(1)指令:是用来表示控制信息的一组二进制代码 (2)指令由操作码和地址码组成,操作码表示操作的性质和功能,地址码用来存放操作数的地址。地址码不为1。 (3)程序计数器(PC):专门存放当前要执行的指令地址。 (4)累加器AC:是一种寄存器,用来存储…

时序预测 | 改进图卷积+informer时间序列预测,pytorch架构

时序预测 | 改进图卷积informer时间序列预测,pytorch架构 目录 时序预测 | 改进图卷积informer时间序列预测,pytorch架构预测效果基本介绍参考资料 预测效果 基本介绍 改进图卷积informer时间序列预测代码 CTR-GC卷积,informer,CTR-GC 图卷积…

docker desktop es windows解决vm.max_map_count [65530] is too low 问题

如果你使用windows上的docker desktop 搭建es相关的应用,大概率会遇到vm.vm.max_map_count [65530] is too low这个错误,本篇文章分享下怎么解决这个问题,主要分享长期解决的方法,重启机器之后也能生效的方法。 这个错误的详细信息…

ssm072基于bs模式的医院在线挂号预约系统的设计与实现+jsp(论文+源码)_kaic

毕 业 设 计(论 文) 题目:医院在线挂号预约系统的设计与实现 摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以…