最全SpringMVC+Mybatis框架集成开发基础——项目开发流程——03,java面试视频讲解

完结

Redis基于内存,常用作于缓存的一种技术,并且Redis存储的方式是以key-value的形式。Redis是如今互联网技术架构中,使用最广泛的缓存,在工作中常常会使用到。Redis也是中高级后端工程师技术面试中,面试官最喜欢问的问题之一,因此作为Java开发者,Redis是我们必须要掌握的。

Redis 是 NoSQL 数据库领域的佼佼者,如果你需要了解 Redis 是如何实现高并发、海量数据存储的,那么这份腾讯专家手敲《Redis源码日志笔记》将会是你的最佳选择。

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

导入需要的Jar:对应的pom.xml配置

pom.xml

4.0.0

com.study

cloud_note_learn

0.0.1-SNAPSHOT

war

org.springframework

spring-webmvc

3.2.8.RELEASE

com.fasterxml.jackson.core

jackson-core

2.2.3

com.fasterxml.jackson.core

jackson-databind

2.2.3

com.fasterxml.jackson.core

jackson-annotations

2.2.3

org.mybatis

mybatis

3.3.0

org.mybatis

mybatis-spring

1.2.3

org.springframework

spring-jdbc

3.2.8.RELEASE

commons-dbcp

commons-dbcp

1.4

mysql

mysql-connector-java

5.1.37

junit

junit

4.12

commons-codec

commons-codec

1.10

实体映射配置:

BookMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>

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})

<select id=“findByUserId” parameterType=“string”

resultType=“com.dk.cloudnote.entity.Book”>

select * from cn_notebook

where cn_user_id=#{userId}

NoteMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>

update cn_note

set cn_notebook_id=#{bookId}

where cn_note_id=#{noteId}

update cn_note

set cn_note_status_id=#{status}

where cn_note_id=#{noteId}

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})

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}

<select id=“findById” parameterType=“string”

resultType=“com.dk.cloudnote.entity.Note”>

select * from cn_note

where cn_note_id=#{id}

<select id=“findByBookId” parameterType=“string”

resultType=“com.dk.cloudnote.entity.Note”>

select * from cn_note

where cn_notebook_id=#{bookId}

实体类:

Book.java

package com.dk.cloudnote.entity;

import java.io.Serializable;

import java.sql.Timestamp;

public class Book implements Serializable{

private String cn_notebook_id;

private String cn_user_id;

private String cn_notebook_type_id;

private String cn_notebook_name;

private String cn_notebook_desc;

private Timestamp cn_notebook_createtime;

public String getCn_notebook_id() {

return cn_notebook_id;

}

public void setCn_notebook_id(String cn_notebook_id) {

this.cn_notebook_id = cn_notebook_id;

}

public String getCn_user_id() {

return cn_user_id;

}

public void setCn_user_id(String cn_user_id) {

this.cn_user_id = cn_user_id;

}

public String getCn_notebook_type_id() {

return cn_notebook_type_id;

}

public void setCn_notebook_type_id(String cn_notebook_type_id) {

this.cn_notebook_type_id = cn_notebook_type_id;

}

public String getCn_notebook_name() {

return cn_notebook_name;

}

public void setCn_notebook_name(String cn_notebook_name) {

this.cn_notebook_name = cn_notebook_name;

}

public String getCn_notebook_desc() {

return cn_notebook_desc;

}

public void setCn_notebook_desc(String cn_notebook_desc) {

this.cn_notebook_desc = cn_notebook_desc;

}

public Timestamp getCn_notebook_createtime() {

return cn_notebook_createtime;

}

public void setCn_notebook_createtime(Timestamp cn_notebook_createtime) {

this.cn_notebook_createtime = cn_notebook_createtime;

}

}

Note.java

package com.dk.cloudnote.entity;

import java.io.Serializable;

