1.struts2上传文件
上传文件需要几个条件:
1.必须是post 还需改变enctype属性 enctype="multipart/form-data"
2.input file
3.在action中配置用于接收的文件,文件名属性及其get set方法
4.调用FileUtils.copefile(file1,file2)方法 file1本地文件 file2为存储在服务中的文件
5.struts2上传文件的大小的限制 2M 通过常量的配置,但是不能根本的解决,struts2中有一种机制超过上传文件大小的配置result input来指定到错误页面
2.多对多配置方式
配置hibernate时,缺陷:第三张表只有两个字段
拆分成两个一对多
3.离线对象使用
1分页
public List<Custermer> pageBean(int start, int pageRecord) { // TODO Auto-generated method stub DetachedCriteria criteria=DetachedCriteria.forClass(Custermer.class); List<Custermer> list=(List<Custermer>) this.getHibernateTemplate().findByCriteria(criteria, start, pageRecord); if(list!=null&&list.size()!=0){ return list; } return null; }
2.多条件查询
public List<LinkMan> findContion(LinkMan linkMan) { // TODO Auto-generated method stub DetachedCriteria criteria=DetachedCriteria.forClass(LinkMan.class); if(linkMan.getCustermer().getCid()!=0&&!"".equals(linkMan.getCustermer().getCid())){ criteria.add(Restrictions.eq("custermer.cid", linkMan.getCustermer().getCid())); } if(linkMan.getLkmName()!=null&&!"".equals(linkMan.getLkmName())){ criteria.add(Restrictions.eq("lkmName", linkMan.getLkmName())); } if(linkMan.getLkmGender()!=null&&!"".equals(linkMan.getLkmGender())){ criteria.add(Restrictions.eq("lkmGender", linkMan.getLkmGender())); } return (List<LinkMan>) this.getHibernateTemplate().findByCriteria(criteria); }
4.调用底层sql实现
由于hibernate模版不能进行复杂的查询,要实现要调用底层的hibernate代码
多表的查询(内连接) 分组查询
1.得到Session
2.创建SQLQuery
3.由于list集合中默认的为数组的形式但是这样取值很不方便 ,所以需要改变他的结果形式 setResultTransacformer(Transacformers的方法)
4.得到list集合
5.BaseDao抽取
1.创建一个接口 接口中有那些需要提取的方法 T指代任意数据类型
2.创建接口的实现类 还要继承HibenrateDaoSupport类
术语:在构造方法中实现
1.首先得到是正在执行的具体的接口实现类
2.得到参数类型BaseDaoImple<Custermer>
3.得到实际参数custermer
3.在具体的接口继承BaseDao接口即可
4.在具体的接口实现类继承BaseDao接口的实现类
6.配置实体类之间的关系没必要都进行配置要根据需求来进行书写
数据字典与实体类的配置
什么是数据字典呢?通俗来说一些特定的称谓来建一个表来查询
要根据需求来进行配置