志在指尖
用双手敲打未来

drivermanager.getconnection(参数设置详解)

drivermanager.getconnection

getConnection(Stringurl)
参数阐明:
url:拜访数据库的URL途径。
示例
下面的代码利用getConnection办法创立与MySQL数据库的衔接,并回来衔接目标。
publicConnectiongetConnection(){
Connectioncon=null;
try{
Class.forName(“com.mysql.jdbc.Driver”);//注册数据库驱动
Stringurl=”jdbc:mysql://localhost:3306/test?user=root&password=root”;//界说衔接数据库的url
con=DriverManager.getConnection(url);//获取数据库衔接
System.out.println(“数据库衔接成功!”);
}catch(Exceptione){
e.printStackTrace();
}
returncon;//回来一个衔接
}
语法2
getConnection(Stringurl,Propertiesinfo)
参数阐明:
url:拜访数据库的URL途径。
info:是一个耐久的特点集目标,包括user和password特点。
示例
下面的代码利用getConnection办法第一种语法格式,创立与MySQL数据库的衔接,并回来衔接目标。
publicConnectiongetConnection(){
Connectioncon=null;//界说数据库衔接目标
Propertiesinfo=newProperties();//界说Properties目标
info.setProperty(“user”,”root”);//设置Properties目标特点
info.setProperty(“password”,”root”);
try{
Class.forName(“com.mysql.jdbc.Driver”);//注册数据库驱动
Stringurl=”jdbc:mysql://localhost:3306/test”;//test为数据库称号
con=DriverManager.getConnection(url,info);//获取衔接数据库的Connection目标
System.out.println(“数据库衔接成功!”);
}catch(Exceptione){
e.printStackTrace();
}
returncon;//回来一个衔接
}
语法3
Connection(Stringurl,Stringuser,Stringpassword)
参数阐明:
url:拜访数据库的URL途径。
user:是拜访数据库的用户名。
password:衔接数据库的暗码。
典型使用
下面的代码利用getConnection办法创立与SQLServer数据库的衔接,并回来衔接目标。与数据库建立衔接成功后的运转结果。代码如下:
纯文本仿制
privateConnectioncon;
privateStringuser=”sa”;//界说衔接数据库的用户名
privateStringpassword=””;//界说衔接数据库的暗码
privateStringclassName=”com.microsoft.sqlserver.jdbc.SQLServerDriver”;
privateStringurl=”jdbc:sqlserver://localhost:1433;DatabaseName=db_database01″;/**创立数据库衔接*/
publicConnectiongetCon(){
try{
Class.forName(className);//加载数据库驱动
System.out.println(“数据库驱动加载成功!”);
con=DriverManager.getConnection(url,user,password);//衔接数据库
System.out.println(“成功地获取数据库衔接!”);
}catch(Exceptione){
System.out.println(“创立数据库衔接失败!”);
con=null;
e.printStackTrace();
}
returncon;
}
运转结果如下:
数据库驱动加载成功!
成功地获取数据库衔接!数据库

drivermanager.getconnection参数设置详解

DriverManager.getConnection一共有四个重载办法,前三个由public润饰,用来获取不同类型的参数,这三个getConnection实际相当于一个入口,他们终究都会return第四个私有化的getConnection办法,终究向第四个私有化办法的传入参数都是url,java.util.Properties,以及Reflection.getCallerClass(),这个办法是native的
其间Reflection.getCallerClass()是反射中的一个办法,这个办法用来回来他的调用类,也就说是哪个类调用了这个办法,Reflection类位于调用栈中的0帧位置,在JDK7以前,该办法能够传入intn回来调用栈中从0帧开端的第n帧中的类,在JDK7中,需求设置java命令行选项Djdk.reflect.allowGetCallerClass来运用该办法,到了JDK8时,再调用该办法会导致UnsupportedOperationException异常。
JDK8中getCallerClass运用办法变更为getCallerClass(),Reflection.getCallerClass()办法调用所在的办法有必要用@CallerSensitive进行注解,经过此办法获取class时会跳过链路上所有的有@CallerSensitive注解的办法的类,直到遇到第一个未运用该注解的类,避免了用Reflection.getCallerClass(intn)这个过时办法来自己做判别。
在这里每个getConnection都是用CallerSensitive润饰的,调用getCallerClass应该是获取外面运用DriverManager.getConnection()的类的名称,即在classA中调用了DriverManager.getConnection(),则回来classA。
在私有化的getConnection中涉及到了类加载器的一些相关概念,https://blog.csdn.net/briblue/article/details/54973413
线程上下文类加载器的适用场景:
1.当高层供给了一致接口让低层去完成,一起又要是在高层加载(或实例化)低层的类时,有必要经过线程上下文类加载器来协助高层的ClassLoader找到并加载该类。
2.当运用本类保管类加载,然而加载本类的ClassLoader不知道时,为了隔离不同的调用者,能够取调用者各自的线程上下文类加载器代为保管。

未经允许不得转载:IT技术网站 » drivermanager.getconnection(参数设置详解)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载