JFinal-layui极速开发企业应用管理系统v1.2.3发布

JFinal+layui 极速开发企业应用管理系统,是以 JFinal+layui 为核心的企业应用项目架构,利用 JFinal 的特性与 layui 完美结合,达到快速启动项目的目的。让开发更简单高效,即使你不会 layui,也能轻松掌握使用。

此次更新最主要是为了解决开发者对不同数据库的需要问题,所以优化了BaseService底层方法,能够适应不同的数据库问题,以及用户管理因为group by 的语法不兼容问题,都通过此次优化彻底解决了,开发者可以很顺利的根据自己的数据库配置轻松的运行本系统,不需要修改SQL,非常方便。

这一次优化完成,开发使用就非常方便了,可以满足广大开发者的需要了。

码云地址:https://gitee.com/QinHaiSenLin/Jfinal-layui

开源中国更新资讯:https://www.oschina.net/news/105663/jfinal-layui-1-2-3-released

v1.2.3 更新内容:
1、BaseService新增getDb()方法,满足多数据源情况下,做到共享BaseService,同时,分页使用jfinal底层的分页方法,所以可以兼容多数据库使用问题:

	/**
	 * 指定数据源,多数据源情况下使用<br/>
	 * 列如oracle数据源别名为oracle,在service重写该方法:
	 * <pre>
	 * @Override
	 * public String getDb(){
	 *	return "oracle";
	 * }
	 * </pre>
	 * @return 若return null,则使用主数据源
	 * @author QinHaiLin
	 * @date 2019年3月13日
	 */
	public String getDb(){
		return null;
	}
	
	/**
	 * 获取DBPro数据源
	 * @return
	 */
	private DbPro getDbPro(){
		if(getDb()!=null){
			return Db.use(getDb());
		}
		return Db.use();
	}
	
	
private Grid getGrid(int pageNumber,int pageSize,String sql){
	SqlPara sqlPara=new SqlPara().setSql(sql);
	Page<Record> page=getDbPro().paginate(pageNumber, pageSize, sqlPara);
	return new Grid(page.getList(), pageNumber, pageSize, page.getTotalRow());
}

2、用户默认分配组织机构部门关系,避免部门ID为空的用户关联查询数据重复,这样就可以去掉了用户管理部门关联查询时group by不兼容问题。

INSERT INTO sys_org VALUES ('sys', 'sys', '', '', '组织机构', '系统管理员', NULL, NULL, NULL, NULL, NULL, 1);

public Grid page(int pageNumber, int pageSize, Record record) {
	Record rd = new Record();
	rd.set("a.user_code like", record.getStr("userCode"));
	rd.set("a.user_name like", record.getStr("userName"));
	rd.set("a.sex=", record.getStr("sex"));
	String sql=Db.getSql("core.getUserList");
	String orgId=record.getStr("orgId");		
	//部门用户列表
	String type=record.getStr("type");		
	if("org".equals(type)){
			
	    StringBuffer sbf=new StringBuffer();
	    sbf.append("'").append(orgId).append("'");		
	    String orgIds=orgService.getIdsByOrgId(orgId,sbf);
			
	    sql=Db.getSql("core.getOrgUserList").replace("?", orgIds);            
	    //return queryForList(sql,pageNumber, pageSize, rd, "group by a.id");
	     return queryForList(sql,pageNumber, pageSize, rd, null);			
        }		
	//用户管理列表
	rd.set("a.org_id=", orgId); 
	 //return queryForList(sql,pageNumber, pageSize, rd, "group by a.id");
	return queryForList(sql,pageNumber, pageSize, rd, null);
}

3、BaseController导出方法优化,调整个别参数,避免重载方法误用问题。

/**
 * 文件名放前面,避免误用
 * @param fileName
 * @param title
 * @param sql
 * @param paras
 */
@NotAction
public void exportExcel(String fileName, String[] title, String sql, Object... paras) {
	fileService.exportExcelxlsx(getResponse(), title, fileName, sql, paras);
}	

@NotAction
public void exportExcel(String[] title, String sql, Object... paras) {
	fileService.exportExcelxlsx(getResponse(), title, null, sql, paras);
}

4、数据库字段名统一配置小写,避免在oracle数据库下前端修改字段名。

// 配置属性名(字段名)大小写,true:小写,false:大写,统一小写,切换oracle数据库的时候可以不用改页面字段
arp.setContainerFactory(new CaseInsensitiveContainerFactory(true));


评论区

hua123456

2019-04-08 15:55

请问下如何改成sqlserver数据库

琴海森林

2019-04-08 15:59

@hua123456 先改配置文件的数据库,然后改MainConfig的数据库方言,最后加SQLServer驱动

wq

2019-04-09 10:18

请问应该如何使用?我搭建起来了,也能添加功能了,添加之后应该怎么使用啊?访问80端口的话看到的都是管理界面,是不是应该有个后台的网站页面?

琴海森林

2019-04-09 11:05

@wq 这个就是管理系统,也就是后台管理系统,你新增的功能要通过权限分配显示

wq

2019-04-09 13:19

@琴海森林 哦,好的,非常感谢,我再研究研究

wangwei1997

2019-04-10 21:07

下载不下来怎么办

琴海森林

2019-04-11 08:47

@wangwei1997 进去码云,点击右边的"克隆/下载”按钮

迷茫的小狼

2019-09-02 09:19

eclipse下访问正常,用Undertow打包后,访问报404,请大神们指教

迷茫的小狼

2019-09-02 09:20

@琴海森林 eclipse下访问正常,用Undertow打包后,访问报404,请大神们指教

琴海森林

2019-09-02 09:25

@迷茫的小狼 看一下这里的文档https://www.qinhaisenlin.com/doc/2-2

迷茫的小狼

2019-09-02 10:14

@琴海森林 非常感谢,按照你的指教,已经OK了