建材加盟网-建材加盟,建材加盟费查询,国内权威的建材加盟费查询网!
当前位置:建材加盟网 > 知识宝典 > 范文大全 > 达内云笔记项目经验

达内云笔记项目经验

来源:建材加盟网 | 时间:2017-07-04 05:45:15 | 移动端:达内云笔记项目经验

篇一:达内电信计费系统项目介绍

李洪鹤/lihh@tarena.com.cn

一、回顾

1、Spring核心功能

1)IOC

将对象的创建权、注入权交给Spring来 管理,由Spring容器负责做这些事。由于 Spring是通过配置实现的这些逻辑,因此 可以降低对象之间的耦合度。

2)AOP

面向切面编程,主要解决的是针对一批 组件的通用逻辑编程的问题,它采用了 公共的类+配置的方式实现这个逻辑,可以 降低公共类和组件之间的耦合度。

3)整合

Spring可以整合JDBC、MyBatis、

Struts2、Hibernate框架/技术,

可以简化对这些框架/技术的使用。

4)MVC

Spring实现了MVC,按照MVC思想对 代码进行了分层,从而降低了项目中 代码之间的耦合度。

2、Java知识体系

画图

二、项目介绍

1、项目整体需求

1)项目背景

电信公司有UNIX服务器出租业务,针对 该出租业务需要一套办公系统来提升办事 效率,提升该业务信息化程度(无纸化 办公),我们的系统就是针对该出租业务 而提供的完整解决方案。

2)整体解决方案

画图

2、解决方案

1)NETCTOSS(要讲)

--名词解析

Net China Telecom Operation

Support System

中国电信运营支撑系统-网络版

--功能

用于创建账号,创建资费标准,以及查询用户的消费情况等。

--使用者

电信公司营业员

--部署

应用服务器

2)DMS(讲过)

--功能

解析客户登录、登出UNIX服务器的时间,并将解析到的信息存入数据库,即实现了客户登录服务器的数据采集功能。 --使用者

自动运行

--部署

DMS Client部署在每一台UNIX服务器上;DMS Server部署在引用服务器上。

3)PL/SQL(不讲)

--功能

自动计算出客户本月的消费情况,由Oracle任务自动在月底调用。

--使用者

Orcale任务调度。

--部署

Orcale数据库。

4)自服务(不讲)

--功能

可以查询客户的套餐余量,可以修改客户的资费等,类似于移动/联通营业厅APP。

--使用者

客户

--部署

应用服务器

3、项目计划

1)Unit01

day01-day02,完成资费管理模块。

2)Unit02

day03-day04,完成账务账号模块。

3)Unit03

day05-day06,完成业务账号模块。

4)Unit04

day07-day10,完成角色模块、管理员 模块以及登录相关的功能。

5)Unit05

day11,学习AOP,并应用到项目中。

6)Unit06

day12,学习事务管理,并应用到项目中。 如果时间允许,做项目总结及分享。

4、项目目标

1)基本要求

完成资费模块

2)达标

再完成账务账号模块,登录功能。

3)要求

自己写代码

4)目标

具备独立开发的能力

5、技术架构

1)开发环境

Linux+MyEclipse6.0+JDK1.6+

Tomcat7+Oracle10g

2)使用的技术

Java+Spring+MyBatis+JSP+JQuery

3)结构

基于MVC代码的分层思想,将代码分为 如下几层

表现层(V):JSP+JQuery

控制层(C):

DispatcherServlet+Controller,即主要由Spring MVC实现。 业务层(C):

由于业务相对简单,不用独立的业务层,而是直接在Controller中实现 业务,在企业真实的项目中,往往 这里是有独立的业务层。

持久层(M):

Spring整合MyBatis来实现数据库的访问。

三、搭建环境

1、声明

在项目组中搭建项目环境应该由项目经理、 结构师、设计师来完成,我们只需要下载 他们构建好的代码,添加业务代码即可。 因此这项内容了解即可,不是重点。

2、搭建环境大致步骤

1)解决访问数据库的问题

使用Spring整合MyBatis来实现数据库 的访问

2)解决处理请求的问题

使用Spring MVC来处理请求

篇二:云笔记复习笔记

