day45-JDBC和连接池01

JDBC和连接池011.JDBC概述

  • 基本介绍
  1. JDBC为访问不同的数据库提供了同一的接口 , 为使用者屏蔽了细节问题
  2. Java程序员使用JDBC,可以连接任何提供了jdbc驱动程序的数据库系统,从而完成对数据库的各种操作
  • jdbc原理图
    JDBC是java提供的一套用于数据库操作的接口API,Java程序员只需要面向这套接口编程即可 。不同的数据库厂商需要针对这套接口,提供不同的实现 。

day45-JDBC和连接池01

文章插图
jdbc模拟实现
模拟JDBC驱动:
package jdbc.myjdbc;/** * 我们规定的jdbc接口(方法)规范 */public interface JdbcInterface {//连接public Object getConnection();//crudpublic void crud();//关闭连接public void close();}模拟Mysql驱动:
package jdbc.myjdbc;/** * 模拟 mysql数据库实现jdbc接口[由mysql厂商开发] */public class MysqlJdbcImpl implements JdbcInterface{@Overridepublic Object getConnection() {System.out.println("得到 mysql 的连接");return null;}@Overridepublic void crud() {System.out.println("完成 mysql 的增删改查");}@Overridepublic void close() {System.out.println("关闭 mysql 的连接");}}模拟Oracle驱动:
package jdbc.myjdbc;/** * 模拟实现oracle的连接驱动-即实现规范接口 */public class OracleJdbcImpl implements JdbcInterface{@Overridepublic Object getConnection() {System.out.println("得到 oracle 的连接");return null;}@Overridepublic void crud() {System.out.println("完成 oracle 的增删改查");}@Overridepublic void close() {System.out.println("关闭 oracle 的连接");}}模拟java程序使用各种数据库驱动连接数据库:
package jdbc.myjdbc;public class TestJdbc {public static void main(String[] args) {//完成mysql的操作JdbcInterface jdbcInterface = new MysqlJdbcImpl();jdbcInterface.getConnection();// 通过接口来调用实现类[动态绑定]jdbcInterface.crud();jdbcInterface.close();System.out.println("==============");//完成oracle的操作jdbcInterface = new OracleJdbcImpl();jdbcInterface.getConnection();// 通过接口来调用实现类[动态绑定]jdbcInterface.crud();jdbcInterface.close();}}
day45-JDBC和连接池01

文章插图
  • JDBC API
jdbc api是一系列的接口,它统一和规范了应用程序与数据库的连接、执行SQL语句 , 并得到返回结果等各类操作 , 相关类和接口在java.sql与javax.sql包中 。
day45-JDBC和连接池01

文章插图

day45-JDBC和连接池01

文章插图

day45-JDBC和连接池01

文章插图
2.JDBC快速入门2.1JDBC程序编写步骤
  1. 注册驱动 -- 加载Driver类
  2. 【day45-JDBC和连接池01】获取连接 -- 得到Connection
  3. 执行增删改查 -- 发送SQL命令给mysql执行
  4. 释放资源 -- 关闭相关连接

day45-JDBC和连接池01

文章插图
例子--通过jdbc对表actor进行添加,删除和修改操作
  1. 首先在SQL yog使用mysql数据库创建一个演员actor表
-- 创建测试表 演员表CREATE TABLE actor( id INT PRIMARY KEY AUTO_INCREMENT, `name` VARCHAR(32) NOT NULL DEFAULT '', sex CHAR(1) NOT NULL DEFAULT '女', borndate DATETIME, phone VARCHAR(12));SELECT * FROM actor;
  1. 下载mysql连接驱动

day45-JDBC和连接池01

文章插图
  1. 在项目中创建libs文件夹,将驱动复制进文件夹中 , 右键点击驱动,选择ad as library
    day45-JDBC和连接池01

    文章插图
  2. 在弹出的窗口中点击OK , 即可
    day45-JDBC和连接池01

    文章插图
package li.jdbc;import com.mysql.jdbc.Driver;import java.sql.Connection;import java.sql.SQLException;import java.sql.Statement;import java.util.Properties;/** * 这是第一个jdbc程序,完成简单的操作 */public class jdbc01 {public static void main(String[] args) throws SQLException {//前置工作:在项目下创建一个文件夹如 libs//将mysql.jar拷贝到该目录下,点击add to project.. 加入到项目中//1.注册驱动Driver driver = new Driver();//创建一个driver对象//2.得到连接/*** jdbc:mysql://是规定好的协议,表示通过jdbc的方式来连接mysql* localhost 表示要连接到的主机ip地址* 3306 表示mysql监听的端口* hsp_db02 表示连接到 mysql DBMS的哪个数据库*/// mysql的连接本质就是socket的连接String url = "jdbc:mysql://localhost:3306/hsp_db02";//将用户名和密码放入到一个Properties对象中Properties properties = new Properties();// user 和 password 是规定好的,后面的值根据实际情况写properties.setProperty("user", "root");//用户properties.setProperty("password", "123456");//密码Connection connect = driver.connect(url, properties);//3.执行sqlString sql = "insert into actor values(null,'刘德华','男','1970-11-11','110')";//String sql = "update actor set name ='周星驰' where id = 1 ";//String sql = "delete from actor where id = 1 ";//Statement 用于执行静态SQL语句并返回其生成的结果的对象Statement statement = connect.createStatement();int rows = statement.executeUpdate(sql);//如果是dml语句,返回的就是影响的行数System.out.println(rows > 0 ? "成功" : "失败");//4.关闭连接资源statement.close();connect.close();}}

推荐阅读