第一个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 ...
随机推荐
- Laravel大型项目系列教程(四)显示文章列表和用户修改文章
小编心语:不知不觉已经第四部分了,非常感谢很多人给小编提的意见,改了很多bug,希望以后能继续帮小编找找茬~小编也不希望误导大家~这一节,主要讲的 是如何显示文章列表和让用户修改文章,小编预告一下(一 ...
- activemq和jms是种什么关系
JMS是一个用于提供消息服务的技术规范,它制定了在整个消息服务提供过程中的所有数据结构和交互流程. 而activemq则是消息队列服务,是面向消息中间件(MOM)的最终实现,是真正的服务提供者. jm ...
- Java中堆内存和栈内存详解2
Java中堆内存和栈内存详解 Java把内存分成两种,一种叫做栈内存,一种叫做堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配.当在一段代码块中定义一个变量时,ja ...
- 一个基于Microsoft Azure、ASP.NET Core和Docker的博客系统
2008年11月,我在博客园开通了个人帐号,并在博客园发表了自己的第一篇博客.当然,我写博客也不是从2008年才开始的,在更早时候,也在CSDN和系统分析员协会(之后名为“希赛网”)个人空间发布过一些 ...
- SE Springer小组之《Spring音乐播放器》可行性研究报告三、四
3 对现有系统的分析 由于本次可行性分析主要是建立在团队自行实现一个音乐软件的目标上,并不是在一个现有系统的基础上开发改进的新系统.因此这里将分析一款市面上已经存在的音乐软件(以下称为W音乐),并为之 ...
- Say goodbye to my photos&videos
刚刚得知一个悲惨的消息:虽然2012已经过去了,但是世界末日并未过去.嗯,我不是来严肃的,我是来搞笑的.毕竟,我已经如此伤心了.中午结束考试,下午看了一半的电影然后躺室友的床上睡了一觉,醒来看到阿姨发 ...
- 升级xcode8之后出现报错提示,提示swift版本问题
最近Xcode升级了,出现了各种蛋疼的错误提示,今天遇到个导入框架出现了提示Swift版本的问题,具体如下: "Use Legacy Swift Language Version" ...
- JAVA设计模式之1-单例模式
设计模式是什么? 设计模式是一种思路,是在前辈们的软件工程中总结出来的套路,并且这些套路已经经过很多项目的测试,是比较成熟的思路,所以现在来总结一下常见的设计模式. 最简单最常用的就是单例模式: 一般 ...
- MVC Nhibernate 示例
首先,非常感谢提出问题的朋友们,使得本人又去深入研究了NHibernate的<Session-Per-Request 模式>. 前言: 谈到NHibernate大伙并不陌生,搞Java ...
- python学习之路 第六天
1.正则表达式 re.match() 从头匹配: re.match("[0-9]","123abc789") 只匹配一个数字: re.match("[ ...