首先要知道jdbc:使用Java代码发送sql语句的技术就是jdbc技术。即jdbc是一个接口,用于不同的数据库(oracle、mysql、sqlserver。。)的操作。使用jdbc发送sql语句的前提:
登录数据库服务器(连接数据库服务器)
数据库的IP地址
端口
数据库用户名
密码
JDBC的URL=协议名+子协议名+数据源名。
a 协议名总是“jdbc”。
b 子协议名由JDBC驱动程序的编写者决定。
c 数据源名也可能包含用户与口令等信息;这些信息也可单独提供。
几种常见的数据库连接
——————————-oracle——————
驱动:oracle.jdbc.driver.OracleDriver
URL:jdbc:oracle:thin:@machine_name:port:dbname
注:machine_name:数据库所在的机器的名称;
port:端口号,默认是1521
——————————-mysql——————-
驱动:com.mysql.jdbc.Driver
URL:jdbc:mysql://machine_name:port/dbname
注:machine_name:数据库所在的机器的名称(本机一般默认为localhost);
port:端口号,默认3306
—————————SQL Server——————
驱动:com.microsoft.jdbc.sqlserver.SQLServerDriver
URL:jdbc:microsoft:sqlserver://<:port>;DatabaseName=
注:machine_name:数据库所在的机器的名称;
port:端口号,默认是1433
————————–DB2————————–
驱动:com.ibm.db2.jdbc.app.DB2Driver
URL:jdbc:db2://<:port>/dbname
注:machine_name:数据库所在的机器的名称;(port默认5000)
这里以Mysql为例。
所需jar包:mysql-connector-java-5.1.7-bin.jar
代码如下:
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.util.Properties;
import org.junit.Test;
public class Demo1{
//首先连接到数据库的URL
private String url = "jbdc:mysql://localhost:3306/demo";/*jdbc协议:数据库子协议:主机:端口/连接的数据库*/
private String user = "root";//数据库用户名
private String password = "root";//数据库密码
/*
第一种方法
*/
@Test
public void test1() throws Exception{
//1.创建驱动程序类对象
Driver driver = new com.mysql.jdbc.Driver();//需要导入上面提到的jar包
//设置用户名和密码
Properties pro = new Properties();
pro.setProperty("user",user);
pro.setProperty("password",password);
//2.连接数据库
Connection conn = driver.connect(url,pro);
//测试是否连接成功
System.out.println(conn);
}
/*
第二种方法(使用驱动管理器类连接数据库)
*/
@Test
public void test2() throws Exception{
//创建驱动程序类对象
Dirver dirver = new com.mysql.jdbc.Dirver();
/*Mysql*/
//Driver driver2 = new com.oracle.jdbc.Driver();/*oracle*/
//1.注册驱动程序(可以注册多个)
DirverManager.registerDirver(dirver);
//2.建立连接到数据库
Connection conn = DriverManager.getConnection(url, user, password);
//测试是否连接成功
System.out.println(conn);
}
}
运行后,成功结果应该会显示类似信息:
分析:在test2方法中,创建驱动程序类对象new com.mysql.jdbc.Dirver(); 后在进行注册驱动程序DirverManager.registerDirver(dirver); 实际上已经注册了两次。因为在Driver.class文件中有如下一段静态代码块:
// ---------------------------------------------
//
// Register ourselves with the DriverManager
//
static {
try {
java.sql.DriverManager.registerDriver(new Driver());
} catch (SQLException E) {
throw new RuntimeException("Can't register driver!");
}
}
即在进行创建驱动程序类对象Driver的时候就执行了registerDriver(new Driver());,所以第二种方法中省略DirverManager.registerDirver(dirver);语句也正确。
基于以上分析,可以采用 通过得到字节码对象的方式加载静态代码块,从而注册驱动程序,即把创建驱动类对象语句换成Class.forName(“com.mysql.jdbc.Driver”);括号内双引号语句为Dirver.Class文件所在的包名(上面所提到的jar包里面)即可。完整代码如下:
@Test
public void test3() throws Exception{
//通过得到字节码对象的方式加载静态代码块,从而注册驱动程序
Class.forName("com.mysql.jdbc.Driver");
//2.连接到具体的数据库
Connection conn = DriverManager.getConnection(url, user, password);
System.out.println(conn);
}
据此,这部分的连接已经成功了。对代码进行简单的分析有助于理解记忆而不是死记硬背达到活学活用。本例以Mysql数据库进行,其他数据库类似。