1、JDBC连接数据库步骤
-
加载JDBC驱动程序
-
建立数据库连接Connection
-
创建执行SQL的语句Statement
-
处理执行结果ResultSet
-
释放资源
2、在项目里配置数据库驱动
右击项目->Build Path->Add Exteranl JARs
3、加载驱动 (只做一次)
Mysql驱动名:com.mysql.jdbc.Driver
方式一:Class.forName(“com.MySQL.jdbc.Driver”);
推荐这种方式,不会对具体的驱动类产生依赖。
方式二:DriverManager.registerDriver(com.mysql.jdbc.Driver);
会造成DriverManager中产生两个一样的驱动,并会对具体的驱动类产生依赖。
public class jdbcTest {
private static String jdbcName="com.mysql.jdbc.Driver";
public static void main(String[] args) {
try {
Class.forName(jdbcName);
System.out.println("加载驱动成功");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("加载驱动失败");
}
}
}
4、建立连接
Connection conn = DriverManager.getConnection(url, user, password);
URL用于标识数据库的位置,通过URL地址告诉JDBC程序连接哪个数据库,URL的写法为:
其他参数如:useUnicode=true&characterEncoding=utf8
5、连接和关闭数据库
1,DriverManager 驱动管理类,主要负责获取一个数据库的连接;
static Connection getConnection(String url, String user, String password)
试图建立到给定数据库 URL 的连接。
2,MySQL 数据库的连接地址格式
jdbc:mysql://IP 地址:端口号/数据库名称
private static String dbUrl="jdbc:mysql://localhost:3306/book";
- jdbc 协议:JDBC URL 中的协议总是 jdbc ;
- 子协议:驱动程序名或数据库连接机制(这种机制可由一个或多个驱动程序支持)的名称,如 mysql;
- 子名称:一种标识数据库的方法。必须遵循“//主机名:端口/子协议”的标准 URL 命名约定,如 //localhost:3306/db_book
3,Connection 接口 与特定数据库的连接(会话)。
void close()
立即释放此 Connection 对象的数据库和 JDBC 资源,而不是等待它们被自动释放。
例2:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class jdbcTest {
//数据库地址
private static String dbUrl="jdbc:mysql://localhost:3306/book";
//用户名
private static String dbUserName="root";
//密码
private static String dbPassword="root";
//驱动名称
private static String jdbcName="com.mysql.jdbc.Driver";
public static void main(String[] args) {
try {
Class.forName(jdbcName);
System.out.println("加载驱动成功");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("加载驱动失败");
}
Connection con=null;
try {
//获取数据库连接
con=DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
System.out.println("获取数据库连接成功");
System.out.println("进行数据库操作");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
运行结果: