Spring + Spring MVC + Mybatis 云笔记项目(六)添加笔记

    xiaoxiao2023-11-14  142

    开发工具:eclipse + navicat 

    项目源码:下载地址

    Github:Github源码地址

    一、当创建完毕笔记本之后,可以在笔记本下面创建不同的笔记。

    流程:选择笔记本 -> 添加笔记本 -> 提交数据 -> DispatcherServlet 过滤拦截请求 -> 分配控制器 -> 执行controller.execute() 方法 ->返回操作结果 -> ajax接受返回结果 status = 0 添加笔记成功 status = 1 添加笔记失败 -> 刷新界面 动态生成笔记列表。

    二、选择要在哪个笔记本下面添加笔记,再添加笔记之前要先选择笔记本,否则会报错提示先选择笔记本

    选择好笔记本之后,点击添加笔记 + 号,填写笔记名称 、提交数据,

    返回操作结果

     

    三、添加笔记 js note.js

    //创建笔记按钮的点击事件 function addNote(){ //获取请求参数 //获取笔记标题 var title=$("#input_note").val().trim(); //获取用户ID var userId=getCookie("userId"); //获取笔记本ID var $li=$("#book_ul a.checked").parent(); var bookId=$li.data("bookId"); //数据格式检查 var ok=true; if(title==""){//判断是否为空 ok=false; $("#title_span").html("标题不能为空"); } if(userId==null){//检查是否生效 ok=false; window.location.href="log_in.html"; } if(ok){ //发送ajax请求 $.ajax({ url:base_path+"/note/add.do", type:"post", data:{"userId":userId,"bookId":bookId,"title":title}, dataType:"json", success:function(result){ var note=result.data; if(result.status==0){ var id=note.cn_note_id; var title=note.cn_note_title; createNoteLi(id,title); alert(result.msg); } }, error:function(){ alert("创建笔记失败"); } }); } };

     添加笔记Controller AddNoteController.java,调用 noteService 接口,执行AddNote()方法,参数,用户编号,笔记本编号,笔记本名称。

    package com.sjh.cloud_note.controller; import javax.annotation.Resource; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.sjh.cloud_note.entity.Note; import com.sjh.cloud_note.service.NoteService; import com.sjh.cloud_note.util.NoteResult; @Controller @RequestMapping("/note") public class AddNoteController { @Resource private NoteService noteService; @RequestMapping("/add.do") @ResponseBody public NoteResult<Note> execute (String userId,String bookId,String title){ NoteResult<Note> result = noteService.AddNote(userId, bookId, title); return result; } }

    接口 NoteService.java,总包含 根据笔记本编号加载笔记、根据笔记编号加载笔记、添加笔记、删除笔记、更新笔记、移动笔记

    package com.sjh.cloud_note.service; import java.util.List; import java.util.Map; import com.sjh.cloud_note.entity.Note; import com.sjh.cloud_note.util.NoteResult; public interface NoteService { public NoteResult<List<Map>> loadNotesByBookId(String bookId); public NoteResult<Note> loadNoteByNoteId(String noteId); public NoteResult<Note> AddNote(String userId,String bookId,String title); public NoteResult<Object> DeleteNote(String noteId); public NoteResult<Object> UpdateNote(String noteId,String title,String body); public NoteResult<Object> MoveNote(String noteId,String bookId); }

    实现接口

    package com.sjh.cloud_note.service; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.sjh.cloud_note.dao.NoteDao; import com.sjh.cloud_note.entity.Note; import com.sjh.cloud_note.util.NoteResult; import com.sjh.cloud_note.util.NoteUtil; @Service("noteService") @Transactional public class NoteServiceImpl implements NoteService { @Resource private NoteDao noteDao; //根据笔记本加载笔记 public NoteResult<List<Map>> loadNotesByBookId(String bookId) { NoteResult<List<Map>> result = new NoteResult<List<Map>>(); List<Map> list = noteDao.findByBookId(bookId); result.setStatus(0); result.setMsg("笔记加载成功"); result.setData(list); return result; } //根据笔记id加载笔记 public NoteResult<Note> loadNoteByNoteId(String noteId) { NoteResult<Note> result = new NoteResult<Note>(); Note note = noteDao.findByNoteId(noteId); result.setStatus(0); result.setMsg("笔记加载成功"); result.setData(note); return result; } //添加笔记 public NoteResult<Note> AddNote(String userId, String bookId, String title) { NoteResult<Note> result = new NoteResult<Note>(); Note note = new Note(); String noteId = NoteUtil.createId(); long time = System.currentTimeMillis(); note.setCn_note_id(noteId); note.setCn_user_id(userId); note.setCn_notebook_id(bookId); note.setCn_note_title(title); note.setCn_note_body(""); note.setCn_note_create_time(time); note.setCn_note_last_modify_time(time); note.setCn_note_type_id("1"); note.setCn_note_status_id("1"); noteDao.save(note); result.setStatus(0); result.setMsg("添加笔记成功"); result.setData(note); return result; } //删除笔记 public NoteResult<Object> DeleteNote(String noteId){ NoteResult<Object> result = new NoteResult<Object>(); Note note = noteDao.findByNoteId(noteId); note.setCn_note_status_id("2"); int rows = noteDao.dynamicUpdate(note); if(rows >= 1) { result.setStatus(0); result.setMsg("删除笔记成功"); } else { result.setStatus(1); result.setMsg("删除笔记失败"); } return result; } //更新笔记标题或者笔记内容 public NoteResult<Object> UpdateNote(String noteId, String title, String body) { NoteResult<Object> result = new NoteResult<Object>(); Note note = noteDao.findByNoteId(noteId); long time = System.currentTimeMillis(); note.setCn_note_title(title); note.setCn_note_body(body); note.setCn_note_last_modify_time(time); int rows = noteDao.dynamicUpdate(note); if(rows >= 1) { result.setStatus(0); result.setMsg("笔记更新成功"); } else { result.setStatus(1); result.setMsg("笔记更新失败"); } return result; } //移动笔记到其他笔记本 public NoteResult<Object> MoveNote(String noteId, String bookId) { NoteResult<Object> result = new NoteResult<Object>(); Note note = noteDao.findByNoteId(noteId); note.setCn_notebook_id(bookId); int rows = noteDao.dynamicUpdate(note); if(rows >= 1) { result.setStatus(0); result.setMsg("笔记移动成功"); } else { result.setStatus(1); result.setMsg("笔记移动失败"); } return result; } }

    NoteDao.java

    package com.sjh.cloud_note.dao; import java.util.List; import java.util.Map; import com.sjh.cloud_note.entity.Note; public interface NoteDao { public List<Map> findByBookId(String bookId); public Note findByNoteId(String id); public int updateNote(Note note); public void save(Note note); public int dynamicUpdate(Note note); }

    NoteMapper.xml

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd"> <mapper namespace="com.sjh.cloud_note.dao.NoteDao"> <select id="findByBookId" parameterType="string" resultType="Map"> select cn_note_id,cn_note_title from cn_note where cn_notebook_id=#{bookId} and cn_note_status_id='1' </select> <select id="findByNoteId" parameterType="String" resultType="com.sjh.cloud_note.entity.Note"> select *from cn_note where cn_note_id=#{noteId} </select> <update id="updateNote" parameterType="com.sjh.cloud_note.entity.Note"> update cn_note set cn_note_title=#{cn_note_title}, cn_note_body=#{cn_note_body}, cn_note_last_modify_time=#{cn_note_last_modify_time} where cn_note_id=#{cn_note_id} </update> <insert id="save" parameterType="com.sjh.cloud_note.entity.Note"> insert into cn_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( #{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} ) </insert> <!-- 动态更新 --> <update id="dynamicUpdate" parameterType="com.sjh.cloud_note.entity.Note"> update cn_note <set> <if test="cn_note_type_id!=null"> cn_note_type_id=#{cn_note_type_id}, </if> <if test="cn_note_status_id!=null"> cn_note_status_id=#{cn_note_status_id}, </if> <if test="cn_notebook_id!=null"> cn_notebook_id=#{cn_notebook_id}, </if> <if test="cn_note_title!=null"> cn_note_title=#{cn_note_title}, </if> <if test="cn_note_body!=null"> cn_note_body=#{cn_note_body}, </if> <if test="cn_note_last_modify_time!=null"> cn_note_last_modify_time=#{cn_note_last_modify_time} </if> </set> where cn_note_id=#{cn_note_id} </update> </mapper>

     

    最新回复(0)