资源描述
183云笔记项目.docx
《183云笔记项目.docx》由会员分享,可在线阅读,更多相关《183云笔记项目.docx(8页珍藏版)》请在冰豆网上搜索。
![183云笔记项目.docx](https://file1.bdocx.com/fileroot1/2022-11/20/ce0197e9-74ea-4c96-85eb-b0ad755a30dd/ce0197e9-74ea-4c96-85eb-b0ad755a30dd1.gif)
183云笔记项目
Ø显示笔记功能
原理:
1.持久层
1.声明持久层方法NoteDao
NotefindNoteById(StringnoteId);
2.声明实体类Note
publicclassNoteimplementsSerializable{
privatestaticfinallongserialVersionUID=-8176239102696538864L;
privateStringid;
privateStringnotebookId;
privateStringuserId;
privateStringstatusId;
privateStringtypeId;
privateStringtitle;
privateStringbody;
privateLongcreateTime;
privateLonglastModifyTime;
3.声明SQL,NoteMapper.xml
selectcn_note_idasid,cn_notebook_idasnotebookId,cn_user_idasuserId,cn_note_status_idasstatusId,cn_note_type_idastypeId,cn_note_titleastitle,cn_note_bodyasbody,cn_note_create_timeascreateTime,cn_note_last_modify_timeaslastModifyTimefromcn_notewherecn_note_id=#{noteId}
4.测试NoteDaoTest
@TestpublicvoidtestFindNoteById(){StringnoteId="019cd9e1-b629-4d8d-afd7-2aa9e2d6afe0";Notenote=dao.findNoteById(noteId);System.out.println(note);}
2.业务层
1.声明业务层方法NoteService
NotegetNote(StringnoteId)throwsNoteNotFoundException;
声明业务异常NoteNotFoundException
略...
2.实现方法NoteServiceImpl
publicNotegetNote(StringnoteId)throwsNoteNotFoundException{if(noteId==null||noteId.trim().isEmpty()){thrownewNoteNotFoundException("ID空");}Notenote=noteDao.findNoteById(noteId);if(note==null){thrownewNoteNotFoundException("id错误");}returnnote;}
3.测试NoteServiceTest
@TestpublicvoidtestGetNote(){StringnoteId="019cd9e1-b629-4d8d-afd7-2aa9e2d6afe0";Notenote=service.getNote(noteId);System.out.println(note);}
3.控制器
1.添加控制器方法NoteController
@RequestMapping("/load.do")@ResponseBodypublicJsonResultload(StringnoteId){Notenote=noteService.getNote(noteId);returnnewJsonResult(note);}
2.测试
http:
//localhost:
8080/note/note/load.do?
noteId=019cd9e1-b629-4d8d-afd7-2aa9e2d6afe0
http:
//localhost:
8080/note/note/load.do
4.表现层
1.重构showNotes方法,在显示时候将笔记的ID绑定到LI元素:
//将笔记ID绑定到li,用在点击笔记时候显示笔记详细信息li.data('noteId',note.id);
2.重构笔记列表li模板,在li元素上增加note类:
varnoteTemplate=''+''+'[title]'+''+''+''+' '+' '+' '+'
'+'
'+'';
3.在ready方法中添加事件监听笔记列表的点击事件:
//监听笔记列表中的笔记点击事件,在点击时候加载显示笔记信息
$('#note-list').on('click','.note',loadNote);
4.添加笔记点击加载笔记的事件处理方法loadNote
functionloadNote(){//获取当前点击的li元素varli=$(this);//获取在显示时候绑定到li中的笔记ID值varid=li.data('noteId');//设置选中高亮效果li.parent().find('a').removeClass('checked');li.find('a').addClass('checked');varurl='note/load.do';vardata={noteId:
id};$.getJSON(url,data,function(result){//console.log(result);if(result.state==SUCCESS){varnote=result.data;showNote(note);}else{alert(result.message);}});}
5.添加显示笔记信息方法showNote
functionshowNote(note){//显示笔记标题$('#input_note_title').val(note.title);
//显示笔记内容um.setContent(note.body);}
6.测试...
Ø新建笔记功能
原理:
1.持久层
1.声明持久层方法NoteDao
intaddNote(Notenote);
2.声明SQL,NoteMapper.xml:
insertintocn_note(cn_note_id,cn_notebook_id,cn_user_id,cn_note_status_id,cn_note_type_id,cn_note_title,cn_note_body,cn_note_create_time,cn_note_last_modify_time)values(#{id},#{notebookId},#{userId},#{statusId},#{typeId},#{title},#{body},#{createTime},#{lastModifyTime})
3.测试:
略...
2.业务层
1.添加业务方法NoteService
publicNoteaddNote(StringuserId,StringnotebookId,Stringtitle)throwsUserNotFoundException,NotebookNotFoundException;
提示:
方法的三个参数是根据对业务规程分析来确定的.
2.实现业务方法NoteServiceImpl:
publicNoteaddNote(StringuserId,StringnotebookId,Stringtitle)throwsUserNotFoundException,NotebookNotFoundException{if(userId==null||userId.trim().isEmpty()){thrownewUserNotFoundException("ID空");}Useruser=userDao.findUserById(userId);if(user==null){thrownewUserNotFoundException("木有人");}if(notebookId==null||notebookId.trim().isEmpty()){thrownewNotebookNotFoundException("ID空");}intn=notebookDao.countNotebookById(notebookId);if(n!
=1){thrownewNotebookNotFoundException("没有笔记本");}if(title==null||title.trim().isEmpty()){title="葵花宝典";}Stringid=UUID.randomUUID().toString();StringstatusId="0";StringtypeId="0";Stringbody="";longtime=System.currentTimeMillis();Notenote=newNote(id,notebookId,user