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

开发工具:eclipse + navicat 

项目源码:CSDN下载地址

Github:Github源码地址

一、根据注册过的账户登录系统,成功登录系统后选择创建笔记本

登录云笔记

登录后主界面

点击红色框 1 出的加号按钮可以添加笔记本

 

笔记本添加流程:用户点击加号 “+” -> 填写 笔记本名称  ->  提交数据 ajax 发送请求  ->  DispatcherServlet 拦截过滤请求  -> 分配 controller  AddBookController -> 执行 controller.execute() 方法  -> 返回操作结果 -> ajax 接受返回结果  -> status = 0 ,笔记本添加成功 status =1 笔记本添加失败 -> 提示用户操作结果。

提交数据 


function addBook(){
	//获取用户ID
	var userId=getCookie("userId");
	//获取笔记本标题
	var title=$("#input_notebook").val();
	//数据格式检查
	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+"/book/add.do",
			type:"post",
			data:{"userId":userId,"title":title},
			dataType:"json",
			success:function(result){
				var book=result.data;
				if(result.status==0){
					var id=book.cn_notebook_id;
					var title=book.cn_notebook_name;
					createBookLi(id,title);//创建一个笔记本列表的li元素
					alert(result.msg);
				}
			},
			error:function(){
				alert("创建笔记本失败");
			}
		});
	}
}; 

controller 响应请求 AddBookController.java

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.Book;
import com.sjh.cloud_note.service.BookService;
import com.sjh.cloud_note.util.NoteResult;

@Controller
@RequestMapping("/book")
public class AddBookController {

	@Resource
	private BookService bookService;
	
	@RequestMapping("/add.do")
	@ResponseBody
	public NoteResult<Book> execute(String userId,String title){	
		NoteResult result = bookService.AddBook(userId, title);
		return result;
	}
}

执行 execute ,调用 bookService.AddBook() 方法(bookService  已完成自动装配)

接口 BookService.java,loadBooks 根据用户Id 加载笔记本列表 ,AddBook 添加笔记本

package com.sjh.cloud_note.service;


import java.util.List;

import com.sjh.cloud_note.entity.Book;
import com.sjh.cloud_note.util.NoteResult;

public interface BookService {
	public  NoteResult<List<Book>> loadBooks(String userId);
	
	public NoteResult<Book> AddBook(String userId,String title);
}

实现接口 BookServiceImpl.java  @Service("bookService")  注解 在程序运行时自动完成注册,相当于在Spring 容器中自动添加 

BookServiceImpl  bean,后面再controller 中调用 bookService 时,只需要在字段之前加上 @Resource 注解,即可完成对bookService自动装配

package com.sjh.cloud_note.service;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.sjh.cloud_note.dao.BookDao;
import com.sjh.cloud_note.entity.Book;
import com.sjh.cloud_note.entity.User;
import com.sjh.cloud_note.util.NoteResult;
import com.sjh.cloud_note.util.NoteUtil;

@Service("bookService") 
@Transactional
public class BookServiceImpl implements BookService {

	@Resource
	private BookDao bookDao;
	
	public NoteResult<List<Book>> loadBooks(String userId) {
		NoteResult<List<Book>> result = new NoteResult<List<Book>>();
		
		List<Book> books = bookDao.findByUserId(userId);
		result.setStatus(0);
		result.setMsg("加载笔记本成功");
		result.setData(books);
		
		return result;
	}

	public NoteResult<Book> AddBook(String userId,String title) {
		Book book = new Book();
		String bookId = NoteUtil.createId();
		book.setCn_notebook_id(bookId);
		book.setCn_user_id(userId);
		book.setCn_notebook_name(title);
		book.setCn_notebook_type_id("1");
		
		bookDao.save(book);
		NoteResult<Book> result = new NoteResult<Book>();
		
		result.setStatus(0);
		result.setMsg("添加笔记本成功");
		result.setData(book);	
		
		return result;
	}

}

笔记本数据库访问接口 BookDao.java,方法名必须和mapper 中的对应操作 id 保持一致。否则会报异常

package com.sjh.cloud_note.dao;

import java.util.List;

import com.sjh.cloud_note.entity.Book;

public interface BookDao {
	public List<Book> findByUserId(String userId);
	
	public void save(Book book); 
}

笔记本数据库配置文件 BookMapper.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.BookDao">
	<select id="findByUserId" parameterType="string" resultType="com.sjh.cloud_note.entity.Book">
		select * from cn_notebook where cn_user_id=#{userId} order by cn_notebook_createtime desc
	</select>
	<insert id="save" parameterType="com.sjh.cloud_note.entity.Book">
		insert into cn_notebook(
			cn_notebook_id,
			cn_user_id,
			cn_notebook_type_id,
			cn_notebook_name,
			cn_notebook_desc,
			cn_notebook_createtime)
			values(
			#{cn_notebook_id},
			#{cn_user_id},
			#{cn_notebook_type_id},
			#{cn_notebook_name},
			#{cn_notebook_desc},
			#{cn_notebook_createtime}
			)
	</insert>
</mapper>

当添加完毕笔记本之后自动刷新界面,会自动根据用户Id 查找用户所有的笔记本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值