Web框架梳理:第三章:Mybatis入门、Mybatis代理开发、log4j:日志管理工具
2016-12-14 15:20
691 查看
Mybatis:
操作数据库 ORM框架(配置映射 输入参数
输出参数映射)
编写sql语句,sql语句----方法映射
1.Mapper代理开发:(*****)
interface DeptMapper{
public List<Dept> findAll();
public Dept findById(int id);
}
Mapper代理本质就是一个接口,符合一定规则就会自动生成
代理接口的实现类.
符合以下四个要求:
namespace==DeptMapper的路径
Mapper代理接口的方法名与映射文件id保持一致,
Mapper代理接口中方法的参数与映射文件parameterType一致
Mapper代理接口中方法的返回结果与映射文件resultType一致
Mybatis就会自动生成 DeptMapper的实现类.
主键自增:
<insert useGeneratedKeys="true" keyProperty="主键字段对象的属性" >
拼接sql: sql注入
${value}:如果parameterType是普通类型,${}中必须用value.
只查询部分字段:
1)如果字段和属性一致 resultType映射为对象类型.
2)如果字段和属性一致 resultType也可以映射为HashMap类型
查询的时候字段与属性名不一致:
resultMap中定义那个字段与那个属性对应.
eg:
<resultMap id="唯一标识mymap1" type="">
<idcolumn="_dno" property="dno">
<resultcolumn="_dname" property="dname">
<resultMap id="唯一标识mymap2" type=""extends="mymap1">
当有一个resultMap的多个值和别的resultMap重复的时候,
可以用extends继承别的resultMap.
2.Mybatis实现分页:(*****)
1)将分页的相关数据封装成一个对象Page类型
2)<selectparameterType="Page">
select * from dept limit .......;
3.动态sql(*****):
if标签: 参考jstl标签
ognl
<if test="condition!=null">
<iftest="condition.dname!=null and condition.dname!=''">
and dname like #{condition.dname}
<if>
</if>
<choose>
<whentest="condition.dname!=null and condition.dname!=''">
anddname like #{condition.dname}
</when>
<when test="condition.loc!=nulland condition.loc!=''">
andloc like #{condition.loc}
</when>
<otherwise>
</otherwise>
</choose>
<foreach collection="list" open="("separator="," item="no" close=")">
4.sql片段(*****):
<sql id="">
sql片段内容
需要sql片段的地方:
<include refid="sql片段的id">
5.多表查询下的mybatis配置(*****):
一对一:
resultType:
在主查询的对应类中扩展别的属性,
一般适用于清单输出(账单,话费清单等)
resultMap:
将关联字段的值用一个对象封装.
<association property="属性名" javaType="属性的类型">
<id />
<result/>
一对多:
dept----emp:
思路:
Dept:
dno;
dname;
loc
List<Emp> emps;
Emp:
empno;
ename;
....
<resultMaptype="Dept" id="mymap2">
<idcolumn="dno" property="dno">
<resultcolumn="dname" property="dname">
<resultcolumn="loc" property="loc">
<collectionproperty="emps" ofType="Emp">
<id column="empno" property="empno"/>
<result column="ename" property="ename">
.....
</collection>
1.log4j:日志管理工具
控制台(文件)输出信息 跟踪调试
log4j.jar.
输出日志的5个等级:
debug info warn erorr fatal(严重错误)
layout: 日志的布局
SimpleLayout
HTMLLayout
PatternLayout
日志的显示位置:
ConsoleAppender
FileAppender
指定一个级别(debug),改级别以上信息都会显示出来.
操作数据库 ORM框架(配置映射 输入参数
输出参数映射)
编写sql语句,sql语句----方法映射
1.Mapper代理开发:(*****)
interface DeptMapper{
public List<Dept> findAll();
public Dept findById(int id);
}
Mapper代理本质就是一个接口,符合一定规则就会自动生成
代理接口的实现类.
符合以下四个要求:
namespace==DeptMapper的路径
Mapper代理接口的方法名与映射文件id保持一致,
Mapper代理接口中方法的参数与映射文件parameterType一致
Mapper代理接口中方法的返回结果与映射文件resultType一致
Mybatis就会自动生成 DeptMapper的实现类.
主键自增:
<insert useGeneratedKeys="true" keyProperty="主键字段对象的属性" >
拼接sql: sql注入
${value}:如果parameterType是普通类型,${}中必须用value.
只查询部分字段:
1)如果字段和属性一致 resultType映射为对象类型.
2)如果字段和属性一致 resultType也可以映射为HashMap类型
查询的时候字段与属性名不一致:
resultMap中定义那个字段与那个属性对应.
eg:
<resultMap id="唯一标识mymap1" type="">
<idcolumn="_dno" property="dno">
<resultcolumn="_dname" property="dname">
<resultMap id="唯一标识mymap2" type=""extends="mymap1">
当有一个resultMap的多个值和别的resultMap重复的时候,
可以用extends继承别的resultMap.
2.Mybatis实现分页:(*****)
1)将分页的相关数据封装成一个对象Page类型
2)<selectparameterType="Page">
select * from dept limit .......;
3.动态sql(*****):
if标签: 参考jstl标签
ognl
<if test="condition!=null">
<iftest="condition.dname!=null and condition.dname!=''">
and dname like #{condition.dname}
<if>
</if>
<choose>
<whentest="condition.dname!=null and condition.dname!=''">
anddname like #{condition.dname}
</when>
<when test="condition.loc!=nulland condition.loc!=''">
andloc like #{condition.loc}
</when>
<otherwise>
</otherwise>
</choose>
<foreach collection="list" open="("separator="," item="no" close=")">
4.sql片段(*****):
<sql id="">
sql片段内容
需要sql片段的地方:
<include refid="sql片段的id">
5.多表查询下的mybatis配置(*****):
一对一:
resultType:
在主查询的对应类中扩展别的属性,
一般适用于清单输出(账单,话费清单等)
resultMap:
将关联字段的值用一个对象封装.
<association property="属性名" javaType="属性的类型">
<id />
<result/>
一对多:
dept----emp:
思路:
Dept:
dno;
dname;
loc
List<Emp> emps;
Emp:
empno;
ename;
....
<resultMaptype="Dept" id="mymap2">
<idcolumn="dno" property="dno">
<resultcolumn="dname" property="dname">
<resultcolumn="loc" property="loc">
<collectionproperty="emps" ofType="Emp">
<id column="empno" property="empno"/>
<result column="ename" property="ename">
.....
</collection>
1.log4j:日志管理工具
控制台(文件)输出信息 跟踪调试
log4j.jar.
输出日志的5个等级:
debug info warn erorr fatal(严重错误)
layout: 日志的布局
SimpleLayout
HTMLLayout
PatternLayout
日志的显示位置:
ConsoleAppender
FileAppender
指定一个级别(debug),改级别以上信息都会显示出来.
相关文章推荐
- Web框架梳理:第四章:Spring学习入门、Spring属性注入、AOP编程、注解开发
- JavaWeb开发之添加日志框架-log4j
- 日志管理框架:Log4j工具封装类
- Web开发加入Log4j日志管理
- Web 前端开发的包管理工具 bower 快速入门
- IDEA搭建springboot+mybatis 的web框架附日志管理
- JAVA 开发平台的技术和框架(五)日志管理 :common-logging slf4j log4j logBack
- JavaWeb开发基于Spring和mybatis框架(学习日志)
- 移动Web开发框架及工具收集
- 开发自己的web站点管理工具(转)一
- 【年度盛宴】2012年度最佳 Web 前端开发工具和框架——《上篇》
- 分享20个非常有用的Web开发工具和框架
- 开源框架系列:.NET Enterprise CMS Framework --- RapidWebDev 快速开发产品管理示例程序
- 在web应用中使用日志工具log4J
- RDIFramework.NET — 基于.NET的快速信息化系统开发框架- 5.4平台日志、异常管理、生成自动升级配置文件模块
- 【精彩继续】2012年度最佳 Web 前端开发工具和框架——《下篇》
- 分享20个非常有用的Web开发工具和框架
- 如何利用NB代码生成工具和NBear框架,快速开发WEB项目
- 如何利用NB代码生成工具和NBear框架,快速开发WEB项目