jdbc连接数据库
什么是jdbc? 使用java代码(程序)发送sql语句的技术,就是jdbc技术
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:数据库所在的机器的名称;
port:端口号,默认3306
---------------------------SQL Server------------------
驱动:com.microsoft.jdbc.sqlserver.SQLServerDriver
URL:jdbc:microsoft:sqlserver://<machine_name><:port>;DatabaseName=
注:machine_name:数据库所在的机器的名称;
port:端口号,默认是1433
--------------------------DB2--------------------------
驱动:com.ibm.db2.jdbc.app.DB2Driver
URL:jdbc:db2://<machine_name><:port>/dbname
注:machine_name:数据库所在的机器的名称;
port:端口号,默认是5000
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.util.Properties;
import org.junit.Test;
/*
* jdbc连接数据库
*/
public class demo {
/*
* 使用驱动程序连接数据库
*/
@Test
public void test1() throws Exception {
// 连接数据库的url-----jdbc协议:数据库子协议://主机:端口号/连接的数据库
String url = "jdbc:mysql://localhost:3306/day01";
// 设置用户名和密码
String user = "root";
String password = "";
Properties props = new Properties();
props.setProperty("user", user);
props.setProperty("password", password);
// 1.创建驱动程序类对象
Driver driver = new com.mysql.jdbc.Driver();
// 2.连接数据库
Connection conn = driver.connect(url, props);
System.out.println(conn);
}
/*
* 使用驱动管理器类连接数据库
*/
@Test
public void test2() throws Exception {
String url = "jdbc:mysql://localhost:3306/day01";
String user = "root";
String password = "";
Driver driver = new com.mysql.jdbc.Driver();
// Driver driver2 = new com.oracle.jdbc.Driver();
// 1.注册驱动程序
DriverManager.registerDriver(driver);
// DriverManager.registerDriver(driver2);//注册多个
// 2.连接到具体的数据库
Connection conn = DriverManager.getConnection(url, user, password);
System.out.println(conn);
}
@Test
public void test3() throws Exception {
String url = "jdbc:mysql://localhost:3306/day01";
String user = "root";
String password = "";
// 通过得到com.mysql.jdbc.Driver这个类的字节码对象的方式加载静态代码块,从而注册驱动程序
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(url, user, password);
System.out.println(conn);
}
}
JDBC接口核心的API
java.sql.* 和 javax.sql.*
|- Driver接口: 表示java驱动程序接口。所有的具体的数据库厂商要来实现此接口。
|- connect(url, properties): 连接数据库的方法。
url: 连接数据库的URL
URL语法: jdbc协议:数据库子协议://主机:端口/数据库
user: 数据库的用户名
password: 数据库用户密码
|- DriverManager类: 驱动管理器类,用于管理所有注册的驱动程序
|-registerDriver(driver) : 注册驱动类对象
|-Connection getConnection(url,user,password); 获取连接对象
|- Connection接口: 表示java程序和数据库的连接对象。
|- Statement createStatement() : 创建Statement对象
|- PreparedStatement prepareStatement(String sql) 创建PreparedStatement对象
|- CallableStatement prepareCall(String sql) 创建CallableStatement对象
|- Statement接口: 用于执行静态的sql语句
|- int executeUpdate(String sql) : 执行静态的更新sql语句(DDL,DML)
|- ResultSet executeQuery(String sql) :执行的静态的查询sql语句(DQL)
|-PreparedStatement接口:用于执行预编译sql语句
|- int executeUpdate() : 执行预编译的更新sql语句(DDL,DML)
|-ResultSet executeQuery() : 执行预编译的查询sql语句(DQL)
|-CallableStatement接口:用于执行存储过程的sql语句(call xxx)
|-ResultSet executeQuery() : 调用存储过程的方法
|- ResultSet接口:用于封装查询出来的数据
|- boolean next() : 将光标移动到下一行
|-getXX() : 获取列的值