![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JDBC
鸭鸭老板
偏执只会左右你的思考
展开
-
JDBC的BasicDao
一、问题apache-dbutils+Druid 简化JDBC开发,存在那些不足?1.SQL语句是固定的,不能通过参数传入,通用性不好,需要进行改进,更方便执行增删改查2.对select操作,如果有返回值,返回类型不固定,需要使用泛型3.在表很多,业务需求复杂,不能单靠一个Java类来完成。...原创 2021-05-26 14:52:11 · 219 阅读 · 0 评论 -
JDBC的ApDBUtils查询和DML
一、Apache—DBUtils1.commons-dbutils是Apache组织提供的一个开源JDBC工具类库,对JDBC封装使用dbutlis可以很大简化jdbc编码工作量。DbUtils类2.QueryRunner类:封装了SQL的执行,线程安全,可以实现增,删,改,查,批处理。3.使用QueryRunner类实现查询。4.ResultSetHandler接口:接口用于处理java.sql.ResultSet,将数据按要求转换成另一种形式。二、常用方法ResultSetHan原创 2021-05-25 22:44:34 · 356 阅读 · 0 评论 -
JDBC的ApDBUtils问题
一、问题1.关闭connection后,resultSet结果集无法使用。2.resultSet不利于数据的管理原创 2021-05-24 14:42:54 · 120 阅读 · 0 评论 -
JDBC的Druid工具类
一、Druid工具类package com.jun.jdbc.datasource;import com.alibaba.druid.pool.DruidDataSourceFactory;import javax.sql.DataSource;import java.io.FileInputStream;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import j原创 2021-05-23 14:55:59 · 185 阅读 · 0 评论 -
JDBC的Druid的使用
一、DriudDruid是一个快速的列式分布式的支持实时分析的数据存储系统。它在处理PB级数据、毫秒级查询、数据实时处理方面,比传统的OLAP系统有了显著的性能改进。二、Druid的使用Druid的jar包下载地址:https://mvnrepository.com/artifact/com.alibaba/druid/1.1.10druid.properties配置文件driverClassName=com.mysql.jdbc.Driverurl=jdbc:mysql://loc原创 2021-05-22 16:20:54 · 358 阅读 · 0 评论 -
JDBC的C3P0的连接方式
一、C3P0c3p0是一个开源的JDBC连接池,它相对于DBCP和Druid来说有一个更方便的配置连接方式,就是自动读取配置文件。二·、C3P0的连接方式一jar包下载地址:https://mvnrepository.com/artifact/c3p0/c3p0/0.9.1.2package com.jun.jdbc.datasource;import com.mchange.v2.c3p0.ComboPooledDataSource;import java.io.FileIn原创 2021-05-21 22:05:22 · 132 阅读 · 0 评论 -
JDBC的数据库连接池
一、数据库连接池1.预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需要从缓冲池中取出一个,使用完后放回去。2.数据库连接池负责分配,管理和释放数据库连接,允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个。3.当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中。...原创 2021-05-21 11:14:25 · 59 阅读 · 0 评论 -
JDBC的传统连接弊端
一、传统连接弊端1.传统的JDBC数据库连接使用DriverManager来获取,每次向数据库建立连接的时候都要将Connection加载到内存中,再验证ip地址,用户名和密码(0.05s~1s)。需要数据库连接的时候,就像数据库要求一个,频繁的进行数据库连接操作将占有很多的系统资源,容易造成服务器崩溃。2.每一次数据库连接,使用完后都要断开,假如程序出现异常而没能关闭,将会导致数据库内存泄漏,将导致重启数据库。3.传统获取连接的方式,不能控制创建的连接数量,假如连接过多可能导致内存泄漏,MyS原创 2021-05-20 19:48:53 · 714 阅读 · 0 评论 -
JDBC的批处理
一、批处理1.当需要成批插入或者更新记录时,可以采用Java的批处理更新机制,这个机制允许多条语句一次性提交给数据库批量处理。比单独提交处理更有效率。2.JDBC的批量处理的方法:addBatch():添加需要批量处理的SQL语句或参数。executeBatch():执行批量处理语句。clearBatch():清空批量处理包的语句。3.JDBC连接Mysql时,假如需要使用批处理功能,在url中加参数,?rewriteBatchedStatements=true4.批处理往往和P原创 2021-05-19 20:36:12 · 1832 阅读 · 7 评论 -
JDBC的事务与处理
一、事务1.JDBC程序中当一个Connection对象创建时,默认自动提交事务;每次执行SQL语句时,如果成功,就会向数据库自动提交,不能回滚。2.JDBC程序中为了让多个SQL语句作为一个整体执行,需要使用事务。3.调用Connection的setAutoCommit(false)可以取消自动提交事务。4.在所有的SQL语句都执行成功后,调用commit();方法提交事务。5.在其中某个操作失败或出现异常时,调用rollback();方法回滚事务。...原创 2021-05-18 22:14:19 · 2492 阅读 · 0 评论 -
JDBC的JDBCUtils工具类
一、JDBCUtils在JDBC中获取连接和释放资源经常使用,可以创建一个工具类。原创 2021-05-18 00:48:41 · 574 阅读 · 0 评论 -
JDBC的PreparedStatement查询和DML
一、PreparedStatement1.PreparedStatement执行sql语句中的参数用(?)表示,调用PreparedStatement对象的setxx()方法来设置参数,setxx()两个参数,第一个参数要设置sql语句中的参数的索引(从1开始),第二个要设置sql语句中的参数的值。2.调用executeQuery(),返回ResultSet对象3.调用executeUpdate():执行更新。二、预处理的优势1.不使用+拼接sql语句,降低了语法错误。2.解决了sq原创 2021-05-16 21:40:24 · 206 阅读 · 0 评论 -
JDBC的Statement
一、Statement1.Statement对象,用于执行静态sql语句并返回其生成的结果的对象。2.在建立连接后,需要对数据库进行访问,执行命令或是sql语句,可以通过(1).Statement【存在sql注入】(2).PreparedStatement[预处理](3).CallableStatement[存储过程]3.Statement对象执行sql语句,存在sql注入风险。...原创 2021-05-16 19:58:58 · 2647 阅读 · 0 评论 -
JDBC的SQL注入
一、SQL注入是指利用某些系统没有对用户输入数据进行充分的检查,而在用户输入数据中注入非法的sql语句或命令,恶意攻击数据库。原创 2021-05-16 19:25:11 · 226 阅读 · 0 评论 -
JDBC的ResultSet
一、ResultSet[结果集]1.表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。2.ResultSet对象保持一个光标指向其当前的数据行,最开始光标在第一行。3.next方法将光标移动到下一行,由于在ResultSet对象中没有更多行时返回false,可以在while循环中使用循环来遍历结果集。...原创 2021-05-16 00:21:54 · 5033 阅读 · 1 评论 -
JDBC连接方式5 配置文件连接
一、JDBC连接方式5通过配置文件连接配置文件mysql.propertiesuser=rootpassword=123456url=jdbc:mysql://localhost:3366/jun_db02driver=com.mysql.jdbc.Driverpackage com.jun.jdbc;import java.io.FileInputStream;import java.sql.Connection;import java.sql.DriverManager原创 2021-05-15 17:56:44 · 197 阅读 · 0 评论 -
JDBC连接方式4 自动注册驱动(推荐使用)
一、JDBC连接方式4使用Class.forName 自动完成注册驱动,简化代码package com.jun.jdbc;import java.sql.Connection;import java.sql.DriverManager;/** * JDBC连接方式4 */public class Jdbc04 { public static void main(String[] args) throws Exception { //使用Class.forNa原创 2021-05-15 17:04:01 · 344 阅读 · 0 评论 -
JDBC连接方式3 DriverManager连接
一、JDBC连接方式3使用DriverManager替代driver统一管理package com.jun.jdbc;import java.sql.Connection;import java.sql.Driver;import java.sql.DriverManager;/** * JDBC连接方式3 */public class Jdbc03 { public static void main(String[] args) throws Exception {原创 2021-05-15 16:18:47 · 269 阅读 · 0 评论 -
JDBC连接方式2反射连接
一、JDBC连接方式2使用反射加载Driver类,动态加载,减少依赖,更加灵活package com.jun.jdbc;import java.sql.Connection;import java.sql.Driver;import java.util.Properties;/** * JDBC连接方式2 */public class Jdbc02 { public static void main(String[] args) throws Exception{原创 2021-05-15 15:58:20 · 198 阅读 · 0 评论 -
JDBC连接方式1 Driver类连接
一、JDBC编写步骤1.注册驱动 -》加载Driver类2.获取连接 -》得到Connection3.执行增删改查 -》发送SQL给数据库执行4.释放资源 -》关闭连接二、JDBC入门原创 2021-05-15 15:34:58 · 508 阅读 · 0 评论 -
JDBC模拟实现
一、JDBC带来的好处1.java直接访问数据库(不可取)2.JDBC是Java提供的用于数据库操作的接口API,程序员只需要面向接口编程,不同数据库,需要对这个接口提供不同的实现。二、JDBC APIJDBC API是一系列的接口,它统一和规范应用程序与数据库的连接,执行sql语句,得到返回结果等各类操作,相关类和接口在java.sql与javax.sql包中。三、JDBC模拟实现/** * 规定jdbc的接口 */public interface JdbcIn原创 2021-05-15 11:39:31 · 197 阅读 · 0 评论 -
JDBC的原理
一、JDBC是什么?1.为我们访问不同的数据库提供了统一的接口,为使用者隐蔽了细节。2.程序员使用JDBC,可以连接提供了JDBC驱动程序的数据库系统,完成对数据库的各种操作。二、JDBC的基本原理...原创 2021-05-15 00:47:52 · 152 阅读 · 0 评论