云笔记上课笔记整理

1.云笔记(简介) 笔记管理系统

包含:笔记本管理,笔记管理,收藏和分享, 回收站管理,用户登录退出,活动管理等 2.采用技术架构(B/S)

Spring : SpringMVC,SpringIOC,SpringAOP

MyBatis: 数据库操作

Ajax : Asynchronus JavaScript and JSON 异步请求和响应处理

--以XMLHttpRequest对象为核心 --以XML或JSON作为数据交互格式 --以JavaScript语言为基础

--以HTML/CSS技术作为数据渲染 jQuery:客户端js框架

封装了:选择器,属性函数,文档处理函数, 事件函数,隐藏和显示函数,Ajax函数

(HTML)--jQuery/Ajax-->Spring+MyBatis 所有请求都采用Ajax方式交互

ajax请求

-->DispatcherServlet -->HandlerMapping -->Controller=Service

=Dao-->数据库操作 -->调用jackson开发包

(使用:在Controller方法前加@ResponseBody)

(作用:将Controller返回结果转成json字符串输出)

$.ajax({async:true,url:xx,type:post})$.post()

$.get(url)-->$.getJSON()$("div").load("hello.html")

hide();slideUp();show();slideDown()

value:val()/val("xxx")

class:addClass(xxx)/removeClass(xxx)

其他:attr(属性,值)/attr(属性) 文本:text()/text(文本)

HTML:html()/html(html内容)

$("span").append("<a>链接</a>");$("span").empty();$("#login").click(fn);$("#login").click();

JavaScript Object Notation

JavaScript对象格式 var i = 10; var s = "hello"; var arr = [1,2,4];

var json = {"name":"tom","age":20}; json.name json.age

var person = {"name":"tom",

"friends":["rose","jenny"]}; for(var i=0;i<person.friends.length;i++){ person.friends[i]; }

var persons = [{"name":"tom","age":20}, {"name":"scott","age":21}];for(var i=0;i<persons.length;i++){ persons[i].name; persons[i].age; }

请求1--》响应1 请求2--》响应2

==========项目开发=========== 1.创建数据库(MySQL)

show databases;//查看有哪些库 create database jsd1508db;//创建库 drop database xxx;//删除库 use jsd1508db;//使用xxx库 create table xxx( 字段名类型, 字段名类型 )

show tables;//查看当前库中有哪些表 desc 表名;//查看表结构

------cloud_note.sql文件导入---------

set names utf8;//设置客户端和链接编码 source xxx.sql;//sql文件导入

/home/soft01/cloud_note.sql

===========系统登录============== 功能描述:用户输入用户名和密码后, 点击"登录"按钮,发出Ajax请求,

进入服务器端的检测,服务器返回JSON结果, Ajax回调函数解析JSON结果,错误提示错误信息成功进入edit.html界面

1.客户端实现(HTML页面,js,ajax)a.获取请求参数,发送Ajax 获取用户名和密码,发送Ajaxb.Ajax回调函数 有错误显示错误信息 没有错误跳转到edit.html

2.服务器端实现(Spring+MyBatis) /user/login.do -->DispatcherServlet -->HandlerMapping -->LoginController -->UserService

-->UserDao-->cn_user -->返回JSON结果

3.搭建开发环境

--WebRoot引入客户端资源html/js/图片等 --lib添加服务器资源,spring开发包,

mybatis开发包,mybatis-spring.jar整合包 --src添加applicationContext.xml主配置文件

4.响应JSON结果统一格式 var result = {

"status":状态值,"msg":消息,"data":数据 }

