第一个spring、springmvc、mybatis、freemarker项目小知识(一)
1.持久层开发(Mybatis)
1.1 添加,非空字段必须给值,不是非空加判断,有值添加无值不添
1.2 删除,注意外键关系的级联删除。(事务传播行为)
1.3 更新,每个字段单独更新,只更新变化的值。
1.4 查询,多表查询首先确定主查询表,分析与辅助查询表的关系来确定使用内/外链接
1.4.1 外键关系:内连接
select a.*,b.* from tb_a a, tb_b b where a.id = b.id
select a.*,b.* from tb_a a
join tb_b b
on a.id = b.id
1.4.2 普通的关联关系:外连接
select a.*,b.* from tb_a a
left join tb_b b
on a.id = b.id
1.4.3 使用子查询,开启Mybatis二级查询缓存。
1.5 命名规范:体现某一数据库操作。 addXxx() DeleteXxx() UpdateXxx() SelectList() getXxx()
方便事务控制
1.6 要利用好Mybatis 的输出映射,完成查询的所有的字段,省去了业务层手动多重循环遍历。
如果使用BaseDao<T> ,Mybatis输出映射首选使用ResultType,同名映射,注意如果字段有别名是按别名映射
1.7 Mybatis 配置中字符串比较 <if flag =='true'.tostring()> </if>
1.8 穷举类型定义:
public static final int IS_DEL_Y = 1;
public static final int IS_DEL_N = 0;
1.9 日期属性使用注解固定格式(为Mybatis表单数据绑定提供支持)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date create_time;
2.业务层开发(Spring Bean 管理)
2.1 注入依赖,不能注入其他数据表Dao,只能本身Dao或者其他service,减少耦合。
2.2 命名规范:能体现某一业务逻辑。login()、save() 、reply()
2.3 aop
3.表现层开发(SpringMVC)
3.1 SpringMVC 绑定表单数据,数据类型、name属性出错,会报错,http 400,查错注意看日志
3.2 Freemarker 绑定字段要设置默认值${(refer.time?string("yyyy-MM-dd HH:mm:ss"))!''},数字为0,字符串为'',类型不能出错
3.3 命名规范:方法名与处理器一致,体现某一业务逻辑。
3.4 编辑、删除绑定id,更新页面隐藏id
4.其他
4.1 分析数据表:对待多字段数据表,找主键,注意意非空字段,外键关系。
4.2 字符串比较a.equals(b)方法,处理空指针异常。
4.3 HTML 标签中的id 要放在 name 属性的前面
第一个spring、springmvc、mybatis、freemarker项目小知识(一)的更多相关文章
- 挖个坑,写一个Spring+SpringMVC+Mybatis的项目
想挖个坑督促自己练技术,有时候想到一个项目,大概想了一些要实现的功能,怎么实现.现在觉得自己差不多能完成QQ空间的主要功能了.准备立个牌坊,写一个类似功能的网站.并且把进度放到这里来. 初步计划实现以 ...
- spring springmvc mybatis maven 项目整合示例-导航页面
spring原理 实践解析-简单的helloworld spring原理案例-基本项目搭建 01 spring framework 下载 官网下载spring jar包 spring原理案例-基本项目 ...
- Maven搭建Spring+SpringMVC+Mybatis+Shiro项目详解
一. 环境搭建: 1. 开发工具:myeclipse 2014 / IDEA: 2. maven管理版本:apache-maven-3.0+: 3. jdk 1.7.0+4. Tomcat8.0 二: ...
- IntelliJ IDEA 创建Spring+SpringMVC+mybatis+maven项目
参考自:https://www.cnblogs.com/hackyo/p/6646051.html 第一步: 创建maven项目 输入项目名和工程id 选择maven 默认就可以了 刚开始时间比较长, ...
- spring+springMVC+mybatis , 项目启动遇坑
github上找的框架组合例子 结合自己的数据库作为新项目开发. 但是项目启动时,tomcat启动失败: 检查不出错误. 于是改换maven引入jetty插件来启动项目, 结果在未改动的任何代码的情况 ...
- 【JavaWeb】Spring+SpringMVC+MyBatis+SpringSecurity+EhCache+JCaptcha 完整Web基础框架(三)
Spring+SpringMVC MVC呢,现在似乎越来越流行使用SpringMVC框架,我自己用的感觉,是非常好,确实很舒服,配置一开始是麻烦了一点点,但是后续的开发真的是很清爽! SpringMV ...
- (4)Maven快速入门_4在Spring+SpringMVC+MyBatis+Oracle+Maven框架整合运行在Tomcat8中
利用Maven 创建Spring+SpringMVC+MyBatis+Oracle 项目 分了三个项目 Dao (jar) Service (jar) Controller (web) ...
- 你要的SSM(Spring+Springmvc+Mybatis)小项目来了!!!
SSM-Maven-Heima 这是一个使用 SSM(Spring+Springmvc+Mybatis)框架的商城小项目,使用Maven构建项目,以MySQL为数据库系统,Redis的缓存服务器(并不 ...
- 用 eclipse 创建一个简单的 meaven spring springMvc mybatis 项目
下面是整体步骤: 1: 先创建一个Maven 项目: 选择跳过骨架: 因为要搭建的是 web 项目 所以这个地方选择 war 包; 点击完成 这样就完成 Maven项目的搭建: 接下俩 先把 Mav ...
随机推荐
- ios动态创建类Class
[Objective-C Runtime动态加载]---动态创建类Class 动态创建类Class,动态添加Class成员变量与成员函数,动态变量赋值与取值,动态函数调用等方法 a.使用objc_al ...
- NFR
你NFR了吗? NFR,即非功能性需求 (Non -Functional Requirements) ,即系统能够完成所期望的工作的性能与质量.具体包括如下内容: – 效率: 软件实现其功能所需要的计 ...
- 一步步学习 Spring Data 系列之JPA(一)
引入: Spring Data是SpringSource基金会下的一个用于简化数据库访问,并支持云服务的开源框架.其主要目标是使得数据库的访问变得方便快捷,并支持map-reduce框架和云计算数据服 ...
- Unsupported major.minor version 51.0错误
错误原因:用jdk7编译的class文件放到基于jdk6运行在tomcat之中,就会报这个错 解决方法:项目------>右键------>属性------>Java Compile ...
- 6-3 bash脚本编程之五 字符串测试及for循环
1. 字符测试 ==:等号两边要有空格,否则会被认为是赋值. !=: 测试是否相等,记住如果不等为真,等为假. -n string: 测试指定字符串是否为空,空位真,不空为假. -s string: ...
- 异步HTTPHandler的实现
使用APM的方式实现 using System; using System.Web; using System.Threading; class HelloWorldAsyncHandler : IH ...
- 扩大ubuntu虚拟机硬盘空间
一.背景: 出于测试的需要,在ubuntu 14.04系统中通过virtualbox虚拟机安装了额ubuntu 14.04系统(guest os).安装过程采用ubuntu 14.04的默认分区方法. ...
- Warning: strftime(): It is not safe to rely on the system's timezone settings.
当运行程序时,会出现如下警告: Warning: strftime(): It is not safe to rely on the system's timezone settings. You a ...
- Java学习笔记-抽象
开发软件的关键在于应用抽象的概念.方法抽象是通过将方法的使用和它的实现分离来实现的.方法的实现对用户隐藏在"黑匣子"中. 当编写一个大程序时,可以使用分治的策略,也成为逐步求精,将 ...
- Django rest_framework 实用技巧
前言: 最近工作中需要用到Django rest_framework框架做API, 边学边写,记录了一些实际工作中需要用到的功能,不是很全也不系统,以后需要什么功能可以在这查询. 后续还会更新其它的用 ...