Apache Log4j
Apache Log4j:
是什么?
Log4j 是Apache下的一个可以控制日志输出的地方、格式、级别的开源项目。
主要组件:Loggers(记录器),Appenders(输出源),Layouts(布局,日志类型)。
Loggers:日志记录级别(从小到大)DEBUG < INFO < WARN < ERROR(常用),使用规则:只输出级别不低于设定级别的日志信息,一般项目中程序应用设定及数据库访问设定级别为debug。
Appenders:日志输出的目的地Console,Files。
Layouts:输出风格html、pattern(常用)、simple、ttcc。
怎么用?
Xml文件配置、properties文件配置(常用,便于维护);
以properties文件为例:
① .配置根Logger:
log4j.rootLogger = [ level ] , appenderName1, appenderName2, …
例如:log4j.rootLogger=INFO,A1,A2,A3
② .配置根Logger输出的目的地的日志的风格和明细
log4j.appender.appenderName = className(对应的输出类)
log4j.appender.appenderName.layout =className(对应的布局风格类)(org.apache.log4j.PatternLayout常用)需同时配置其输出的格式
③ .配置其他的模块日志和级别
项目实例:
MAVEN项目管理,在pom文件中引入项目日志的依赖,如下:
Slf4j作为一个日志类接口,不负责具体的日志实现,只在编译时负责寻找合适的日志系统进行绑定,具体的实现由各日志类库来完成
SpringMVC拦截请求第一件事,就是拦截请求日志
调用日志拦截器,其中重写了3个方法,在项目中的使用
① preHandle():这个方法在业务处理器处理请求之前被调用,用在请求开始日志打印;
② postHandle():这个方法在业务处理器处理完请求后,但是DispatcherServlet向客户端返回请求前被调用,在该方法中对用户请求request进行处理,用在打印请求页面基本信息;
③ afterCompletion():这个方法在DispatcherServlet完全处理完请求后被调用,用在请求结束日志打印和保存并清理占用资源。
参考:http://www.cnblogs.com/ITtangtang/p/3926665.html#3789597
参考:http://www.importnew.com/7450.html
参考:http://blog.csdn.net/u012385190/article/details/51437992
参考:http://blog.csdn.net/u012385190/article/details/51437992
Mysql数据关联查询resultMap的使用
一对一
级联属性封装结果集:
<select id=”findMyData” resultMap =”dataMap”>
Select a.id, a.name, a.age, b.id carId, b.brand, b.price from User a ,Car b where
a.id = b.userId and a.id=#{id}
</select>
<resultMap type="User" id=" dataMap ">
<id column="id" property="id"/>
<result column="name" property="name" />
<result column="age" property="age" />
<result column ="carId" property ="myCar.id"/>
<result column =" brand " property ="myCar. brand "/>
<result column =" price " property ="myCar. price "/>
</resultMap>
使用联合对象标签<association>封装结果集
<resultMap type="User" id=" dataMap ">
<id column="id" property="id"/>
<result column="name" property="name" />
<result column="age" property="age" />
<association property = “myCar” javaType = “Car”>
<id column=" carId " property="id"/>
<result column =" brand " property =" brand "/>
<result column =" price " property =" price "/>
</association>
</resultMap>
注意:<id column="id" property="id"/> 这个 column id 要和<id column=" carId " property="id"/>分别取出,则不能相同,相同时只取第一个。
一对多
<select id=”findMyData” resultMap =”dataMap”>
Select a.id, a.name, a.age, b.id myCars.id, b.brand myCars.brand , b.price myCars.price
from User a left join Car b on a.id = b.userId
where a.id=#{id}
</select>
<resultMap type="User" id="dataMap">
<id property="id" column="id"/>
<result property="title" column="title"/>
<result property="summary" column="summary"/>
<result property="endDate" column="endDate"/>
<collection property="myCars" ofType="Car" >
<id property="id" column=" myCars.id "/>
<result property=" brand " column=" myCars.brand "/>
<result property=" price " column=" myCars.price "/>
</collection>
</resultMap>

浙公网安备 33010602011771号