$.ajax({

url:xxx,//请求地址type:xxx,//提交方式data:xxx,//提交的数据async:xxx,//同步异步

dataType:xxx,//返回数据类型

success:function(result){...},//成功回调error:function(){...}//失败回调 });

org.tarena.note.entity

if(user != null){

if(user.getPassword().equals(password)){ 正确}else{ 密码错误} }else{

用户名不存在 }

org.tarena.note.controller.user

org.tarena.note.controller.notebook org.tarena.note.controller.note

=====注册====== 1.客户端

a.发送Ajax请求

单击"注册"按钮,发送请求 请求要提交用户名,昵称,密码 b.Ajax回调函数

解析NoteResult数据,成功就切换到登录界面 失败给出提示信息

2.服务器端 /user/regist.do

-->DispatcherServlet -->HanlderMapping -->RegistController -->UserService

-->UserDao-->cn_user(插入)

-->返回NoteResult结构的json数据

/user/regist.do ?name=xx

==========笔记本列表加载=========== 1.客户端 a.发送请求

页面一出来就发送ajax请求 提交数据:用户ID

b.回调处理

解析返回的NoteResult,将笔记信息解析 在页面生成笔记本列表

2.服务器端

/notebook/loadbooks.do -->DispatcherServlet -->hanldermapping -->LoadBooksController -->BookService

-->NoteBookDao-->cn_notebook(查询) -->返回NoteResult结构的json

set names utf8;

source ....cloud_note.sql

mybatis-->jdbc-->mysql

jdbc:mysql://localhost:3306/cloud_note

?useUnicode=true&characterEncoding=utf8

在XML文件中,&符号需要使用&

=========查看笔记列表============= 1.客户端 a.发送请求

用户单击"笔记本"li时,发送ajax

提交数据:笔记本ID b.回调处理

解析返回的NoteResult,将笔记信息解析 生成笔记列表元素

2.服务器处理

/notebook/loadnotes.do?bookId=xx -->DispatcherServlet -->HanlderMapping -->LoadNotesController

-->BookService.loadBookNotes -->NoteDao.findByBookId

-->cn_note(查询)

-->返回NoteResult结构的json

select * from cn_note where cn_notebook_id=?

a.实现NoteDao--编写Note实体类

--编写NoteMapper.xml文件(SQL语句)--编写NoteDao接口

js动态绑定:给现有或未来加入页面的元素绑定处理$("父元素选择器").on(

事件类型,子元素选择器,fn函数);

从父元素中寻找和“选择器”匹配 的子元素,绑定fn处理

==========加载笔记内容============ 1.客户端 a.发送请求

点击"笔记"li元素时,发送ajax请求 提交数据:笔记ID b.回调处理

解析NoteResult数据,将data中数据解析 显示到标题和内容区

2.服务器端

/note/load.do?noteId=xxx -->DispatcherServlet

-->handlermapping

-->LoadNoteController.execute -->NoteService.loadnote -->NoteDao.findById

-->cn_note(查询)

-->返回NoteResult结构的json

select * from cn_note where cn_note_id=?

====创建笔记本=====

服务器端:

/notebook/add.do -->DispatcherServlet -->HanlderMapping -->AddBookController -->BookService

-->NoteBookDao-->cn_notebook(insert)-->返回NoteResult结构的json

=========修改笔记本名称=========== 'dblclick'

/notebook/rename.do -->RenameBookController -->BookService

-->NoteBookDao-->cn_notebook -->返回NoteResult结构的json 任务:创建笔记和保存笔记操作

1.创建笔记的实现

/note/add.do

-->AddNoteController -->NoteService -->NoteDao

-->cn_note(插入)

-->返回NoteResult结构的json

2.保存笔记操作的实现 实际上是笔记更新操作

当用户点击"保存笔记"按钮时,

根据笔记ID更新笔记标题,内容,最后一次 修改时间

/note/update.do

-->UpdateNoteController -->NoteService

-->NoteDao-->cn_note(更新) -->返回NoteResult结构的json

$("#note_list").on("click",".btn_slide_down",function(){$("#note_list li .note_menu").hide();var $noteli = $(this).parents("li");

var $menu = $noteli.find(".note_menu");$menu.show(); });

1.笔记删除

/note/recycle.do

-->RecycleNoteController -->NoteService -->NoteDao

-->cn_note(更新)

-->返回NoteResult结构的json

=====分享笔记搜索===== 针对cn_share进行模糊查询 select * from cn_share

where cn_share_title like '%关键字%';

a.客户端

用户输入关键字后,按回车键发送ajax请求 提交参数:用户输入的关键字 b.服务器端

利用关键字查询cn_share,将结果以NoteResult 结构返回json /note/search.do

-->SearchShareController.execute -->NoteService.searchShare() -->ShareDao.findLikeTitle(搜索) -->返回NoteResult结果 c.ajax回调函数

解析NoteResult结果,在搜索结果列表区 (pc_part_6)

1.Spring事务管理 a.事务

事务和数据库(DML insert,update,delete) 操作相关。

可以提交或回滚(撤销)前面执行过的DML语句 try{

update给A账号扣钱 update给B账号加钱 if(B更新0行){ 回滚 }

提交 }catch(){ 回滚 }

update语句-->默认事务就可以

DML语句 --其他逻辑

事务:保障业务处理完整性.操作涉及提交和回滚 当发生异常后,回滚将前面执行过的数据库操作 SQL语句撤销。

JDBC控制事务:

默认自动提交,执行一个DML就自动commit, 遇到异常自动回滚。

使用时,需要采用下面结构 conn.setAutoCommit(false); //执行DML操作 //执行DML操作

//没问题提交事务conn.commit(); //有问题回滚conn.rollback(); MyBatis控制事务:

默认关闭了JDBC的自动提交 sqlSession.commit(); sqlSession.rollback();

Spring+MyBatis控制事务:

默认一个DML操作自动提交。 利用Spring事务管理可以改变。

Spring事务管理: try{

service方法--》registUser(); 提交 }catch(){ 回滚 }

Spring事务管理可以不用修改每个业务处理组件Spring采用了一种AOP方式进行事务控制。 (面向切面编程),可以在不修改原有组件 情况下切入新增功能。

b.Spring事务管理使用方法

--编程式事务管理(基于TransactionTemplate) --*声明式事务管理(基于配置)

1)基于注解配置(简单方便,侵入性稍高)2)基于XML配置(复杂,侵入性低)