public class Note implements Serializable{

private String cn_note_id;

private String cn_notebook_id;

private String cn_user_id;

private String cn_note_status_id;

private String cn_note_type_id;

private String cn_note_title;

private String cn_note_body;

private Long cn_note_create_time;

private Long cn_note_last_modify_time;

public String getCn_note_id() {

return cn_note_id;

}

public void setCn_note_id(String cn_note_id) {

this.cn_note_id = cn_note_id;

}

public String getCn_notebook_id() {

return cn_notebook_id;

}

public void setCn_notebook_id(String cn_notebook_id) {

this.cn_notebook_id = cn_notebook_id;

}

public String getCn_user_id() {

return cn_user_id;

}

public void setCn_user_id(String cn_user_id) {

this.cn_user_id = cn_user_id;

}

public String getCn_note_status_id() {

return cn_note_status_id;

}

public void setCn_note_status_id(String cn_note_status_id) {

this.cn_note_status_id = cn_note_status_id;

}

public String getCn_note_type_id() {

return cn_note_type_id;

}

public void setCn_note_type_id(String cn_note_type_id) {

this.cn_note_type_id = cn_note_type_id;

}

public String getCn_note_title() {

return cn_note_title;

}

public void setCn_note_title(String cn_note_title) {

this.cn_note_title = cn_note_title;

}

public String getCn_note_body() {

return cn_note_body;

}

public void setCn_note_body(String cn_note_body) {

this.cn_note_body = cn_note_body;

}

public Long getCn_note_create_time() {

return cn_note_create_time;

}

public void setCn_note_create_time(Long cn_note_create_time) {

this.cn_note_create_time = cn_note_create_time;

}

public Long getCn_note_last_modify_time() {

return cn_note_last_modify_time;

}

public void setCn_note_last_modify_time(Long cn_note_last_modify_time) {

this.cn_note_last_modify_time = cn_note_last_modify_time;

}

}

映射Dao接口:

BookDao.java

package com.dk.cloudnote.dao;

import java.util.List;

import com.dk.cloudnote.entity.Book;

public interface BookDao {

public void save(Book book);

public List findByUserId(String userId);

}

NoteDao.java

package com.dk.cloudnote.dao;

import java.util.List;

import java.util.Map;

import com.dk.cloudnote.entity.Note;

public interface NoteDao {

/**

  • 根据笔记ID更新笔记本ID

  • @param params noteId:笔记ID;bookId:笔记本ID

  • @return 受影响记录行数

*/

public int updateBookId(Map<String,Object> params);

public int updateStatus(Map<String,Object> params);

public void save(Note note);

public int update(Note note);

public Note findById(String id);

public List findByBookId(String bookId);

}

Dao接口方法测试:

TestBookDao.java

package com.dk.cloundnote.dao;

import org.junit.Test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.dk.cloudnote.dao.BookDao;

import com.dk.cloudnote.entity.Book;

public class TestBookDao {

@Test

public void test1(){

String conf = “conf/spring-mybatis.xml”;

ApplicationContext ac = new ClassPathXmlApplicationContext(conf);

BookDao dao = ac.getBean(“bookDao”, BookDao.class);

Book book = new Book();

book.setCn_user_id(“1234”);

book.setCn_notebook_id(“1111”);

book.setCn_notebook_type_id(“1”);

book.setCn_notebook_desc(“testDESC”);

book.setCn_notebook_name(“tname1”);

dao.save(book);

}

}

TestFindByBookId.java

package com.dk.cloundnote.dao;

import java.util.List;

import org.junit.Test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.dk.cloudnote.dao.NoteDao;

import com.dk.cloudnote.entity.Note;

public class TestFindByBookId {

@Test

public void test(){

String conf = “conf/spring-mybatis.xml”;

ApplicationContext ac = new ClassPathXmlApplicationContext(conf);

NoteDao dao = ac.getBean(“noteDao”, NoteDao.class);

List list = dao.findByBookId(“4b86d1f9-6345-4532-bc50-ee86442f004b”);

for(Note note: list){

System.out.println(note.getCn_note_title()+“||”+note.getCn_note_id());

}

}

}

TestLoadBooks.java

package com.dk.cloundnote.dao;

import java.util.List;

