JFinal和数据库的交互

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;
   }
}

猜你喜欢

转载自blog.csdn.net/weixin_36810906/article/details/80447967