JDBC和连接池011.JDBC概述
- 基本介绍
- JDBC为访问不同的数据库提供了同一的接口 , 为使用者屏蔽了细节问题
- Java程序员使用JDBC,可以连接任何提供了jdbc驱动程序的数据库系统,从而完成对数据库的各种操作
- jdbc原理图
JDBC是java提供的一套用于数据库操作的接口API,Java程序员只需要面向这套接口编程即可 。不同的数据库厂商需要针对这套接口,提供不同的实现 。
文章插图
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();}}
文章插图
- JDBC API
文章插图
文章插图
文章插图
2.JDBC快速入门2.1JDBC程序编写步骤
- 注册驱动 -- 加载Driver类
- 【day45-JDBC和连接池01】获取连接 -- 得到Connection
- 执行增删改查 -- 发送SQL命令给mysql执行
- 释放资源 -- 关闭相关连接
文章插图
例子--通过jdbc对表actor进行添加,删除和修改操作
- 首先在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;
- 下载mysql连接驱动
文章插图
- 在项目中创建libs文件夹,将驱动复制进文件夹中 , 右键点击驱动,选择ad as library
文章插图
- 在弹出的窗口中点击OK , 即可
文章插图
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();}}
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 联发科天玑1000plus和骁龙855哪个玩游戏好
- 美的踢脚线取暖器hdy22th和hdy22L区别?哪个好?
- 栗棕色和咖啡色对比-染栗棕色,咖啡色还是其他色好?
- 一加9r和红米k40哪个好_手机参数配置对比
- 真我GT2和真我GT2Pro有什么区别-参数对比
- iPhone13Pro远峰蓝好看吗_iphone13pro远峰蓝色和石墨色对比
- 魅族18和18pro区别_魅族18和18pro参数配置
- 天玑800u和天玑820对比_天玑800u和天玑820哪个好
- 华硕灵耀Pro16和联想小新Pro16哪个好_怎么选择
- 华为P50Pro和iPhone12Promax拍照测试_拍照能力对比