import org.junit.Test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.dk.cloudnote.dao.BookDao;

import com.dk.cloudnote.entity.Book;

public class TestLoadBooks {

@Test

public void test1(){

String conf = “conf/spring-mybatis.xml”;

ApplicationContext ac = new ClassPathXmlApplicationContext(conf);

BookDao dao = ac.getBean(“bookDao”,BookDao.class);

List list = dao.findByUserId(“1234”);

for(Book book:list){

System.out.println(book.getCn_notebook_name());

}

}

}

TestNoteDao.java

package com.dk.cloundnote.dao;

import org.junit.Test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.dk.cloudnote.dao.NoteDao;

import com.dk.cloudnote.entity.Note;

public class TestNoteDao {

@Test

public void test1(){

String conf = “conf/spring-mybatis.xml”;

ApplicationContext ac = new ClassPathXmlApplicationContext(conf);

NoteDao dao = ac.getBean(“noteDao”, NoteDao.class);

Note note = dao.findById(“c7862663-b155-4556-bdd7-1b8ef8decf55”);

System.out.println(note.getCn_note_title()+“|”+note.getCn_note_body());

}

@Test

public void test2(){

String conf = “conf/spring-mybatis.xml”;

ApplicationContext ac = new ClassPathXmlApplicationContext(conf);

NoteDao dao = ac.getBean(“noteDao”, NoteDao.class);

Note note = new Note();

note.setCn_note_body(“ttttttttttttbody”);

note.setCn_note_title(“testTitle”);

note.setCn_note_id(“c7862663-b155-4556-bdd7-1b8ef8decf55”);

int count = dao.update(note);

System.out.println(count);

}

@Test

public void test3(){

String conf = “conf/spring-mybatis.xml”;

ApplicationContext ac = new ClassPathXmlApplicationContext(conf);

NoteDao dao = ac.getBean(“noteDao”, NoteDao.class);

Note note = new Note();

note.setCn_user_id(“test08”);

note.setCn_note_body(“ttttttttttttbody”);

note.setCn_note_title(“testTitle”);

note.setCn_note_id(“we”);

dao.save(note);

}

}

测试运行Dao方法后截图:

A.

B.

C.

D.

业务层代码:

业务接口部分:

BookService.java

package com.dk.cloudnote.service;

import com.dk.cloudnote.util.NoteResult;

public interface BookService {

public NoteResult addBook(String userId,String bookName);

public NoteResult loadUserBooks(String userId);

}

NoteService.java

package com.dk.cloudnote.service;

import com.dk.cloudnote.util.NoteResult;

public interface NoteService {

public NoteResult moveNote(String bookId,String noteId);

public NoteResult recycleNote(String noteId);

public NoteResult addNote(String userId,String title,String bookId);

public NoteResult updateNote(String id,String title,String body);

public NoteResult loadNote(String noteId);

public NoteResult loadBookNotes(String bookId);

}

业务实现部分:

BookServiceImpl.java

package com.dk.cloudnote.service;

import java.sql.Timestamp;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.dk.cloudnote.dao.BookDao;

import com.dk.cloudnote.entity.Book;

import com.dk.cloudnote.util.NoteResult;

import com.dk.cloudnote.util.NoteUtil;

@Service(“bookService”)

public class BookServiceImpl implements BookService{

@Resource

private BookDao bookDao;

public NoteResult loadUserBooks(String userId) {

NoteResult result = new NoteResult();

//根据用户ID查询笔记本信息

List list = bookDao.findByUserId(userId);

result.setStatus(0);

result.setMsg(“查询笔记本成功”);

result.setData(list);//返回笔记本信息

return result;

}

public NoteResult addBook(String userId, String bookName) {

NoteResult result = new NoteResult();

Book book = new Book();

book.setCn_user_id(userId);//用户ID

book.setCn_notebook_name(bookName);//笔记本名

book.setCn_notebook_type_id(“5”);//normal

book.setCn_notebook_desc(“”);

Timestamp time = new Timestamp(System.currentTimeMillis());

book.setCn_notebook_createtime(time);//创建时间

String bookId = NoteUtil.createId();

book.setCn_notebook_id(bookId);//笔记本ID

bookDao.save(book);//添加笔记本

//返回结果

result.setStatus(0);

result.setMsg(“创建笔记本成功”);

result.setData(bookId);//返回笔记本ID

return result;

}

}

