Java DriverManager.getConnection()获取数据库连接

DriverManager.getConnection一共有四个重载方法,前三个由public修饰,用来获取不同类型的参数,这三个getConnection实际相当于一个入口,他们最终都会return第四个私有化的getConnection方法,最终向第四个私有化方法的传入参数都是url,java.util.Properties,以及Reflection.getCallerClass(),这个方法是native的

其中Reflection.getCallerClass()是反射中的一个方法,这个方法用来返回他的调用类,也就说是哪个类调用了这个方法,Reflection类位于调用栈中的0帧位置,在JDK7以前,该方法可以传入int n返回调用栈中从0帧开始的第n帧中的类,在JDK7中,需要设置java命令行选项Djdk.reflect.allowGetCallerClass来使用该方法,到了JDK8时,再调用该方法会导致UnsupportedOperationException异常。

JDK8中getCallerClass使用方法变更为getCallerClass(),Reflection.getCallerClass()方法调用所在的方法必须用@CallerSensitive进行注解,通过此方法获取class时会跳过链路上所有的有@CallerSensitive注解的方法的类,直到遇到第一个未使用该注解的类,避免了用Reflection.getCallerClass(int n) 这个过时方法来自己做判断。

在这里每个getConnection都是用CallerSensitive修饰的,调用getCallerClass应该是获取外面使用DriverManager.getConnection()的类的名称,即在class A中调用了DriverManager.getConnection(),则返回class A。

Java DriverManager.getConnection() 方法用于获得试图建立到指定数据库 URL 的连接。DriverManager 试图从已注册的 JDBC 驱动程序集中选择一个适当的驱动程序。

语法1

getConnection(String url)

参数说明:

  • url:访问数据库的 URL 路径。

示例

下面的代码利用 getConnection 方法创建与 MySQL 数据库的连接,并返回连接对象。

public Connection getConnection(){
  Connection con=null;
  try{
   Class.forName("com.mysql.jdbc.Driver"); //注册数据库驱动
   String url = "jdbc:mysql://localhost:3306/test?user=root&password=root"; //定义连接数据库的url
   con = DriverManager.getConnection(url); //获取数据库连接
   System.out.println("数据库连接成功!");
  }catch(Exception e){
   e.printStackTrace();
  }
   return con; //返回一个连接
}

语法2

getConnection(String url,Properties info)

参数说明:

  • url:访问数据库的 URL 路径。
  • info:是一个持久的属性集对象,包括 user 和 password 属性。

示例

下面的代码利用 getConnection 方法第一种语法格式,创建与 MySQL 数据库的连接,并返回连接对象。

public Connection getConnection(){
  Connection con = null; //定义数据库连接对象
  Properties info = new Properties(); //定义Properties对象
  info.setProperty("user","root"); //设置Properties对象属性
  info.setProperty("password","root");
  try{
   Class.forName("com.mysql.jdbc.Driver"); //注册数据库驱动
   String url = "jdbc:mysql://localhost:3306/test"; //test为数据库名称
   con = DriverManager.getConnection(url,info); //获取连接数据库的Connection对象
   System.out.println("数据库连接成功!");
  }catch(Exception e){
   e.printStackTrace();
  }
   return con;//返回一个连接
}

语法3

Connection(String url,String user,String password)

参数说明:

  • url:访问数据库的 URL 路径。
  • user:是访问数据库的用户名。
  • password:连接数据库的密码。

典型应用

下面的代码利用 getConnection 方法创建与 SQL Server 数据库的连接,并返回连接对象。与数据库建立连接成功后的运行结果。代码如下:

private Connection con;
private String user = "sa"; //定义连接数据库的用户名
private String password = ""; //定义连接数据库的密码
private String className = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
private String url = "jdbc:sqlserver://localhost:1433;DatabaseName=db_database01"; /**创建数据库连接*/
public Connection getCon(){
 try{
  Class.forName(className);//加载数据库驱动
  System.out.println("数据库驱动加载成功!");
  con = DriverManager.getConnection(url,user,password); //连接数据库
  System.out.println("成功地获取数据库连接!");
 }catch(Exception e){
  System.out.println("创建数据库连接失败!");
  con = null;
  e.printStackTrace();
 }
 return con;
}

