ssh开发CRM

知识点:
hibernate的缺陷:
如果项目中有复杂查询操作,使用hibernate框架很难实现,需要写普通sql语句,这也是hibernate的一个缺陷
另一个缺陷,有复杂关系映射配置,性能低。


input错误处理:
多对多第三张表字段问题,只有两个字段没有其他字段


dos命令窗口查看所有端口号:
输入:netstat -anno
根据端口号对应的PID到任务管理器进程中查找对应的程序


//之前web阶段 jsonlib插件
//今天使用 fastjson使用转换,导入一个jar包===》fastjson-1.2.8.jar
String json = JSON.toJSONString(listdict);//生成的也是json数据类型


//如果返回json格式数据,设置返回类型 application/json
response.setContentType("application/json;charset=utf-8");
客户级别与客户是一对多的关系。
//获取客户级别id,传统方式是把级别id封装到客户实体类对象级别对象里面
// String dictid = ServletActionContext.getRequest().getParameter("dicitid");
// Dict dict = new Dict();
// dict.setDictid(Integer.parseInt(dictid));
// customer.setDict(dict);
简化方式,在下拉列表里写表达式
<select id="s1" name="dict.dictid">
//查询客户每页记录数
DetachedCriteria criteria=DetachedCriteria.forClass(Customer.class);
List<Customer> list = (List<Customer>) this.getHibernateTemplate().findByCriteria(criteria, begin, pageSize);


jQuery遍历函数
方式一
$.each(data,function(i,obj){});//i是索引值,obj是遍历出的当前对象,data是要遍历的对象




方式二
$(data).each(function(i,obj){});


级联删除配置原则:根据谁删除在谁的映射文件中做配置


多条件查询
拼接sql语句,创建list集合设置条件值,list.toArray()讲集合转成数组


要实现的功能
1、增加联系人
2、修改联系人
3、删除联系人
4、条件查询联系人
5、BaseDao抽取




public class BaseDaoImpl<T> extends HibernateDaoSupport implements BaseDao<T>{
private Class clazz;//实体类class

public BaseDaoImpl() {
//获取子类对象如CustomerDaoImpl的class
Class clazz2 = this.getClass();
//获取参数化类型
Type type = clazz2.getGenericSuperclass();
//使用子接口 ParameterizedType
ParameterizedType ptype = (ParameterizedType)type;
Type[] types = ptype.getActualTypeArguments();
Class tclass = (Class)types[0];//Class是Type的实现类
this.clazz=tclass;
}


登录之后页面嵌套页面问题解决:
在登录页面<form>标签上添加属性target="_parent"
注入普通属性用@Value注解


hibernate调用普通sql语句,使用SQLQuery
SQLQuery对象获取session.createSQLQuery(sql);
要实现的功能:
1、用户、客户多对多关系建立,拆分成两个一对多关系,中间用拜访表联系,新建一个拜访实体类
2、拜访客户记录增删该查
3、登录功能判断拦截器配置
自定义拦截器public class LoginInterceptor extends MethodFilterInterceptor
自定义拦截器还要在struts.xml文件中配置,还要配置默认的拦截器defaultStack
4、根据客户来源统计数量
//根据客户来源统计数量
public List countSource() {
Session session = this.getSessionFactory().getCurrentSession();
String sql="SELECT COUNT(*) AS number,custSource FROM t_customer GROUP BY custSource;";
SQLQuery sqlQuery = session.createSQLQuery(sql);
sqlQuery.setResultTransformer(Transformers.aliasToBean(HashMap.class));设置list转换类型,未设置之前list集合中存储的是一个个Object[]数组
数组 List list = sqlQuery.list();//list集合中存储的类型是一个个hashmap,hashmap中的数据是{number="2",custSource="广告"}
return list;
}
页面遍历:
<c:forEach items="${list }" var="map">
<TR
style="FONT-WEIGHT: normal; FONT-STYLE: normal; BACKGROUND-COLOR: white; TEXT-DECORATION: none">
<!--  遍历域对象里面list集合,得到每部分是map集合
  根据map的key获取值  -->
<TD>
${map.num }
</TD>
<TD>
${map.custSource }
</TD>
</TR>
</c:forEach>
5、ssh注解开发








问题:
关于找不到数据库主键的问题
异常:Cannot add or update a child row: a foreign key constraint fails
(`db_crm`.`t_linkman`, CONSTRAINT `FKt5d0o8ya33tuqmxotvfl6gh26` FOREIGN KEY (`linkcustid`) REFERENCES `t_linkman` (`linkid`))
关于分页页面代码的配置,设置url路径,或者页面路径后面get方式传参数
选中内容整体左移
复杂sql语句查询,用SQLQuery得到的list集合如何转换?可以用实体类类型转换吗???????
jquery easyui
布局:东西南北中布局方式,中间的不能去掉
菜单:
JSON数据格式有两种:
Ajson对象形式
{“name”:"lucy","age":20}
Bjson数组形式
[{“name”:"mary","age":20},{“name”:"lucy","age":20}]
C这两种格式混合使用


json是js的一种结构,使用js解析json数据,根据键获取值
var obj={“name”:"lucy","age":20};
obj.name<===>obj.age
document.write(obj.name)可以将数据输出到页面,括号中可以写html标签
document.write("</br>")


联系人列表功能
fastjson转化数据的问题
jquery easyui底层实现技术
(1)json数据格式
(2)jquery ajax操作


 jquery的ajax操作的方法
(1)get方法
(2)post方法
(3)ajax方法




ssh总结:
struts2
A、action操作
a、获取表单参数:模型驱动和属性封装
b、操作域对象
c、配置常量、action通配符配置
B、拦截器
原理:
自定义拦截器


hibernate框架
A、orm思想
B、映射配置:
一对多关系配置
核心配置,基本信息配置可以去掉,原因影响性能
C、crud操作,hibernateTemplate实现
D、调用hibernate底层代码,调用普通sql语句
E、一级缓存:
特点:
默认打开的,缓存的是持久态数据


spring
A、创建对象、注入属性
配置文件和注解方式实现
B、AOP应用:spring配置事务
配置文件方式
注解方式
C、jdbcTemplate实现crud操作
查询特点:需要自己写实现类封装数据
D、ssh框架的整合
struts2和spring整合,action交给spring管理
hibernate和spring整合
配置数据库在spring里面
在spring配置文件中引入hibernate核心配置文件
E、配置监听器:
在服务器启动时加载spring配置文件


crm案例:


A、no session问题
配置过滤器OpenSessionInViewFilter
B、struts2实现文件上传
C、多对多拆分方式
D、多条件查询:hql、qbc、hibernate底层实现
E、hibernate调用普通sql语句使用SQLQuery对象
一般使用map集合转换


F、web阶段:
jquery ajax操作(使用频繁,熟练掌握)
G、sql语句编写



































































































  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值