JDBC学习笔记

目录

概述

获取数据库连接:

使用PreparedStatement实现CURD

操作Blob数据:

数据库事务:

DAO及其实现类:

数据库连接池

Apache-DBUtils实现crud操作:


概述

获取数据库连接:

方式一:

方式二:反射实现动态性。

方式三:

 

方式四:

方式五:通过配置文件解耦。通过获取系统类加载器,加载文件。

使用PreparedStatement实现CURD

拼接问题:

sql注入:

preparedstatement:

新建类,封装重复的数据库连接会让关闭连接操作:

关闭连接和stetement

实现update:

通用的增删改:减少ps.setobject的不确定:参数放数组里面传递给函数

查询:如何处理返回的结果集,如何实现通用所有表的查询

创建相关类以接收返回值。

接收对象

调用测试:

针对一张表的通用查询实现:把变的东西发进形参,通过反射实现列赋值的动态性。

测试:

当表的列名和orm类的属性名不一致:sql语句加别名,并且改变获取列的别名来操作

针对不同表的通用查询操作:因为不同表,所以不同类需要用参数传进来,并反射获取类属性。

查询返回同一个类的多个对象实现:

preparedstatement如何解决的sql注入:因为prepared已经进行了预编译,所以查询就变成了填空题,逻辑已经确定,

操作Blob数据:

查询blob:

一些特殊情况:插入大图片,在mysql配置文件中配置。

批量数据操作:

插入的方式三:减少和数据库连接操作。非一次插入一条。

 

方式四:

数据库事务:

传进连接,并且不再操作内部关闭连接。

Java设置数据库隔离级别:以及测试脏读

DAO及其实现类:

BaseDAO里,存放的就是就是之前实现的通用cuid方法。声明为抽象类,本身不可实例化。

然后针对不同的表写dao接口和实现类

实现类:

优化:添加泛型,因为实现类的操作类型是确定的。

获取调用的类的父类的泛型。有点疑问。

数据库连接池

连接池连接:c3p0测试

优化:使用配置文件

DBCP连接池测试:

德鲁伊连接池:

Apache-DBUtils实现crud操作:

查询测试:

接收特殊值。

自定义类型实现resulthandler接口:

调用关闭操作:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值