NoteServiceImpl.java

package com.dk.cloudnote.service;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.dk.cloudnote.dao.NoteDao;

import com.dk.cloudnote.entity.Note;

import com.dk.cloudnote.util.NoteResult;

import com.dk.cloudnote.util.NoteUtil;

@Service(“noteService”)

public class NoteServiceImpl implements NoteService{

@Resource

private NoteDao noteDao;

public NoteResult loadBookNotes(String bookId) {

NoteResult result = new NoteResult();

List list = noteDao.findByBookId(bookId);

result.setStatus(0);

result.setMsg(“查询笔记列表成功”);

result.setData(list);

return result;

}

public NoteResult updateNote(String id, String title, String body) {

NoteResult result = new NoteResult();

//更新操作

Note note = new Note();

note.setCn_note_id(id);//笔记ID

note.setCn_note_title(title);//标题

note.setCn_note_body(body);//内容

long time = System.currentTimeMillis();

note.setCn_note_last_modify_time(time);//最后更新时间

noteDao.update(note);

result.setStatus(0);

result.setMsg(“保存笔记完成”);

return result;

}

public NoteResult loadNote(String noteId) {

NoteResult result = new NoteResult();

Note note = noteDao.findById(noteId);

result.setStatus(0);

result.setMsg(“加载笔记内容成功”);

result.setData(note);

return result;

}

public NoteResult addNote(String userId, String title, String bookId) {

Note note = new Note();

note.setCn_note_title(title);//标题

note.setCn_user_id(userId);//用户ID

note.setCn_notebook_id(bookId);//笔记本ID

note.setCn_note_status_id(“1”);//normal

note.setCn_note_type_id(“1”);//normal

note.setCn_note_body(“”);//空串

long time = System.currentTimeMillis();

note.setCn_note_create_time(time);//创建时间

note.setCn_note_last_modify_time(time);//最后修改时间

String noteId = NoteUtil.createId();

note.setCn_note_id(noteId);//笔记ID

noteDao.save(note);//插入cn_note表

//返回结果

NoteResult result = new NoteResult();

result.setStatus(0);

result.setMsg(“创建笔记成功”);

result.setData(noteId);//返回笔记ID

return result;

}

public NoteResult moveNote(String bookId, String noteId) {

//更新笔记本ID

Map<String,Object> params = new HashMap<String,Object>();

params.put(“noteId”, noteId);

params.put(“bookId”, bookId);

noteDao.updateBookId(params);

//返回结果

NoteResult result = new NoteResult();

result.setStatus(0);

result.setMsg(“转移笔记成功”);

return result;

}

public NoteResult recycleNote(String noteId) {

Map<String,Object> params = new HashMap<String,Object>();

params.put(“noteId”, noteId);//笔记ID

params.put(“status”, “2”);//删除状态

noteDao.updateStatus(params);//更新笔记状态

//返回NoteResult

NoteResult result = new NoteResult();

result.setStatus(0);

result.setMsg(“删除笔记成功”);

return result;

}

}

业务层功能 单元测试:

TestAddBook.java

package com.dk.cloundnote.service;

import org.junit.Test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.dk.cloudnote.service.BookService;

import com.dk.cloudnote.service.UserService;

import com.dk.cloudnote.util.NoteResult;

public class TestAddBook {

@Test

public void test1(){

String[] conf = {“conf/spring-mvc.xml”,

“conf/spring-mybatis.xml”};

ApplicationContext ac= new ClassPathXmlApplicationContext(conf);

BookService service = ac.getBean(“bookService”, BookService.class);

NoteResult result = service.addBook(“test10”, “test10-10bj”);

System.out.println(result.getStatus());

System.out.println(result.getMsg());

System.out.println(result.getData());

}

}

