第一次自己设计做出来的项目,总结一些心得
完成项目的步骤
- 分析项目有什么功能,并把功能点都明确的写下来。
- 根据功能点在数据库建表,一定要分析好哪个是主键哪个不能唯一表相互之间的关系,因为第一次做,这方面没有做好导致做项目中间改表出现很多的麻烦
- 根据功能点设计前端页面
- 搭建框架,所有逻辑处理要在业务层完成不能在web端写逻辑代码,这个也是我踩过的一个坑.
- 后端写完后再分页,然后接入security 。
遇到的一点疑惑的知识点
- 设计数据库自增时使用序列加触发器共同完成
创建自增序列
create sequence APP_SEQ 这是序列名
minvalue 1 最小值
maxvalue 999999 最大值
start with 1 开始数字
increment by 1 每次增加1
nocache; 没有缓存, 这个不知道什么用
create [or replace] trigger trigger_name
{before | after} trigger_event
on table_name
[for each row]
[when trigger_condition]
trigger_body
trigger_name:触发器名称
before | after : 指定触发器是在触发事件发生之前触发还暗示发生之后触发
trigger_event:触发事件,在DML触发器中主要为insert、update、delete等
table_name:表名,表示发生触发器作用的对象
for each row:指定创建的是行级触发器,若没有该子句则创建的是语句级触发器
when trigger_condition:添加的触发条件
trigger_body:触发体,是标准的PL/SQL语句块
2.在持久层mybayis去update时,要先把数据封装到对应的pojo类中,否则会出现异常。
3.在jsp页面中的Onclick(function(this.id))点击时间可以往小括号内传入this.id就可以传入当前标签的id,如果还要传入其他值,会按照实参的先后顺序赋值给形参,而不会按照形参名称传递。
4.el表达式和security的页面权限控制在script中一样可以使用
5. ajax与后台传值
$.ajax({
url:url, 路径
data:{"id":id,"username":username}, 传入数据
dataType:"text",预期服务器返回的数据类型。
type:"post", 传入方式
success:function(data){ 回调函数
alert(data);
window.location.reload(); 刷新页面
}
})
在服务器接收数据时使用@RequestParam每个值独立接收,@RequestBody是接收一个封装类的值自动封装。在服务器返回数据时如果在dataType:"text"返回的是字符串需要在@RequestMapping()括号内加入produces = “application/text; charset=utf-8” 。如果返回的是json数据时设置dataType:"json"并且服务端返回值类型前面加上@ResponseBody会自动转换成json格式返回 但是要引入maven的坐标
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.8</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.9</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.9.3</version>
</dependency>
补充
页面加载完成jqueryyufa
$(function () {
})