事务就是保证多个操作在同一个connection,TxQueryRunner通过JdbcUtils获取连接,而JdbcUtils通过ThreadLocal<Connection>确保了不同线程设置的con不会混淆(tl.set(con)),而同一线程的connecion可以共用,从而具有事务的功能 1.JdbcUtils.java package cn.itcast.jdbc; import java.sql.Connection; import java.sql.SQLException;…
1.CommonUtils.java package cn.itcast.commons; import java.util.Map; import java.util.UUID; import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.ConvertUtils; /** * 小小工具 * @author qdmmy6 * */ public class CommonUtils { /*…
1.统一中文编码分析 tomcat默认esetISO-8859-1编码,在servlet中,可能通过request的setCharacterEncoding(charset)和response.setContentType("text/html;charset=UTF-8");处理post请求编码,但get请求的编码控制不了,所以,如果请求类型是get,则用装饰者模式把request整个调包 2.EncodingFilter.java package cn.itcast.filter;…
一.流程分析 1.图书模块 2.分布分析 二.代码 1.view层 1)list.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE H…
一.分析 > 按图名查询(模糊)(分页)> 按作者查询(分页)> 按出版社查询(分页)> 按id查询> 多条件组合查询(分页) 二.代码 1.view层 (1)gj.jsp等 <form action="<c:url value='/BookServlet'/>" method="get"> <input type="hidden" name="method" val…
一.流程分析 二.代码 1.view层 (1)list.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="…
Guava 中有一些基础的工具类,如下所列: 1,Joiner 类:根据给定的分隔符把字符串连接到一起.MapJoiner 执行相同的操作,但是针对 Map 的 key 和 value. 2,Splitter 类:与 Joiner 操作相反的类,是根据给定的分隔符,把一个字符串分隔成若个子字符串. 3,CharMatcher,Strings 类:对字符串通用的操作,例如移除字符串的某一部分,字符串匹配等等操作. 4,其他类:针对Object操作的方法,例如 toString 和 hashCode…
一.概述 1.使用的jdk版本:1.6 2.java EE版本:1.6 3.指导老师:传智播客 王建 二.小项目已经实现的功能 普通用户: 1.登陆 2.注册 3.购物 4.浏览 管理员用户(全部管理员): 1.登陆 2.角色管理 3.用户管理 4.图书分类 5.图书管理 6.图书商家 7.发货管理 三.项目截图 1.普通用户 (1)浏览(分类浏览,代码重用) 分类浏览: 单本书浏览: (2)普通用户登陆 (3)普通用户注册 (4)普通用户购物 浏览页面加入购物车: 详情页加入购物车 (5)查看…
Guava 提供了一系列针对Object操作的方法. 1. toString方法 为了方便调试重写toString()方法是很有必要的,但写起来比较无聊,不管如何,Objects类提供了toStringHelper方法,它用起来非常简单,我们可以看下面的代码: public class Book implements Comparable<Book> { private Person author; private String title; private String publisher;…
Preconditions类是一组静态方法用来验证我们代码的状态.Preconditons类很重要,它能保证我们的代码按照我们期望的执行,如果不是我们期望的,我们会立即得到反馈是哪里出来问题,现在我们使用Preconditions来保证我们代码的行为,并且对调试也非常方便. 当然,你也可以自己写预处理的代码,就像下面一样: if (someObj == null) { throw new IllegalArgumentException(" someObj must not be null&qu…