客户信息管理系统6—客户信息的删除(二)
来源:互联网 发布:linux所有发行版 编辑:程序博客网 时间:2024/05/21 09:48
客户信息管理系统6—客户信息的删除(二)
(5)批量删除的改进
2.2.1代码组成
findAllCustomer.jsp+DeleteAllServlet + CustomersService + CustomersDao + CustomersDaoImplement + TransactionUtils
2.2.2代码功能介绍
【1】findAllCustomer.jsp:查询结果显示页面,批量删除客户信息的入口
【2】DeleteAllServlet:批量客户信息web层
【3】CustomersService :业务层(deleteAll(choose)方法)
备注:deleteAll(choose)方法方法做了修改
【4】CustomersDao:dao接口层(deleteAll(choose)方法)
【5】CustomersDaoImplement:dao结构层实现类(deleteAll(choose)方法)
【6】TransactionUtils:事务管理工具类,确保事务管理过程中使用的是同一个connection,确保同一个Connection是通过线程本地类来实现的【ThreadLocal】
解耦合代码实现分析
2.2.3代码详细
2.2.3.1 findAllCustomer.jsp:查询结果显示页面,批量删除客户信息的入口
详细看功能一代码实现,已经写好了
2.2.3.2 DeleteAllServlet:批量客户信息web层
详细看功能三代码实现,已经写好了
2.2.3.3 CustomersService :业务层(deleteAll(choose)方法)
备注:deleteAll(choose)方法方法做了修改
详细看功能一代码实现,已经写好了
2.2.3.4 CustomersDao:dao接口层(deleteAll(choose)方法)
详细看功能一代码实现,已经写好了
2.2.3.5 CustomersDaoImplement:dao结构层实现类(deleteAll(choose)方法)
详细看功能一代码实现,已经写好了
2.2.3.6 TransactionUtils:事务管理工具类,确保事务管理过程中使用的是同一个connection,确保同一个Connection是通过线程本地类来实现的【ThreadLocal】
packagecom.zhku.jsj144.zk.utils; importjava.sql.Connection;importjava.sql.SQLException; importjavax.sql.DataSource; //事务管理工具类//确保事务管理过程中使用的是同一个connection public class TransactionUtils{ private static ThreadLocal<Connection>tl=new ThreadLocal<Connection>();//线程本地类 private static DataSourceds=JdbcUtils.getDatasourse(); public static DataSource getDataSource(){//数据源 return ds; } //获得connecion对象 public static Connection getConnection(){ // 说明:先判断tl.get()是否是null,// 如果是null,则说明当前线程还没有对应的Connection对象,这时创建一个Connection对象并添加到本地线程变量中;// 如果不为null,则说明当前的线程已经拥有了Connection对象,直接使用就可以了。// 这样,就保证了不同的线程使用线程相关的Connection,而不会使用其它线程的Connection Connection conn=tl.get(); if(conn==null){ try { conn=ds.getConnection();//从连接池中取一个连接出来 //将取出来的连接放到tl中 tl.set(conn);//设置本地线程类 return conn; } catch (SQLException e) { throw new RuntimeException(e); } } return null; }// //开启事务// public void startTransaction(){// if(con==null){// con=getConnection();//获得连接// }// con= (Connection) tl.get();// try {// con.setAutoCommit(false);//开启事务// } catch (SQLException e) {// e.printStackTrace();// }// } // 开启 事务 // 结果 就是 返回了 一个 connection对象, 并且 将 返回的 connection放到了 threadlocal中 , public static void startTransaction(){ try { Connection conn = tl.get();//确保连接来自threaLocal(本地线程类) if(conn==null){ conn = getConnection();// tl.set(conn); } conn.setAutoCommit(false);//开启 事务 } catch (SQLException e) { throw new RuntimeException(e); } } //回滚事务 public static void rollback(){ try { Connection conn = tl.get();//确保连接来自threaLocal(本地线程类) if(conn==null){ conn = getConnection();// tl.set(conn); } conn.rollback();//回滚事务 } catch (SQLException e) { throw new RuntimeException(e); } } //提交事务 public static void commit(){ try { Connection conn = tl.get(); if(conn==null){ conn = getConnection();// tl.set(conn); } conn.commit();//提交事务 } catch (SQLException e) { throw new RuntimeException(e); } } //释放资源 public static void relase(){ try { Connection conn = tl.get(); if(conn!=null){ conn.close();//释放资源 tl.remove();//移除当前connection } } catch (SQLException e) { throw new RuntimeException(e); } }}
阅读全文
0 0
- 客户信息管理系统6—客户信息的删除(二)
- 客户信息管理系统5—客户信息的删除(一)
- 客户信息管理系统3—客户信息的增加(二)
- 客户信息管理系统4—客户信息的查询
- 客户信息管理系统7—客户信息的修改
- 客户信息管理系统8—客户信息的模糊查询
- 客户信息管理系统9—客户信息的分页查询
- 客户信息管理系统2—客户信息的增加(一)
- 客户信息管理系统
- 基于javaweb的客户信息管理系统搭建
- 学生信息管理系统(二)删除信息
- JAVA 语言客户信息管理系统解题报告
- JSP小项目实战---客户信息管理系统
- 客户信息管理系统1--前期准备
- 客户信息管理软件
- 公司系统上海一客户的系统调优(二)-- 问题分析一
- 公司系统上海一客户的系统调优(三)-- 问题分析二
- 公司系统上海一客户的系统调优(三)-- 问题解决之二
- jquery mobile 中button去掉点击时候的阴影
- 在VMware虚拟机下安装Android Studio(AS)以及运行第一个HelloWorld程序
- 获取scrollTop兼容各浏览器的方法,以及body和documentElement是啥?
- disruptor学习
- day1
- 客户信息管理系统6—客户信息的删除(二)
- CUDA优化知识点
- JDBC用ConnectionFactory创建数据库连接
- 任学堂说科技:穿越计算机迷雾,从零开始构建计算机
- mybatis反向生成实体和xml、mapper接口
- tt
- 【HNOI2010】弹飞绵羊 分块/LCT
- spring注解(未完)
- BZOJ 2111 浅谈完全二叉树组合数递推半未来状态设计转移