4 练习使用技术:
Struts2 + hibernate5.x + spring4.x + mysql数据库
1 crm:customer relational manager,客户关系管理
2 crm功能介绍
(1)登录功能
3 功能模块划分
第一个 客户管理模块
(1)新增客户功能
(2)客户列表功能
(3)修改客户功能
(4)删除客户功能
(5)分页列表功能
第二个 联系人管理模块
(1)新增联系人
- 选择所属客户
- 上传文件(struts2实现上传)
(2)联系人列表
(3)修改联系人
(4)级联删除(删除客户,把客户里面所有联系人也删除)
第三个 客户拜访管理模块
(1)新增客户拜访
(2)客户拜访列表
- 解决问题:hibernate多对多配置实现方式
第四个 综合查询模块
(1)客户条件查询
- 多条件组合查询
第五个 统计分析模块
(1)根据来源进行统计分析
- 使用hibernateTemplate调用底层sql
-------------------easyUI 第六天中:
//查询所有联系人返回json public String linkmanJson() throws IOException { List<LinkMan> list = linkManService.listLinkMan(); Map<String,Object> map = new HashMap<String,Object>(); map.put("total", list.size()); map.put("rows", list); //禁止循环调用 String json = JSON.toJSONString(map,SerializerFeature.DisableCircularReferenceDetect); HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("application/json;charset=utf-8"); response.getWriter().write(json); return NONE; }
easyUI里面 查询深层属性 的特殊用法
<script type="text/javascript"> $(function() { $("#linkmanid").datagrid({ url:"${pageContext.request.contextPath }/linkman_linkmanJson.action", //返回json数据action路径 columns:[[ {field:'lkmName',title:'联系人名称',width:200}, {field:'lkmGender',title:'联系人性别',width:150}, {field:'lkmPhone',title:'联系人电话',width:100}, //得不到值 {field:'customer.custName',title:'所属客户',width:100} {field:'customer',title:'所属客户',width:100,formatter:function(value,row,index){ if(row.customer){ return row.customer.custName; } }} ]], pagination:true, //是否显示分页 singleSelect:true }); }) </script>
-----栅格系统 ------ div[class*="col"] 说div下 的class 包含 有col 的所有 都被选择出来
栅格系统一定要放入容器中
<div class=”container”></div>
<div class=”container-fluid”></div>
<style> div[class*="col"]{ border:1px solid blue; } </style> </head> <body > <div class="container" style="background:gray"> <div class="row"> <div class="col-md-3 col-xs-6 col-sm-4">44</div> <div class="col-md-3 col-xs-6 col-sm-4">44</div>
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
\ssh框架综合项目开发视频day01\视频\01-今天内容介绍.avi;
\ssh框架综合项目开发视频day01\视频\02-svn概述和体系结构.avi;
\ssh框架综合项目开发视频day01\视频\03-svn服务器安装和使用.avi;
\ssh框架综合项目开发视频day01\视频\04-svn客户端安装和使用.avi;
\ssh框架综合项目开发视频day01\视频\05-svn版本冲突问题.avi;
\ssh框架综合项目开发视频day01\视频\06-eclipse安装svn插件.avi;
\ssh框架综合项目开发视频day01\视频\07-eclipse的svn操作(添加项目到svn).avi;
\ssh框架综合项目开发视频day01\视频\08-eclipse的svn操作(下载项目到工作空间).avi;
\ssh框架综合项目开发视频day01\视频\09-eclipse的svn操作(协同开发).avi;
\ssh框架综合项目开发视频day01\视频\10-crm练习介绍.avi;
\ssh框架综合项目开发视频day01\视频\11-crm练习(ssh环境搭建一).avi;
\ssh框架综合项目开发视频day01\视频\12-crm练习(ssh环境搭建二).avi;
\ssh框架综合项目开发视频day01\视频\13-crm练习(ssh环境搭建三).avi;
\ssh框架综合项目开发视频day01\视频\14-crm练习(登录功能一).avi;
\ssh框架综合项目开发视频day01\视频\15-crm练习(登录功能二).avi;
\ssh框架综合项目开发视频day01\视频\16-crm练习(登录功能三).avi;
\ssh框架综合项目开发视频day01\视频\17-crm练习(客户环境搭建).avi;
\ssh框架综合项目开发视频day02\视频\01-svn官方版本介绍.avi;
\ssh框架综合项目开发视频day02\视频\02-客户管理-添加客户.avi;
\ssh框架综合项目开发视频day02\视频\03-客户管理-客户列表.avi;
\ssh框架综合项目开发视频day02\视频\04-客户管理-客户删除(一).avi;
\ssh框架综合项目开发视频day02\视频\05-客户管理-客户删除(二).avi;
\ssh框架综合项目开发视频day02\视频\06-客户管理-客户修改(到修改页面).avi;
\ssh框架综合项目开发视频day02\视频\07-客户管理-客户修改(修改操作).avi;
\ssh框架综合项目开发视频day02\视频\08-客户管理-客户分页(分页回顾).avi;
\ssh框架综合项目开发视频day02\视频\09-客户管理-客户分页(封装数据到pageBean).avi;
\ssh框架综合项目开发视频day02\视频\10-客户管理-客户分页(页面显示分页信息).avi;
\ssh框架综合项目开发视频day02\视频\11-客户管理-客户分页(查询记录数和分页的方法实现).avi;
\ssh框架综合项目开发视频day02\视频\12-客户管理-条件查询.avi;
\ssh框架综合项目开发视频day02\视频\13-客户管理-条件查询多种方式比较.avi;
\ssh框架综合项目开发视频day03\视频\01_客户和联系人一对多映射配置.avi;
\ssh框架综合项目开发视频day03\视频\02_新增联系人(到新增页面).avi;
\ssh框架综合项目开发视频day03\视频\03_新增联系人(action封装数据).avi;
\ssh框架综合项目开发视频day03\视频\04_新增联系人(添加数据到数据库).avi;
\ssh框架综合项目开发视频day03\视频\05_新增联系人(struts2文件上传获取上传信息).avi;
\ssh框架综合项目开发视频day03\视频\06_新增联系人(文件上传代码实现).avi;
\ssh框架综合项目开发视频day03\视频\07_新增联系人(struts2上传问题处理).avi;
\ssh框架综合项目开发视频day03\视频\08_联系人列表(no session问题).avi;
\ssh框架综合项目开发视频day03\视频\09_修改联系人(到修改页面).avi;
\ssh框架综合项目开发视频day03\视频\10_修改联系人(修改代码实现).avi;
\ssh框架综合项目开发视频day03\视频\11_inverse属性使用.avi;
\ssh框架综合项目开发视频day03\视频\12_客户和联系人级联删除(inverse属性深入).avi;
\ssh框架综合项目开发视频day04\视频\01-内容介绍和input错误处理.avi;
\ssh框架综合项目开发视频day04\视频\02-客户拜访需求介绍.avi;
\ssh框架综合项目开发视频day04\视频\03-用户和客户关系分析(拆分成两个一对多).avi;
\ssh框架综合项目开发视频day04\视频\04-用户和客户关系配置(拆分成两个一对多).avi;
\ssh框架综合项目开发视频day04\视频\05-用户和客户配置测试.avi;
\ssh框架综合项目开发视频day04\视频\06-新增客户拜访(到新增页面).avi;
\ssh框架综合项目开发视频day04\视频\07-新增客户拜访(添加数据到数据库).avi;
\ssh框架综合项目开发视频day04\视频\08-客户拜访列表.avi;
\ssh框架综合项目开发视频day04\视频\09-BaseDao抽取介绍.avi;
\ssh框架综合项目开发视频day04\视频\10-BaseDao抽取(一).avi;
\ssh框架综合项目开发视频day04\视频\11-BaseDao抽取(二).avi;
\ssh框架综合项目开发视频day04\视频\13-BaseDao抽取(三).avi;
\ssh框架综合项目开发视频day04\视频\14-BaseDao抽取(四).avi;
\ssh框架综合项目开发视频day04\视频\15-多条件组合查询(调用hibernate模板find方法).avi;
\ssh框架综合项目开发视频day04\视频\16-多条件组合查询(测试).avi;
\ssh框架综合项目开发视频day05\视频\01-今天内容介绍.avi;
\ssh框架综合项目开发视频day05\视频\02-客户信息查询(离线对象查询).avi;
\ssh框架综合项目开发视频day05\视频\03-联系人信息查询(hql实现查询).avi;
\ssh框架综合项目开发视频day05\视频\04-联系人信息查询(离线对象实现查询).avi;
\ssh框架综合项目开发视频day05\视频\05-数据字典表介绍和分析.avi;
\ssh框架综合项目开发视频day05\视频\06-数据字典表和客户表关系配置.avi;
\ssh框架综合项目开发视频day05\视频\07-改造客户添加功能(添加数据字典表).avi;
\ssh框架综合项目开发视频day05\视频\08-统计分析功能(统计sql语句编写一).avi;
\ssh框架综合项目开发视频day05\视频\09-统计分析功能(统计sql语句编写二).avi;
\ssh框架综合项目开发视频day05\视频\10-统计分析功能(根据客户来源统计).avi;
\ssh框架综合项目开发视频day05\视频\11-统计分析功能(根据客户级别统计).avi;
\ssh框架综合项目开发视频day05\视频\12-crm知识点总结.avi;
\ssh框架综合项目开发视频day06\视频\01-jquery easyui概述.avi;
\ssh框架综合项目开发视频day06\视频\02-json数据格式.avi;
\ssh框架综合项目开发视频day06\视频\03-jquery ajax操作.avi;
\ssh框架综合项目开发视频day06\视频\04-jquery ajax效果演示.avi;
\ssh框架综合项目开发视频day06\视频\05-easyui布局.avi;
\ssh框架综合项目开发视频day06\视频\06-easyui菜单.avi;
\ssh框架综合项目开发视频day06\视频\07-easyui的datagrid执行过程.avi;
\ssh框架综合项目开发视频day06\视频\08-easyui的datagrid基本属性介绍.avi;
\ssh框架综合项目开发视频day06\视频\09-datagrid操作(action返回数据和fastjson基本使用).avi;
\ssh框架综合项目开发视频day06\视频\10-datagrid实现客户列表功能.avi;
\ssh框架综合项目开发视频day06\视频\11-datagrid实现客户列表功能(让set集合不进行转换).avi;
\ssh框架综合项目开发视频day06\视频\12-datagrid分页实现(一).avi;
\ssh框架综合项目开发视频day06\视频\13-datagrid分页实现(二).avi;
\ssh框架综合项目开发视频day06\视频\14-datagrid实现联系人列表(禁止循环调用).avi;
\ssh框架综合项目开发视频day06\视频\15-datagrid实现联系人列表(效果演示).avi;