正文
这篇博文主要记录以及分享下模板模式在jdbc中的应用
最简单的jdbc的应用步骤如下:
1、连接数据库之前首先要确定URL,即所需要连接数据库的地址以及数据库名称,其次提供用户名及密码
然后获取到Connection对象的实例:conn
2、随后执行sql语句,获取到结果集ResultSet rs;
3、将结果集rs中的数据一个一个的set进实体类中
但是这样用的一个最大的缺点就是不能实现代码的复用,在一个项目中,连接数据库的操作可能有几百上千
次,要写几百上千这样相似的代码很显然是很糟糕的。这样应用模板模式将上述代码实现简单的封装便显得
很有必要了,但是这只是最初级的封装,具体的优化还是要看具体的项目
初级版jdbc应用:
在调试这段代码的时候我发现在反射调用函数给实体类赋值的时候老是出现参数不匹配的
异常(argument type mismatch),于是我就给每一个获取到的Object 进行className的打印,
最终发现在Mysql中如果int型字段设置成了unsigned 那么类型就变成了long
PS:部分代码借鉴老邓,纯手打嘿嘿
首先目录结构如下图所示
程序执行步骤
最简单的jdbc的应用步骤如下:
1、连接数据库之前首先要确定URL,即所需要连接数据库的地址以及数据库名称,其次提供用户名及密码
然后获取到Connection对象的实例:conn
2、随后执行sql语句,获取到结果集ResultSet rs;
3、将结果集rs中的数据一个一个的set进实体类中
但是这样用的一个最大的缺点就是不能实现代码的复用,在一个项目中,连接数据库的操作可能有几百上千
次,要写几百上千这样相似的代码很显然是很糟糕的。这样应用模板模式将上述代码实现简单的封装便显得
很有必要了,但是这只是最初级的封装,具体的优化还是要看具体的项目
源代码如下:
初级版jdbc应用:
|
|
改进之后如下:
AbstractTemplate.java
|
|
JdbcTemplate.java
|
|
jdbaTest.java
|
|
实体类user.java
|
|
数据库模型
文末分享
在调试这段代码的时候我发现在反射调用函数给实体类赋值的时候老是出现参数不匹配的
异常(argument type mismatch),于是我就给每一个获取到的Object 进行className的打印,
最终发现在Mysql中如果int型字段设置成了unsigned 那么类型就变成了long