对SpringDAO层支持的总结
- public interface JdbcOperations {
- //接口定义行为集
- public Object execute() throws SQLException ;
- }
- public abstract class AbstractJdbcOperations implements JdbcOperations {
- @Override
- public final Object execute() throws SQLException {
- Connection conn = DataSourceUtils.getConnection();
- try {
- Object retVal = doInConnection(conn);
- conn.commit();
- return retVal;
- }catch (Exception e) { conn.rollback(); throw e;}
- finally { conn.close(); }
- }
- public abstract Object doInConnection(Connection conn) throws SQLException;
- }
- public class DataSourceUtils {
- public static Connection getConnection() {
- //返回数据库连接
- return null;
- }
- }
- JdbcOperations select = new AbstractJdbcOperations() {
- @Override
- public Object doInConnection(Connection conn) throws SQLException {
- PreparedStatement pstmt =
- conn.prepareStatement("select * from tbl_user");
- ResultSet rs = pstmt.executeQuery();
- List result = null;
- //处理结果集
- return result;
- }
- };
- select.execute();
- public interface JdbcOprations2 {
- //接口定义行为集
- public Object execute(ConnectionCallback callback) throws Exception ;
- }
- public interface ConnectionCallback {
- public Object doInConnection(Connection conn) throws SQLException;
- }
- public class JdbcTemplate implements JdbcOprations2 {
- @Override
- public Object execute(ConnectionCallback callback) throws Exception {
- Connection conn = DataSourceUtils.getConnection();
- try {
- Object retVal = callback.doInConnection(conn);
- conn.commit();
- return retVal;
- }
- catch (Exception e) {
- conn.rollback();
- throw e;
- }
- finally {
- conn.close();
- }
- }
- }
- jdbcTemplate.execute(new ConnectionCallback() {
- @Override
- public Object doInConnection(Connection conn) throws SQLException {
- //可变操作
- return null;
- }
- });
- public interface PreparedStatementCallback {
- public Object doInPreparedStatement(PreparedStatement pstmt)
- throws SQLException;
- }
缺点:灵活但不通用

对SpringDAO层支持的总结的更多相关文章
- TensorRT层和每个层支持的精度模式
下表列出了TensorRT层和每个层支持的精确模式.它还列出了该层在深度学习加速器(DLA)上运行的能力.有关附加约束的更多信息,请参见 DLA Supported Layershttps://doc ...
- [Abp vNext 源码分析] - 5. DDD 的领域层支持(仓储、实体、值对象)
一.简要介绍 ABP vNext 框架本身就是围绕着 DDD 理念进行设计的,所以在 DDD 里面我们能够见到的实体.仓储.值对象.领域服务,ABP vNext 框架都为我们进行了实现,这些基础设施都 ...
- Caffe学习系列(4):激活层(Activiation Layers)及参数
在激活层中,对输入数据进行激活操作(实际上就是一种函数变换),是逐元素进行运算的.从bottom得到一个blob数据输入,运算后,从top输入一个blob数据.在运算过程中,没有改变数据的大小,即输入 ...
- 转 Caffe学习系列(4):激活层(Activiation Layers)及参数
在激活层中,对输入数据进行激活操作(实际上就是一种函数变换),是逐元素进行运算的.从bottom得到一个blob数据输入,运算后,从top输入一个blob数据.在运算过程中,没有改变数据的大小,即输入 ...
- caffe中关于(ReLU层,Dropout层,BatchNorm层,Scale层)输入输出层一致的问题
在卷积神经网络中.常见到的激活函数有Relu层 layer { name: "relu1" type: "ReLU" bottom: "pool1&q ...
- caffe 每层结构
如何在Caffe中配置每一个层的结构 最近刚在电脑上装好Caffe,由于神经网络中有不同的层结构,不同类型的层又有不同的参数,所有就根据Caffe官网的说明文档做了一个简单的总结. 1. Vision ...
- [转] caffe激活层及参数
在激活层中,对输入数据进行激活操作(实际上就是一种函数变换),是逐元素进行运算的.从bottom得到一个blob数据输入,运算后,从top输入一个blob数据.在运算过程中,没有改变数据的大小,即输入 ...
- caffe(4) 激活层(Activation Layers)及参数
在激活层中,对输入数据进行激活操作(实际上就是一种函数变换),是逐元素进行运算的.从bottom得到一个blob数据输入,运算后,从top输入一个blob数据.在运算过程中,没有改变数据的大小,即输入 ...
- 『开发技巧』Keras自定义对象(层、评价函数与损失)
1.自定义层 对于简单.无状态的自定义操作,你也许可以通过 layers.core.Lambda 层来实现.但是对于那些包含了可训练权重的自定义层,你应该自己实现这种层. 这是一个 Keras2.0 ...
随机推荐
- sql批量修改字段内容的语句-SQL技巧
--update '表名' set 要修改字段名 = replace (要修改字段名,'被替换的特定字符','替换成的字符')--update tRecord set columnName = rep ...
- [leetcode]250. Count Univalue Subtrees统计节点值相同的子树
Given a binary tree, count the number of uni-value subtrees. A Uni-value subtree means all nodes of ...
- [leetcode]242. Valid Anagram验证变位词
Given two strings s and t , write a function to determine if t is an anagram of s. Example 1: Input: ...
- db2 统计信息 runstats
1.runstats的语法:runstats on table [模式名].[表名] with distribution and detailed indexes all注意:你可以在所有列上,或者仅 ...
- Luugu 3084 [USACO13OPEN]照片Photo
很神仙的dp...假装自己看懂了,以后回来复习复习... 设$f_{i}$表示从$1$到$i$,且$i$这个点必放的最大数量. 一个区间有两个限制条件:至少放一个,至多放一个. 因为一个区间至多要放一 ...
- Laravel 上使用 phpexcel的两种方式
原创 2017年06月24日 20:24:31 1229 文章采集与网上 方式1.使用原生的phpexcel , http://blog.csdn.net/CSwfe/article/details/ ...
- [BAT]cmd命令之 cd /d %~dp0
cd /d %~dp0是什么意思啊?批处理文件中的一条语句意思是 更改当前目录为批处理本身的目录 有些晕吧?不急,我举例 比如你有个批处理a.bat在D:\qq文件夹下 a.bat内容为 cd /d ...
- 外网不能访问阿里云服务器的apache服务
今天弄了下Ubuntu的服务器,配置了一个LAMP环境的服务器,配置有时间我再来说 但是配置了很长的时间,差不都怕是好几个小时 在配置apache的时候,出现了问题,好不容易把apache服务配置好 ...
- URL编码转换函数:escape()、encodeURI()、encodeURIComponent()
函数出现时间: escape() javascript 1.0 ...
- Unsorted, maximum ==> sorted
https://github.com/Premiumlab/Python-for-Algorithms--Data-Structures--and-Interviews/blob/master/Moc ...