TestLoadBookNotes.java

package com.dk.cloundnote.service;

import org.junit.Test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.dk.cloudnote.service.NoteService;

import com.dk.cloudnote.util.NoteResult;

public class TestLoadBookNotes {

@Test

public void test(){

String[] conf = {“conf/spring-mvc.xml”,

“conf/spring-mybatis.xml”};

ApplicationContext ac = new ClassPathXmlApplicationContext(conf);

NoteService service = ac.getBean(“noteService”,NoteService.class);

NoteResult result = service.loadBookNotes(“4b86d1f9-6345-4532-bc50-ee86442f004b”);

System.out.println(result.getStatus());

System.out.println(result.getMsg());

System.out.println(result.getData());

}

}

TestloadUserBooks.java

package com.dk.cloundnote.service;

import org.junit.Test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.dk.cloudnote.service.BookService;

import com.dk.cloudnote.util.NoteResult;

public class TestloadUserBooks {

@Test

public void test1(){

String[] conf = {“conf/spring-mvc.xml”,

“conf/spring-mybatis.xml”};

ApplicationContext ac = new ClassPathXmlApplicationContext(conf);

BookService service = ac.getBean(“bookService”,BookService.class);

NoteResult result = service.loadUserBooks(“48595f52-b22c-4485-9244-f4004255b972”);

System.out.println(result.getStatus());

System.out.println(result.getMsg());

System.out.println(result.getData());

}

}

TestMoveNote.java

package com.dk.cloundnote.service;

import org.junit.Test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.dk.cloudnote.service.NoteService;

import com.dk.cloudnote.util.NoteResult;

public class TestMoveNote {

@Test

public void test1(){

String[] conf = {“conf/spring-mvc.xml”,

“conf/spring-mybatis.xml”};

ApplicationContext ac = new ClassPathXmlApplicationContext(conf);

NoteService service = ac.getBean(“noteService”,NoteService.class);

NoteResult result = service.moveNote(“id-tttt”, “ss19055-30e8-4cdc-bfac-97c6bad9518f”);

System.out.println(result.getStatus());

System.out.println(result.getMsg());

}

}

TestNoteService.java

package com.dk.cloundnote.service;

import org.junit.Test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.dk.cloudnote.entity.Note;

import com.dk.cloudnote.service.NoteService;

import com.dk.cloudnote.util.NoteResult;

public class TestNoteService {

@Test

public void test1(){

String[] conf = {“conf/spring-mvc.xml”,

“conf/spring-mybatis.xml”};

ApplicationContext ac = new ClassPathXmlApplicationContext(conf);

NoteService service = ac.getBean(“noteService”,NoteService.class);

NoteResult result = service.loadNote(“1a6e497b-56b5-4eac-8190-b2d726c6f687”);

System.out.println(result.getStatus());

System.out.println(result.getMsg());

System.out.println(((Note) result.getData()).getCn_note_status_id());

}

@Test

public void test2(){

String[] conf = {“conf/spring-mvc.xml”,

“conf/spring-mybatis.xml”};

ApplicationContext ac = new ClassPathXmlApplicationContext(conf);

NoteService service = ac.getBean(“noteService”,NoteService.class);

Note note = new Note();

note.setCn_note_body(“ttttttttttttbod123y”);

note.setCn_note_title(“testTitle”);

note.setCn_note_id(“c7862663-b155-4556-bdd7-1b8ef8decf55”);

NoteResult result = service.updateNote(note.getCn_note_id(), note.getCn_note_title(),note.getCn_note_body());

System.out.println(result.getStatus());

System.out.println(result.getMsg());

System.out.println(result.getData());

}

@Test

public void test3(){

String[] conf = {“conf/spring-mvc.xml”,

“conf/spring-mybatis.xml”};

ApplicationContext ac = new ClassPathXmlApplicationContext(conf);

NoteService service = ac.getBean(“noteService”,NoteService.class);

Note note = new Note();

note.setCn_user_id(“user”);

note.setCn_note_title(“aaaaa”);

note.setCn_notebook_id(“id-tttt”);

NoteResult result = service.addNote(note.getCn_user_id(),note.getCn_note_title(),note.getCn_notebook_id());

System.out.println(result.getStatus());

System.out.println(result.getMsg());

System.out.println(result.getData());

}

}

