- 在Java中,数据库存取技术分为以下几类
- JDBC直接访问数据库
- JDO (Java Data Object )技术
- 第三方O/R工具,如Hibernate, Mybatis 等
- JDBC是Java访问数据库的基石,JDO、Hibernate、MyBatis等只是更好的封装了JDBC
- JDBC是sun公司提供一套用于对数据库操作的接口,Java程序员只需要面向这套接口编程即可
- JDBC接口包括两个层次
- 面向应用:Java API,供程序员使用,为访问不同的数据库提供了一种统一的途径,为开发者屏蔽了细节问题
- 面向数据库:Java Driver API,供数据库开发商使用,不同的数据库厂商,需要针对这套接口,提供不同实现
- 这个接口是提供给数据库厂商使用的,不同数据库厂商提供不同的实现
- 是所有 JDBC 驱动程序需要实现的接口
- 提供用来注册、连接基于 JDBC驱动程序的 API
- 使用JDBC时,需要实例化该类,以加载驱动
- DriverManager 类是驱动程序管理器类,负责管理驱动程序,建立与驱动程序的连接
- 在程序中不需要直接去访问实现了 Driver 接口的类,而是由驱动程序管理器类(java.sql.DriverManager)去调用这些Driver实现
- 通过该类可以注册驱动
- public static Connection getConnection(String url, java.util.Properties info)
- public static Connection getConnection(String url, String user, String password)
2. 加载驱动mysql-connector-java-5.1.37-bin.jar
- 实例化Driver类
- 通过反射的技术:Class.forName(“com.mysql.jdbc.Driver”)
- 加载驱动时会自动的注册驱动
- 但是为了代码的健壮性,经常使用DriverManager.registerDriver(com.mysql.jdbc.Driver)注册驱动
// 因为在mysql的Driver类中有如下声明,所以加载驱动时会自动的注册驱动
static {
try {
DriverManager.registerDriver(new Driver());
} catch (SQLException var1) {
throw new RuntimeException("Can't register driver!");
}
}
4. 获取Connection对象
涉及到的类:Connection类的使用
获取Connection对象的方法:创建Connection对象
- 通过驱动管理器:DriverManager.getConnection()
- 三要素:用户名、密码、url
- JDBC URL 的说明
- JDBC URL 用于标识一个被注册的驱动程序
- 驱动程序管理器通过这个 URL 选择正确的驱动程序,从而建立到数据库的连接。
- JDBC URL 由三部分组成,【jdbc 子协议 子名称】
- 协议:JDBC URL中的协议总是jdbc
- 子协议:子协议用于标识一个数据库驱动程序
- 子名称:一种标识数据库的方法。
- 子名称可以依不同的子协议而变化
- 用子名称的目的是为了定位数据库提供足够的信息
- 包含主机名(对应服务端的ip地址),端口号,数据库名
- MySQL的url编写方式:
- jdbc:mysql://主机名称:mysql服务端口号/数据库名称?参数1=值1&参数2=值2
- jdbc:mysql://localhost:3306/atguigu?useUnicode=true&characterEncoding=utf8
- jdbc:协议
- mysql:子协议
- localhost:3306/atguigu?useUnicode=true&characterEncoding=utf8:子名称
- JDBC程序与服务器端的字符集不一致,会导致乱码,可以通过参数指定服务器端的字符集
6. 执行SQL语句 7. 对SQL语句执行结果的处理涉及到的Java类:PreparedStatement
8. 关闭资源涉及到的Java类:ResultSet、ResultSetmetaData



