debug获取数据跟踪list的展示信息,寻找sql.
JFinal连接数据库配置说明
数据库采用的是postgresql
1、加载配置文件JFinal特有的
/** * 配置常量 */ public void configConstant(Constants me) { // 加载少量必要配置,随后可用PropKit.get(...)获取值 PropKit.use("a_little_config.txt"); me.setDevMode(PropKit.getBoolean("devMode", false)); me.setViewType(ViewType.FREE_MARKER); }
2.连接数据库的配置文件a_little_config.txt
devMode = true #开发环境 #本地环境 调试前后台 base_jdbcUrl = jdbc:mysql://localhost/yg_db?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useUnicode=true&relaxAutoCommit=true&useSSL=false&serverTimezone=GMT%2B8 base_user = root base_password = root busi_jdbcUrl = jdbc:mysql://localhost/yg_db2?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useUnicode=true&relaxAutoCommit=true&useSSL=false&serverTimezone=GMT%2B8 busi_user = root busi_password = root #线上环境 #代码生成保存地址 #genCodePath = F:/genCode/ genCodePath = /Users/user/Desktop/genCode/3.使用C3p0Plugin连接数据库
/** * 配置插件 */ public void configPlugin(Plugins me) { // 配置C3p0数据库连接池插件 C3p0Plugin c3p0Plugin = new C3p0Plugin(PropKit.get("base_jdbcUrl"), PropKit.get("base_user"), PropKit.get("base_password").trim()); me.add(c3p0Plugin); // 配置ActiveRecord插件 ActiveRecordPlugin arp = new ActiveRecordPlugin("tspace_base", c3p0Plugin); arp.setShowSql(true); me.add(arp); arp.addMapping("tspace_head", TspaceHead.class); arp.addMapping("tspace_field", TspaceField.class); arp.addMapping("tspace_head_btn", TspaceHeadBtn.class); arp.addMapping("tspace_head_js", TspaceHeadJs.class); arp.addMapping("sys_menu", Menu.class); arp.addMapping("sys_menu_btn", MenuBtn.class); arp.addMapping("sys_menu_datarule", MenuDatarule.class); arp.addMapping("sys_user", SysUser.class); arp.addMapping("sys_menu_btn", SysMenuBtn.class); arp.addMapping("sys_oplog", SysOplog.class); arp.addMapping("common_file", CommonFile.class); arp.addMapping("task_base", TaskBase.class); arp.addMapping("task_log", "id", TaskLog.class); arp.addMapping("sys_login_log", "id", SysLoginLog.class); //实体类需要在这里配置一个class映射model //业务数据库 C3p0Plugin c3p0PluginAir = new C3p0Plugin(PropKit.get("busi_jdbcUrl"), PropKit.get("busi_user"), PropKit.get("busi_password").trim()); me.add(c3p0PluginAir); ActiveRecordPlugin arpAir = new ActiveRecordPlugin("tspace_busi", c3p0PluginAir); arpAir.setShowSql(true); arpAir.addMapping("stock_history_log", StockHistoryLog.class); arpAir.addMapping("claw_book_url", ClawBookUrl.class); me.add(arpAir); }
调用controller,service,dao,和数据库进行交互。
package com.tspace.model; import com.jfinal.plugin.activerecord.Model; import com.tspace.common.util.StringUtil; import java.util.ArrayList; import java.util.List; public class Menu extends Model<Menu> { private static final long serialVersionUID = 1L; public static final Menu me = new Menu(); private List<Menu> subMenuList = new ArrayList<Menu>(); public List<Menu> findAll() { return find("select * from sys_menu order by order_num asc"); } public List<Menu> findByUser(SysUser user) { List<Menu> result = new ArrayList<Menu>(); String roles = user.getStr("roles"); if(StringUtil.isNotEmpty(roles)) { result = find("select distinct b.* from sys_role_menu a join sys_menu b on a.menu_id=b.id where a.role_id in(" + roles + ")"); } return result; } public List<Menu> getSubMenuList() { return subMenuList; } public void setSubMenuList(List<Menu> subMenuList) { this.subMenuList = subMenuList; } }