爱神和月老
甲:“你知道西方国家闹离婚的为什么比中国的多吗?”
乙:“这还不简单,因为西方的爱神丘比特是个娃娃,而中国的是月下老人,经验当然丰富得多!”
大家好,我录制的视频《Java之优雅编程之道》已经在CSDN学院发布了,有兴趣的同学可以购买观看,相信大家一定会收获到很多知识的。谢谢大家的支持……
视频地址:http://edu.csdn.net/lecturer/994
DriverManager类的简单学习???
DriverManager在java.sql这个包里面,管理一组 JDBC 驱动程序的基本服务
package com.evada.de;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.util.Enumeration;
/**
* 用静态工厂方法管理一个唯一的可重用的连接
* Created by Ay on 2016/5/1.
*/
public class ConnUtils{
private ConnUtils(){}
private static Connection con;
//在静态代码块中创建与数据库的连接
static{
try{
//postgresql驱动名称
Class.forName("org.postgresql.Driver");
//数据库连接路径
String url = "jdbc:postgresql://127.0.0.1:5432/postgres";
//用户名和密码
con = DriverManager.getConnection(url, "postgres", "888888");
}catch(Exception e){
throw new RuntimeException(e.getMessage(),e);
}
}
//使用一个静态方法-静态工厂方法,返回connection实例
public static Connection getCon(){
return con;
}
//main函数测试用
public static void main(String[] args) {
//获取所有的数据库驱动
Enumeration<Driver> driverEnum = DriverManager.getDrivers();
//打印出所有驱动信息
while(driverEnum.hasMoreElements()){
System.out.println(driverEnum.nextElement());
}
}
}
运行结果:
org.mariadb.jdbc.Driver@7cef4e59
com.alibaba.druid.proxy.DruidDriver@3ada9e37
com.alibaba.druid.mock.MockDriver@4ec6a292
org.postgresql.Driver@71c7db30
解释,因为我们的项目包里有如下图片的数据库驱动,所以会打印下面信息
这两者的区别:
DriverManager.registerDriver(new Driver());
Class.forName(“com.mysql.jdbc.Driver”);
org.postgresql.Driver类源码如下,可以看出postgresql是通过单例形式,new一个驱动Driver,也就是说在连接数据库是只new了一个Driver
static {
sharedTimer = new SharedTimer(logger);
try {
//注册
register();
} catch (SQLException var1) {
throw new ExceptionInInitializerError(var1);
}
protocols = new String[]{
"jdbc", "postgresql"};
}
public static void register() throws SQLException {
if(isRegistered()) {
throw new IllegalStateException("Driver is already registered......);
} else {
Driver registeredDriver = new Driver();
DriverManager.registerDriver(registeredDriver);
registeredDriver = registeredDriver;
}
}
再来看看DriverManager的源码,它会把Driver包装到DriverInfo中,
//
public static synchronized void registerDriver(java.sql.Driver driver,
DriverAction da)
throws SQLException {
/* Register the driver if it has not already been added to our list */
if(driver != null) {
//将驱动包装到DriverInfo中
registeredDrivers.addIfAbsent(new DriverInfo(driver, da));
} else {
// This is for compatibility with the original DriverManager
throw new NullPointerException();
}
println("registerDriver: " + driver);
}
Class.forName(“com.mysql.jdbc.Driver”);
结论:DriverManager.registerDriver(new Driver()); 多new一个Driver浪费;而Class.forName(“com.mysql.jdbc.Driver”); 单例形式,更推荐……
来自《一公升的眼泪》
如果有带给你一丝丝小快乐,就让快乐继续传递下去,欢迎转载,点赞,顶,欢迎留下宝贵的意见,多谢支持!
文章浏览阅读139次。阿里妹导读:技术主管,又叫「技术经理」,英文一般是 Tech Leader ,简称 TL。随着工作经验的不断积累,能力的不断提升,每个人都有机会成为Team Leader。然而在机会到来前,我们必须提前做好准备,对TL的工作职责有一定了解。当然,这也会为当下更好地配合TL工作打下基础。今天,阿里巴巴高级技术专家云狄将结合自己多年的经验,从开发规范、..._随着数据量的增大系统性能会不会出现明显问题?
文章浏览阅读252次,点赞9次,收藏4次。使用圆括号而非中括号来标识,定义元组后,就可使用索引来访问其元素,就像访问列表元素一样注:元组可以容纳多个数据和不同类型的数据,并且数据是有序存储的,元组不支持修改元素。
文章浏览阅读441次。作者|预见出品|遇见人工智能(微信ID: gowithai)期数|总第2017093期 每天的AI桌边谈资福利|点标题下蓝字,或微信搜“遇见人工智能”,关注后回复"报告",1秒钟获取麦肯锡、德勤等48份顶级最新AI报告。AI要闻百度与华为达成全面战略合作12月21日,百度与华为消费者业务共同宣布达成全面战略合作。未来双方将在互联网服务和内容生态、AI平台和技术等方面展开全方位深入合作,共同构建多赢_抖音37891604
文章浏览阅读661次。代码】【 VFE------多层体素特征编码——Stacked Voxel Feature Encoding】_体素vfe
文章浏览阅读612次,点赞2次,收藏2次。{//数据域//左孩子或线索指针//右孩子或线索指针左标志ltag=0,表示lchild指向左孩子结点;ltag=1,表示lchild指向前驱结点右标志rtag=0,表示rchild指向右孩子结点;rtag=1,表示rchild指向后继结点二叉树线索化的基本思想:二叉树的线索化实质上是遍历一棵二叉树。在遍历过程中,访问结点的操作是检查此结点的左、右指针域是否为空,如果为空,将它指向其前驱或后继结点的线索路径:是指从一个结点到另一个结点之间的分支序列。路径长度。_ltag是什么
文章浏览阅读1w次。本文将为您详细介绍Linux和Unix系统下的强大工具find命令,包括基本语法、常用选项和参数、高级用法和实际应用等内容。通过本文的学习,您将掌握如何使用find命令在文件系统中搜索文件和文件夹,并进行操作和管理。此外,还包括一些实际的应用场景,如在Linux中找到所有.log文件、查找最近更改的文件和删除所有tmp文件等,帮助您更好地理解如何使用find命令。_find . -name 搜索内容,命令的作用
文章浏览阅读1.2k次。OPPO日前,计算机图形学顶级国际学术会议ACM SIGGRAPH 2021收录了Highlight-aware Two-stream Network for Single-image ..._图片分析 判断材质
文章浏览阅读5.6k次。Navicat for MySQL12免费版是为mysql数据库推出的一款免费的管理软件,主要功能包括sql创建工具、编辑器、数据传输、导入或导出、报表、数据或结构同步等多项功能,为数据库管理、开发和维护提供了更完美的解决方案,兼容Drizzle、OurDelta 和 Percona Server等,适用于mysql3.21以上的版本。软件功能Navicat CloudNavicat for My..._navicat for mysql12
文章浏览阅读2.8k次。使用的是清华源1、安装texlivesudo apt install texlive-full2、安装texstudio sudo apt install texstudio 3、测试,新建tex文件,拷贝下面代码,运行\documentclass{article}\usepackage{CJKutf8}\begin{document} \begin{CJK..._texlive2022 ubuntu18
文章浏览阅读1.1k次,点赞22次,收藏15次。Zabbix 由 Alexei Vladishev 创建,目前由 Zabbix SIA 主导开发和支持。Zabbix 是一个企业级的开源分布式监控解决方案。Zabbix 是一款监控网络的众多参数以及服务器、虚拟机、应用程序、服务、数据库、网站、云等的健康和完整性的软件。Zabbix 使用灵活的通知机制,允许用户为几乎任何事件配置基于电子邮件的告警,以实现对服务器问题做出快速反应。Zabbix 基于存储的数据提供出色的报告和数据可视化功能。这使得 Zabbix 成为容量规划的理想选择。_php7.4 mysql8
文章浏览阅读2.9k次,点赞3次,收藏25次。前面我们用了三节的篇幅介绍了目前最强大的开源模型LLaMA2。这一节我们说一说国产大模型的一个代表,百川大模型。_百川大模型怎么使用
文章浏览阅读466次。高级语言程序设计课程设计任务书课程设计名称 中文:高级语言程序设计课程设计英文:Computer Programming Basic Comprehensive Practice适用专业 网络22 培养层次 本科学期 第1学期 周数 1.5 学分 1 总学时 1.5周一、课程设计目的与要求课程设计目的在理论学习和基础实验的基础上,开发规模较大的程序,掌握应用计算机解决实际问题的基本方法,熟悉C程序开发的全过程。_题目四、医院预约系统(难度系数**) 模拟微信公众号“美丽厦门智慧健康”,用c语言