赞
踩
JDBC(Java Data Base Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
Java对外指定一些编程标准,其它数据库服务器厂商按照这个标准,编写对应的实现方案。这样对于Java程序员而言,只需要学习Java的标准即可,不需要了解不同厂商的实现细节。一切操作都是在学习接口开发。按照接口指定的标准完成指定需要完成的业务即可。
JDBC和ODBC的区别和联系:
ODBC:
它使用 C 语言接口,是一组对数据库访问的标准API,这些API通过SQL来完成大部分任务,而且它本身也支持SQL语言,支持用户发来的SQL。ODBC定义了访问数据库API的一组规范,这些API独立于形色各异的DBMS和编程语言。
JDBC:
是Java与数据库的接口规范,JDBC定义了一个支持标准SQL功能的通用低层API,它由Java 语言编写的类和接口组成,旨在让各数据库开发商为Java程序员提供标准的数据库API。
常见JDBC驱动:
更多资料添加QQ:1708434248 v:magejava
Java程序员如果想要和数据库打交道就必须要掌握JDBC。
如果你的业务模型中需要将数据持久化存储就必须掌握JDBC。
- 1) 手动导入需要连接数据库的jar包
- 2) 加载驱动
- 3) 创建连接对象
- 4) 声明sql语句
- 5) 创建处理sql语句对象
- 6) 发送sql语句,接收返回结果
- 7) 处理结果
- 8) 关闭资源连接
连接oracle就导入jdbc的jar包,参照附录到安装对应数据库可以在内部找到jar包;
连接mysql就导入mysql-connector的jar包,到官网下载对应版本jar包,或在maven仓库下载jar包。
- @Test
- public void searchOne() {
-
- //提升作用域 方便后期关闭资源
- Connection conn = null;
- Statement stmt = null;
- ResultSet rs = null;
- try {
-
- //1.加载驱动
- Class.forName("com.mysql.jdbc.Driver");
- //2:获取连接对象
- conn = DriverManager.getConnection(
- "jdbc:mysql://localhost:3306/note",
- "root","root");
- //3:声明sql语句
- String sql = "SELECT * FROM TB_USER WHERE ID = 1";
- //4:创建处理对象
- stmt = conn.createStatement();
- //5:发送sql语句获取结果集(如果是查询操作才存在结果集)
- rs = stmt.executeQuery(sql);
- //6. 迭代结果集
- while(rs.next()) {
-
- //7:分析结果集
- System.out.println(rs.getString("name"));
- }
- } catch (ClassNotFoundException e) {
-
- e.printStackTrace();
- } catch (SQLException e) {
-
- e.printStackTrace();
- }finally {
-
- //8:关闭资源
- try {
-
- if(rs!=null)
- rs.close();
- if(stmt!=null)
- stmt.close();
- if(conn!=null)
- conn.close();
- } catch (SQLException e) {
-
- e.printStackTrace();
- }
- }
- }
A. 为什么要加载驱动?
I. 通过Class.forName("Driver类的路径名");
II.查看Mysql的Driver类
- public class Driver extends NonRegisteringDriver implements java.sql.Driver {
-
- //在初始化的时候,就将当前数据库对象的驱动加载到sql的注册中心中去
- static {
-
- try {
-
- java.sql.DriverManager.registerDriver(new Driver());
- } catch (SQLException E) {
-
- throw new RuntimeException("Can't register driver!");
- }
- }
- }
B.获取连接源码
- //获取连接就是会将连接信息包装为Properties
- public static Connection getConnection(String url,
- String user, String password) throws SQLException {
-
- java.util.Properties info = new java.util.Properties();
-
- if (user != null) {
-
- info.put("user", user);
- }
- if (password != null) {
-
- info.put("password", password);
- }
-
- return (getConnection(url, info, Reflection.getCallerClass()));
- }
C.常见对象:
对象名称获取方式用途DriverManager用来管理JDBC驱动的服务类,主要用来获取Connection。ConnectionDriverManager.getConnection(url,name,pwd);代表一个物理连接会话,如果要操作数据库必须先获取数据库连接对象。StatementConnection.createStatement();用于执SQL语句的对象。常见的有Statement、PreparedStatement、CallableStatementResultSet(针对查询)Statement.executQuery(sql);结果集对象,包含了对于访问查询结果的方法。
- @Test
- public void updateNameById() {
-
- //1:声明用户修改的id
- Integer id = 1;
- //2:声明修改后的名称
- String newName= "大锤";
- //3:声明连接对象
- Connection conn = null;
- Statement stmt = null;
- try {
-
- //4:加载驱动
- Class.forName("com.mysql.jdbc.Driver");
- //5:获取连接对象
- conn = DriverManager.getConnection(
- "jdbc:mysql://localhost:3306/note",
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。