JDBC详解 逃离我推掉我的手 2023-09-28 11:16 104阅读 0赞 ## JDBC ## ### 1、什么是JDBC? ### JDBC 全称是 java DataBase Connectivity,是java连接数据库的规范和 API。该规范中定义了一系列的接口,由数据库厂商根据自身数据库的特点提供实现类。开发者根据接口调用方法,就可以屏蔽不同数据库的差异。这样,无论连接和操作哪种数据库,都是一套API 。 ### 2、什么是数据库驱动包? ### 驱动包是数据库厂商针对 JDBC 规范所写的实现类。连接不同数据库时,应该使用不同数据库厂商提供的驱动包。 ### 3、JDBC开发流程: ### 1、建立连接 2、执行 SQL 语句,操作数据库数据 3、关闭连接 ### JDBC操作 ### 1、建立连接 //加载驱动 Class.forName("com.mysql.jdbc.Driver"); //建立连接 localhost表示连接数据库所在服务器的IP地址 12345为连接端口 //mydb表示连接mysql 数据库的库名 characterEncoding=utf-8 设置编码号 //root表示登录mysql 的用户名 1234表示登录mysql 的密码 Connection con = DriverManager.getConnection("jdbc:mysql://localhost:12345 /mydb?characterEncoding=utf-8","root","1234"); 2、执行 SQL 语句,操作数据库数据 //执行SQL 语句 PreparedStatement ps = con.prepareStatement("insert into t_link (l_name,l_birthday,l_gender,l_phone)"+"values (?,?,?,?)"); //填充占位符 ps.setObject(1,linkObj.getName()); ps.setObject(2,linkObj.getBirthday()); ps.setObject(3,linkObj.getGender()); ps.setObject(4,linkObj.getPhone()); //更新数据库,将数据真正写入数据库 //注意:除了执行查询语句增、删、改都需要更新数据库 ps.executeUpdate(); 3、关闭连接 try { if (rs != null) { rs.close(); } if (ps != null){ ps.close(); } if (con != null){ con.close(); } } catch (SQLException e) { e.printStackTrace(); } ## JDBC封装 ## 通过封装父类,子类继承父类实现 具体代码: public class BaseDao { //连接对象 protected Connection con; //SQL 语句执行对象 protected PreparedStatement ps; //结果集 protected ResultSet rs; public void setConnection(){ try { Class.forName("com.mysql.jdbc.Driver"); this.con = DriverManager.getConnection("jdbc:mysql://localhost:12345/ mydb?characterEncoding=utf-8","root","1234"); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } } public void closeConnection(){ try { if (rs != null) { rs.close(); } if (ps != null){ ps.close(); } if (con != null){ con.close(); } } catch (SQLException e) { e.printStackTrace(); } } } ## SQL注入 ## 在JDBC 执行 SQL 语句时,如果以拼接字符串方式插入值,一旦值中有 SQL 语句的关键字,会导致 SQL 语句语法错误,或执行不正确的情况,这称为 SQL 注入攻击。 Statement 和 PreparedStatement 的区别 Statement 是 PreparedStatement 的父接口。Statement 执行 SQL 语句时,只能以拼接字符串方式插入值,效率低,而且容易引起 SQL 注入。 PreparedStatement 提供了占位符方式插入 SQL 语句的值。无论什么值,都要当字符串处理。不会引起 SQL 注入
相关 JDBC详解 目录 一、JDBC简介 二、JDBC的快速入门 三、DriverManager详解 1. 注册驱动 2.获取数据库连接 四、Connection详解 1.获 不念不忘少年蓝@/ 2024年03月30日 17:28/ 0 赞/ 65 阅读
相关 JDBC详解 目录 一、JDBC基本概念 1、概念 2、JDBC本质 二、JDBC快速入门 1、步骤 2、代码示例 三、JDBC各个对象详解 1、DriverManager驱 红太狼/ 2023年10月19日 08:05/ 0 赞/ 96 阅读
相关 JDBC详解 JDBC 1、什么是JDBC? JDBC 全称是 java DataBase Connectivity,是java连接数据库的规范和 API。该规范中定义了一系列的 逃离我推掉我的手/ 2023年09月28日 11:16/ 0 赞/ 105 阅读
相关 JDBC详解 一、介绍 为了能让 程序 操作 数据库,对数据库中的 表 进行操作,每一种数据库都会提供一套连接和操作该数据库的驱动。而且每种数据库的驱动都各不相同,例如:mysql数据 骑猪看日落/ 2022年12月23日 07:09/ 0 赞/ 193 阅读
相关 JDBC 详解 首先是官方文档: [https://docs.oracle.com/javase/tutorial/jdbc/basics/index.html][https_docs.or 蔚落/ 2022年10月22日 04:10/ 0 赞/ 182 阅读
相关 java - JDBC详解 一、相关概念 1.什么是JDBC JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以 Dear 丶/ 2022年02月24日 09:05/ 0 赞/ 175 阅读
相关 JDBC详解 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用 你的名字/ 2021年12月15日 14:29/ 0 赞/ 252 阅读
相关 JDBC详解 【一】JDBC介绍 1.JDBC(Java Data Base Connectivity,java数据库连接)是一种执行SQL语句的JavaAPI,可以为多种关系型数据库 水深无声/ 2021年10月01日 06:16/ 0 赞/ 406 阅读
还没有评论,来说两句吧...