运行结果如下:
数据库驱动加载成功!
成功地获取数据库连接!

到此这篇关于Java DriverManager.getConnection()获取数据库连接的文章就介绍到这了,更多相关Java DriverManager.getConnection() 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • java jdbc连接mysql数据库实现增删改查操作

    jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打交道非常基础的一个知识,也是比较接近底层的,在实际的工作中大家用得更多的其实还是比较成熟的框架,例如Hibernate.Mybatis. 但是作为这些成熟框架的底层的jdbc却也是我们应该去掌握的,只有了解了jdbc的增删改查,这样在以后如果有兴趣去研究Hibernate或者Mybatis的源代码的时候才能更好的去理解这些成熟的框架是如何去实现增删改查

  • Java使用JDBC连接数据库的实现方法

    本文实例讲述了Java使用JDBC连接数据库的实现方法,是Java数据库程序设计里非常实用的重要技巧.分享给大家供大家参考.具体如下: JDBC(Java Data Base Connectivity)数据库连接,通常我们在编写web应用或java应用程序要连接数据库时就要使用JDBC.使用JDBC连接数据库一般步骤有: 1.加载驱动程序 Class.forName(driver); 2.创建连接对象 Connection con = DriverManager.getConnection(ur

  • java连接sql server 2008数据库代码

    Java连接SQLServer 2008数据库的步骤: 1.到微软官方下载jdbc 并解压,得到sqljdbc.jar和sqljdbc4.jar,由于使用的是JDK1.7,所以使用sqljdbc4.jar, 2.复制文件sqljdbc4.jar到jdk目录\jdk1.7.0\jre\lib\ext下. 配置系统变量classpath 变量路径 D:\Java\jdk1.7.0\jre\lib\ext\sqljdbc4.jar 测试程序: 复制代码 代码如下: import java.sql.*;

  • java 获取数据库连接的实现代码

    代码如下所示: 复制代码 代码如下: /***ConnectionUtil .java***/ package com.cai.jdbc;import java.sql.Connection; import java.sql.DriverManager;import java.util.Properties ;public class ConnectionUtil { /**  * 1  *在方法中固化连接参数  * @return  数据库连接  */ public Connection ge

  • java常用工具类之数据库连接类(可以连接多种数据库)

    依赖包下载:http://xiazai.jb51.net/201407/tools/java-db-dependency(jb51.net).rar 数据库连接类源码: package com.itjh.javaUtil; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.R

  • java连接MySQl数据库实例代码

    复制代码 代码如下: package com.abc.dao; import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement; public class BaseDao { public Connection getConn() {  Connection conn=null;  tr

  • java配置dbcp连接池(数据库连接池)示例分享

    使用jar包:commons-dbcp-1.4.jar.commons-pool-1.6.jar.commons-logging-1.1.3.jar,另外还有数据库的jdbc驱动,适用java6及以上平台 连接池管理类 复制代码 代码如下: package cn.songxinqiang.samples.commonsdbcp.util; import java.sql.Connection;import java.sql.DatabaseMetaData;import java.sql.SQL

  • java连接数据库增、删、改、查工具类

    java连接数据库增.删.改.查工具类 数据库操作工具类,因为各厂家数据库的分页条件不同,目前支持Mysql.Oracle.Postgresql的分页查询在Postgresql环境测试过了,其他数据库未测试.sql语句需要使用预编译形式的 复制代码 代码如下: package db; import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.R

  • Java DriverManager.getConnection()获取数据库连接

    DriverManager.getConnection一共有四个重载方法,前三个由public修饰,用来获取不同类型的参数,这三个getConnection实际相当于一个入口,他们最终都会return第四个私有化的getConnection方法,最终向第四个私有化方法的传入参数都是url,java.util.Properties,以及Reflection.getCallerClass(),这个方法是native的 其中Reflection.getCallerClass()是反射中的一个方法,这个

  • Java中如何获取mysql连接的3种方法总结

    前言 本文主要来说说三种 Java 中获取 mysql 连接的方式,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 第一种:传统的连接方式: 第二种:读取配置文件方式: 第三种:数据库连接池. 一.传统的连接方式: 首先在 src 目录下创建名为 lib 的文件夹,导入数据库驱动的 jar 包,随后 "add to build path". 1.注册驱动 Class.forName("com.mysql.jdbc.Driver"); 2.获取连接 S

  • JDBC如何获取数据库连接

    JDBC(Java Database Connectivity),即Java数据库连接.通过JDBC编程,可以使Java应用程序和数据库进行交互. JDBC驱动的方式有很多种,我们常用的驱动方式为:本地协议的纯Java驱动程序. JDBC编程的第一步,就是要获取数据库连接.所谓的 "获取数据库连接" 其实就是创建java.sql.Connection接口的实现对象.通过Connection的实现对象,可以使Java程序连接到数据库,并修改和获取数据库信息. 获取数据库连接有两种方式:1

  • JDBC获取数据库连接由浅入深

    添加MySQL驱动: 不同的数据库厂商都会有自己的实现java.sql.Driver接口的驱动程序,例如mysql的实现就是com.mysql.jdbc.Driver,将mysql-connector-java-版本号-bin.jar添加到相应工程的目录(如果是动态web项目的话,需要将对应的jar包放到WebRoot目录下)下面,右键选择add as library就完成了(如果是使用的eclipse,则是点击build path). 在mysql8.0之后驱动程序的全路径应该是com.mys

  • JDBC获取数据库连接的5种方式实例

    目录 方式一:直接通过数据库厂商提供的相关驱动 方法二:通过反射的方式来构造Driver对象 方式三:使用DriverManager来替换Driver获取连接 方法四:省略创建Driver对象和注册驱动 方式五:通过配置文件的方式 每种方式迭代的原因 方式五的优点 总结 方式一:直接通过数据库厂商提供的相关驱动 步骤 导入相关驱动(Build Path) 创建Driver类的实例化对象 获取要连接数据库的URL 创建Properties类的实例化对象,将账号和密码封装到该对象中 通过Driver

  • 详解JDBC的概念及获取数据库连接的5种方式

    目录 一.JDBC概念 二.JDBC获取数据库连接的5种方式 方式一 方式二 方式三 方式四 方式五 一.JDBC概念 Java DataBase Connectivity(Java数据库连接技术) 它是将Java与SQL结合且独立于特定的数据库系统的应用程序编程接口(API-它是一种可用于执行SQL语句的JavaAPI,即由一组用Java语言编写的类与接口所组成) JDBC的设计目的: 它是一种规范,设计出来的主要目的是为了让各个数据库开发商为Java程序员提供标准的数据访问类和接口,使得独立

  • Mybatis update数据库死锁之获取数据库连接池等待

    最近学习测试mybatis,单个增删改查都没问题,最后使用mvn test的时候发现了几个问题: 1.update失败,原因是数据库死锁 2.select等待,原因是connection连接池被用光了,需要等待 get: 1.要勇于探索,坚持就是胜利.刚看到错误的时候直接懵逼,因为错误完全看不出来,属于框架内部报错,在犹豫是不是直接睡 觉得了,毕竟也快12点了.最后还是给我一点点找到问题所在了. 2.同上,要敢于去深入你不了解的代码,敢于研究不懂的代码. 3.距离一个合格的码农越来越远了,因为越

  • Java使用正则表达式获取子文本的方法示例

    本文实例讲述了Java使用正则表达式获取子文本的方法.分享给大家供大家参考,具体如下: 原来,group是针对()来说的,group(0)就是指的整个串,group(1) 指的是第一个括号里的东西,group(2)指的第二个括号里的东西. 最近学习正则表达式,发现Java中的一些术语与其他地方描述的有所差异.就这个问题卡了我半天,坑爹,写到博客,方便其他新学的朋友.比如Java正则表达式中的"组"概念与<正则表达式必知必会>一书中讲述的"子表达式"其实是

  • Java Spring Controller 获取请求参数的几种方法详解

    Java Spring Controller 获取请求参数的几种方法  1.直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交.若"Content-Type"="application/x-www-form-urlencoded",可用post提交 url形式:http://localhost:8080/SSMDemo/demo/addUser1?username=lixiaoxi&password=1

随机推荐