c.事务特性 1)读写特性

默认可读写,如果是查询操作,可以使用只读 @Transactional(readyOnly=true) 2)回滚特性

默认RuntimeException会回滚; 若抛出检查异常,不会回滚。

可以使用rollbackFor指定回滚类型

@Transactional(rollbackFor={IOException.class}) public void f1() throws IOException{

业务逻辑 }

3)传播特性

当一个带有@Transactional方法调用另一个 带@Transactional方法

可以使用propagation属性,默认REQUIRED

@Transactional(

propagation=Propagation.REQUIRED)

篇三:云笔记开题报告

本科生毕业设计(论文)开题报告

论文(设计)题目

作者所在系别

作者所在专业

作者所在班级 作 者 姓 名

作 者 学 号 指导教师姓名

指导教师职称

完 成 时 间

基于Spring MVC和MyBatis的云笔记 计算机与遥感信息技术学院 计算机科学与技术 B12511 王硕 20124051117 耿炎 院长 2015 年 1 月

北华航天工业学院教务处制

说 明

1.根据学校《毕业设计(论文)工作暂行规定》,学生必须撰写《毕业设计(论文)开题报告》。开题报告作为毕业设计(论文)答辩委员会对学生答辩资格审查的依据材料之一。

2.开题报告应在指导教师指导下,由学生在毕业设计(论文)工作前期内完成,经指导教师签署意见及所在专业教研室论证审查后生效。开题报告不合格者需重做。

3.毕业设计开题报告各项内容要实事求是,逐条认真填写。其中的文字表达要明确、严谨,语言通顺,外来语要同时用原文和中文表达。第一次出现缩写词,须注出全称。

4.开题报告中除最后一页外均由学生填写,填写各栏目时可根据内容另加附页。

5.阅读的主要参考文献应在10篇以上(土建类专业文献篇数可酌减),其中外文资料应占一定比例。本学科的基础和专业课教材一般不应列为参考资料。

6.参考文献的书写应遵循毕业设计(论文)撰写规范要求。

7.开题报告应与文献综述、一篇外文译文和外文原文复印件同时提交,文献综述的撰写格式按毕业设计(论文)撰写规范的要求,字数在2000字左右。

毕业设计(论文)开题报告

- 1 -

- 2 -

- 3 -


达内云笔记项目经验》由:建材加盟网互联网用户整理提供;
链接地址:http://www.yuan0.cn/a/25058.html
转载请保留,谢谢!
相关文章