TestRecycleNote.java

package com.dk.cloundnote.service;

import org.junit.Test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.dk.cloudnote.service.NoteService;

import com.dk.cloudnote.util.NoteResult;

public class TestRecycleNote {

@Test

public void test1(){

String[] conf = {“conf/spring-mvc.xml”,

“conf/spring-mybatis.xml”};

ApplicationContext ac = new ClassPathXmlApplicationContext(conf);

NoteService service = ac.getBean(“noteService”,NoteService.class);

NoteResult result = service.recycleNote(“1a6e497b-56b5-4eac-8190-b2d726c6f687”);

System.out.println(result.getStatus());

System.out.println(result.getMsg());

}

}

控制层功能:

AddBookController.java

package com.dk.cloudnote.controller.book;

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.dk.cloudnote.service.BookService;

import com.dk.cloudnote.util.NoteResult;

@Controller

@RequestMapping(“/book”)

public class AddBookController {

@Resource

private BookService bookService;

@RequestMapping(“/add”)//可以省略.do

@ResponseBody

public NoteResult execute(String userId,String bookName){

System.out.println(“AddBookController…”);

NoteResult result = bookService.addBook(userId, bookName);

return result;

}

}

LoadBookdsController.java

package com.dk.cloudnote.controller.book;

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.dk.cloudnote.service.BookService;

import com.dk.cloudnote.util.NoteResult;

@Controller

@RequestMapping(“/book”)

public class LoadBookdsController {

@Resource

private BookService bookService;

@RequestMapping(“/loadbooks.do”)

@ResponseBody

public NoteResult execute(String userId){

System.out.println(“LoadBookdsController…”);

NoteResult result = bookService.loadUserBooks(userId);

return result;

}

}

AddNoteController.java

package com.dk.cloudnote.controller.note;

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.dk.cloudnote.service.NoteService;

import com.dk.cloudnote.util.NoteResult;

@Controller

@RequestMapping(“/note”)

public class AddNoteController {

@Resource

private NoteService noteService;

@RequestMapping(“/add.do”)//

@ResponseBody

public NoteResult execute(String userId,String title,String bookId){

System.out.println(“AddNoteController…”);

NoteResult result = noteService.addNote(userId, title, bookId);

return result;

}

}

LoadNoteController.java

package com.dk.cloudnote.controller.note;

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.dk.cloudnote.service.NoteService;

import com.dk.cloudnote.util.NoteResult;

@Controller

@RequestMapping(“/note”)

public class LoadNoteController {

@Resource

private NoteService noteService;

@RequestMapping(“/load.do”)

@ResponseBody

public NoteResult execute(String noteId){

System.out.println(“LoadNoteController…”);

NoteResult result = noteService.loadNote(noteId);

return result;

}

}

LoadNotesController.java

package com.dk.cloudnote.controller.note;

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.dk.cloudnote.service.NoteService;

import com.dk.cloudnote.util.NoteResult;

@Controller

@RequestMapping(“/note”)

public class LoadNotesController {

@Resource

private NoteService noteService;

@RequestMapping(“/loadnotes.do”)

@ResponseBody

public NoteResult execute(String bookId){

System.out.println(“LoadNotesController…”);

NoteResult result = noteService.loadBookNotes(bookId);

return result;

}

}

MoveNoteController.java

package com.dk.cloudnote.controller.note;

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.dk.cloudnote.service.NoteService;

import com.dk.cloudnote.util.NoteResult;

@Controller

@RequestMapping(“/note”)

public class MoveNoteController {

@Resource

private NoteService noteService;

@RequestMapping(“/move”)

@ResponseBody

public NoteResult execute(String bookId,String noteId){

System.out.println(“MoveNoteController…”);

NoteResult result = noteService.moveNote(bookId, noteId);

return result;

}

}

