SSH纳税服务项目重点细节归纳5

1.js插件ueditor,文本编辑(为了让后台保存文章格式的需求)

百度开发的文本编辑器,简单到注释都不用我写了
1.页面添加引用

<script type="text/javascript" charset="utf-8" src="${basePath }js/ueditor/ueditor.config.js"></script>
<script type="text/javascript" charset="utf-8" src="${basePath }js/ueditor/ueditor.all.min.js"> </script>
    <!--建议手动加在语言,避免在ie下有时因为加载语言失败导致编辑器加载失败-->
    <!--这里加载的语言文件会覆盖你在配置项目里添加的语言类型,比如你在配置项目里配置的是英文,这里加载的中文,那最后就是中文-->
<script type="text/javascript" charset="utf-8" src="${basePath }js/ueditor/lang/zh-cn/zh-cn.js"></script>

2.js代码引用
添加路径url,强烈建议(影响到项目引用,图片之类的)

window.UEDITOR_HOME_URL = "${basePath }js/ueditor/";
var ue = UE.getEditor('editor');

效果:
这里写图片描述

2.PowerDesigner+hibernate逆向工程

逆向这东西早就知道了(抠鼻),主要是PowerDesigner的操作
1.制作概念数据模型图
这里写图片描述
这里写图片描述
这里写图片描述
多对多中可以指定中间表的column,像图中就在中间表中添加了一个状态列名,不指定就由pd自动指定两张表的主键值生成。

2.把概念图转换成物理模型图。
点点点
这里写图片描述
这里写图片描述
3.确认完之后可以获得相应数据库的建表与关联语句
这里写图片描述
这里写图片描述
4.然后配合hibernate逆向工程杀伤力极强(0.0!!!)

3.BaseService抽取

出于各模块有很多相似的业务方法(增删改查),抽取出一个泛型给Service引用方便修改维护。
1.抽出如图的方法,接口类

public interface BaseService<T> {


    public void save(T entity);

    public void update(T entity);

    public void delete(Serializable id);

    public T findObjectById(Serializable id);

    public List<T> findAll();

    public List<T> findAll(String hql,List<Object> params);

    public List<T> findAll(QueryHelper qh);

    PageResult getPageResult(QueryHelper qh, int pageNo, int pageSize);
}

实现类:
问题在于如何让不同模块的子类根据泛型注入相应的Dao层。

public class BaseServiceImpl<T> implements BaseService<T> {

    private BaseDao<T> baseDao;

    public void save(T entity) {
        // TODO Auto-generated method stub
        baseDao.save(entity);
    }

    public void update(T entity) {
        // TODO Auto-generated method stub
        baseDao.update(entity);
    }

    public void delete(Serializable id) {
        // TODO Auto-generated method stub
        baseDao.delete(id);
    }

    public T findObjectById(Serializable id) {
        // TODO Auto-generated method stub
        return baseDao.findObjectById(id);
    }

    public List<T> findAll() {
        // TODO Auto-generated method stub
        return baseDao.findAll();
    }

解决方式:(Spring的set方法注入方式)
让子类在set方法中为自己注入dao的同时给父类设置与本类相同的dao
(想法很重要!!!)

@Service("infoService")
public class InfoServiceImpl extends BaseServiceImpl<Info> implements InfoService{

    private InfoDao infoDao;

    @Resource
    public void setInfoDao(InfoDao infoDao) {
        super.setBaseDao(infoDao);
        this.infoDao = infoDao;
    }

}

猜你喜欢

转载自blog.csdn.net/weixin_42839338/article/details/81431691