文章目录
一、JDBC概述
1.软件架构
- B/S:Browser Server(浏览器/服务器模式)
- C/S:Client Server(服务器/客户机)
2.数据的持久化
把数据保存到可掉电式存储设备中以供之后使用
3. Java中的数据存储技术
-
在Java中,数据库存取技术可分为如下几类:
-
JDBC直接访问数据库
-
JDO (Java Data Object )技术
-
第三方O/R工具,如Hibernate, Mybatis 等
-
-
JDBC是java访问数据库的基石,JDO、Hibernate、MyBatis等只是更好的封装了JDBC。
4.JDBC介绍
- JDBC(Java Database Connectivity)是一个独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口
5. JDBC体系结构
- 面向应用的API:Java API,抽象接口,供应用程序开发人员使用(连接数据库,执行SQL语句,获得结果)。
- 面向数据库的API:Java Driver API,供开发商开发数据库驱动程序用。
JDBC是sun公司提供一套用于数据库操作的接口,java程序员只需要面向这套接口编程即可。
不同的数据库厂商,需要针对这套接口,提供不同实现。不同的实现的集合,即为不同数据库的驱动。 ————面向接口编程
二、获取数据库连接
1.连接的方式
代码如下(示例):
//方式一
@Test
public void testConnection1() throws SQLException {
Driver driver = new com.mysql.jdbc.Driver();
// url:http://localhost:8080/gmall/keyboard.jpg
// jdbc:mysql:协议
// localhost:ip地址
// 3306:默认mysql的端口号
// test:test数据库
String url="jdbc:mysql://localhost:3306/test";
// 将用户名和密码封装在Properties中
Properties info=new Properties();
info.setProperty("user","root");
info.setProperty("password","123456");
Connection conn = driver.connect(url, info);
System.out.println(conn);
}
//方式二
//在如下的程序中不出现第三方的api,使得程序具有更好的移植性
@Test
public void testConnection2() throws Exception {
//获取Driver实现类的对象:使用反射
Class clazz = Class.forName("com.mysql.jdbc.Driver");
Driver driver = (Driver) clazz.newInstance();
//提供要连接的数据库
String url="jdbc:mysql://localhost:3306/test";
Properties info=new Properties();
info.setProperty("user","root");
info.setProperty("password","123456");
Connection conn = driver.connect(url, info);
System.out.println(conn);
}
//方式三
// 方式三:使用DriverManager替换Driver
@Test
public void testConnection3() throws Exception{
//获取Driver实现类的对象:使用反射
Class clazz = Class.forName("com.mysql.jdbc.Driver");
Driver driver = (Driver) clazz.newInstance();
//注册驱动
DriverManager.registerDriver(driver);
String url="jdbc:mysql://localhost:3306/test";
String user="root";
String password = "123456";
Connection conn = DriverManager.getConnection(url,user,password);
System.out.println(conn);
}
//方式四
@Test
public void testConnection4() throws Exception {
// 1.提供三个连接的基本信息:
String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String password = "abc123";
// 2.加载Driver
Class.forName("com.mysql.jdbc.Driver");//这个也可以省略,但是最好不要省略,因为只有mysql好使,其他不行
//相较于方式三,可以省略如下的操作:
// Driver driver = (Driver) clazz.newInstance();
// // 注册驱动
// DriverManager.registerDriver(driver);
//为什么可以省略上述操作呢?
/*
* 在mysql的Driver实现类中,声明了如下的操作:
* static {
try {
java.sql.DriverManager.registerDriver(new Driver());
} catch (SQLException E) {
throw new RuntimeException("Can't register driver!");
}
}
*/
// 3.获取连接
Connection conn = DriverManager.getConnection(url, user, passwo