RecycleNoteController.java

package com.dk.cloudnote.controller.note;

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.dk.cloudnote.service.NoteService;

import com.dk.cloudnote.util.NoteResult;

@Controller

@RequestMapping(“/note”)

public class RecycleNoteController {

@Resource

private NoteService noteService;

@RequestMapping(“/recycle”)

@ResponseBody

public NoteResult execute(String noteId){

System.out.println(“RecycleNoteController…”);

NoteResult result = noteService.recycleNote(noteId);

return result;

}

}

UpdateNoteController.java

package com.dk.cloudnote.controller.note;

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.dk.cloudnote.service.NoteService;

import com.dk.cloudnote.util.NoteResult;

@Controller

@RequestMapping(“/note”)

public class UpdateNoteController {

@Resource

private NoteService noteService;

@RequestMapping(“update.do”)

@ResponseBody

public NoteResult execute(String noteId,String title,String body){

System.out.println(“UpdateNoteController…”);

NoteResult result = noteService.updateNote(noteId, title, body);

return result;

}

}

控制层测试:

浏览器录入_:http://localhost:8088/cloud_note_learn/book/add.do?userId=122&bookName=java_

页面测试结果:

其他控制层代码功能测试同上。

前端逻辑实现:

book.js

//加载用户笔记本列表

function loadUserBooks(){

$.ajax({

url:“http://localhost:8088/cloud_note_learn/book/loadbooks.do”,

type:“post”,

data:{“userId”:userId},

dataType:“json”,

success:function(result){

if(result.status==0){//成功

var books = result.data;//获取服务器返回的笔记本信息

//循环笔记本数组

for(var i=0;i<books.length;i++){

var bookName =

books[i].cn_notebook_name;//获取笔记本名

var bookId = books[i].cn_notebook_id;//获取笔记本ID

//生成笔记本列表li元素

createBookLi(bookId,bookName);

}

}

},

error:function(){

alert(“加载用户笔记本列表失败”);

}

});

};

//创建笔记本列表li

