javaweb(一):db数据库连接类

  • 首先将sqljdbc.jar复制粘贴到如下位置:

package db;

import java.sql.Connection;
import java.sql.DriverManager;

public class DBConnection {
	/*Driver接口:java.sql.Driver是所有JDBC驱动程序需要实现的接口,这个接口提供给不同的数据库厂商,他们使用的接口名不同。
	-:SQLserver的JDBC驱动的类名:"com.microsoft.sqlserver.jdbc.SQLServerDriver"
	-:Oracle的JDBC驱动的类名:"oracle.jdbc.driver.OracleDriver"
	-:MySQL的JDBC驱动的类名:"com.mysql.jdbc.Driver"*/
	public static final String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
	/*JDBC连接数据库的URL表现形式通常分为三个部分(通常用:分开):
	1:协议:在JDBC中唯一允许的协议只能为jdbc.
	2:子协议:子协议用于标识一个数据库驱动程序
	3:子名称:具体看下面
		-:连接SQLserver: "jdbc:sqlserver://localhost:1433;DatabaseName=user"
		-:连接Oracle: "jdbc:thin:@localhost:1521:ORCL"
		-:连接MySQL: "jdbc:mysql://localhost:3306/databasename"*/
	public static final String URL = "jdbc:sqlserver://localhost:1433;databaseName=info";
	//数据库登录用户名
	public static final String USERNAME = "sa";
	//数据库登录密码
	public static final String PASSWORD = "123456";  
	public static Connection getConnection(){
		Connection conn = null;
		if(conn==null){
			try {
				Class.forName(DRIVER); //加载驱动程序:强制JVM将DRIVER这个类加载入内存,以便将其注册到DriverManager类上去
				conn = DriverManager.getConnection(URL,USERNAME,PASSWORD);  //连接数据库
			} catch (Exception e) {
					e.printStackTrace();
			}
		}
		return conn;
	}
	
	public static void main(String[] args) {
		getConnection();

	}

}
  • 为什么要使用Class.forName()?

答:JDBC提供的DriverManager类用于跟踪所有可用的JDBC驱动,并在用户需要时选择合适的驱动提供给用户
但是其跟踪不是自动的,必须由可用的JDBC驱动的Driver类自己在DriverManager上进行注册。但是这个注册过程一般是由Driver类加载的时候自动完成的。
Class.forName(DRIVER); 这句就是为了加载这个类进入内存用的。

  • 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数据库的连接,并返回连接对象。与数据库建立连接成功后的运行结果如图1.36所示。

 

本示例的关键代码如下:

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;
}

 

参考:https://book.2cto.com/201309/31830.html 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值