function createBookLi(bookId,bookName){

var sli = ‘

  • ’;
  • sli+= ’ ';

    sli+= ’ ';

    sli+= ’ ';

    sli+= bookName;

    sli+= ’ ';

    sli+= ‘’;

    //将bookId绑定到li元素上

    var $li = $(sli);

    $li.data(“bookId”,bookId);

    //添加到笔记本列表ul元素中

    KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲book_ul").appen…li);

    };

    //创建笔记本

    function sureAddBook(){

    //获取请求参数

    var bookName = $(“#input_notebook”).val().trim();

    //TODO检查格式

    //发送Ajax请求

    $.ajax({

    url:“http://localhost:8088/cloud_note_learn/book/add.do”,

    type:“post”,

    data:{“bookName”:bookName,“userId”:userId},

    dataType:“json”,

    success:function(result){

    if(result.status==0){

    //关闭对话框

    //closeAlertWindow();

    //添加笔记本li

    var bookId = result.data;//笔记本ID

    createBookLi(bookId,bookName);

    //提示成功

    alert(result.msg);

    }

    },

    error:function(){

    alert(“创建笔记本失败”);

    }

    });

    };

    note.js

    //"保存笔记"按钮处理

    function updateNote(){

    //获取请求参数

    var body = um.getContent();//笔记内容

    var title = $(“#input_note_title”).val();//笔记标题

    最后

    权威指南-第一本Docker书

    引领完成Docker的安装、部署、管理和扩展,让其经历从测试到生产的整个开发生命周期,深入了解Docker适用于什么场景。并且这本Docker的学习权威指南介绍了其组件的基础知识,然后用Docker构建容器和服务来完成各种任务:利用Docker为新项目建立测试环境,演示如何使用持续集成的工作流集成Docker,如何构建应用程序服务和平台,如何使用Docker的API,如何扩展Docker。

    总共包含了:简介、安装Docker、Docker入门、使用Docker镜像和仓库、在测试中使用Docker、使用Docker构建服务、使用Fig编配Docke、使用Docker API、获得帮助和对Docker进行改进等9个章节的知识。

    image

    image

    image

    image

    关于阿里内部都在强烈推荐使用的“K8S+Docker学习指南”—《深入浅出Kubernetes:理论+实战》、《权威指南-第一本Docker书》,看完之后两个字形容,爱了爱了!

    本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

    需要这份系统化的资料的朋友,可以点击这里获取

    前端逻辑实现:

    book.js

    //加载用户笔记本列表

    function loadUserBooks(){

    $.ajax({

    url:“http://localhost:8088/cloud_note_learn/book/loadbooks.do”,

    type:“post”,

    data:{“userId”:userId},

    dataType:“json”,

    success:function(result){

    if(result.status==0){//成功

    var books = result.data;//获取服务器返回的笔记本信息

    //循环笔记本数组

    for(var i=0;i<books.length;i++){

    var bookName =

    books[i].cn_notebook_name;//获取笔记本名

    var bookId = books[i].cn_notebook_id;//获取笔记本ID

    //生成笔记本列表li元素

    createBookLi(bookId,bookName);

    }

    }

    },

    error:function(){

    alert(“加载用户笔记本列表失败”);

    }

    });

    };

    //创建笔记本列表li

    function createBookLi(bookId,bookName){

    var sli = ‘

  • ’;
  • sli+= ’ ';

    sli+= ’ ';

    sli+= ’ ';

    sli+= bookName;

    sli+= ’ ';

    sli+= ‘’;

    //将bookId绑定到li元素上

    var $li = $(sli);

    $li.data(“bookId”,bookId);

    //添加到笔记本列表ul元素中

    KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲book_ul").appen…li);

    };

    //创建笔记本

    function sureAddBook(){

    //获取请求参数

    var bookName = $(“#input_notebook”).val().trim();

    //TODO检查格式

    //发送Ajax请求

    $.ajax({

    url:“http://localhost:8088/cloud_note_learn/book/add.do”,

    type:“post”,

    data:{“bookName”:bookName,“userId”:userId},

    dataType:“json”,

    success:function(result){

    if(result.status==0){

    //关闭对话框

    //closeAlertWindow();

    //添加笔记本li

    var bookId = result.data;//笔记本ID

    createBookLi(bookId,bookName);

    //提示成功

    alert(result.msg);

    }

    },

    error:function(){

    alert(“创建笔记本失败”);

    }

    });

    };

    note.js

    //"保存笔记"按钮处理

    function updateNote(){

    //获取请求参数

    var body = um.getContent();//笔记内容

    var title = $(“#input_note_title”).val();//笔记标题

    最后

    权威指南-第一本Docker书

    引领完成Docker的安装、部署、管理和扩展,让其经历从测试到生产的整个开发生命周期,深入了解Docker适用于什么场景。并且这本Docker的学习权威指南介绍了其组件的基础知识,然后用Docker构建容器和服务来完成各种任务:利用Docker为新项目建立测试环境,演示如何使用持续集成的工作流集成Docker,如何构建应用程序服务和平台,如何使用Docker的API,如何扩展Docker。

    总共包含了:简介、安装Docker、Docker入门、使用Docker镜像和仓库、在测试中使用Docker、使用Docker构建服务、使用Fig编配Docke、使用Docker API、获得帮助和对Docker进行改进等9个章节的知识。

    [外链图片转存中…(img-SJMwtk6M-1715584015134)]

    [外链图片转存中…(img-cQffoVUX-1715584015134)]

    [外链图片转存中…(img-VBLn6Kj8-1715584015135)]

    [外链图片转存中…(img-jKjeEVsJ-1715584015135)]

    关于阿里内部都在强烈推荐使用的“K8S+Docker学习指南”—《深入浅出Kubernetes:理论+实战》、《权威指南-第一本Docker书》,看完之后两个字形容,爱了爱了!

    本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

    需要这份系统化的资料的朋友,可以点击这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值