本文来自: fair-jm.iteye.com 转截请注明出处
JFinal 介绍自行移步到其官网:
http://www.jfinal.com/
简单来说JFinal的定位是接近全栈的 所以我这边硬生生把JOOQ拉进来有点违背他的用意
这篇文章也就当作一个记录好了 以免以后忘记什么东西
环境使用:
- JDK1.8
- Tomcat8
- JFinal 1.8(1.9已经出了 但maven仓库里还没有 我就偷懒用了1.8)
- JOOQ 3.4.4
JOOQ的codegen使用很简单 可以参考官网手册
http://www.jooq.org/doc/3.4/manual-pdf/jOOQ-manual-3.4.pdf
这里不再累述
首先是maven的依赖项:
<dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.33</version> </dependency> <dependency> <groupId>org.jooq</groupId> <artifactId>jooq-meta</artifactId> <version>3.4.4</version> </dependency> <dependency> <groupId>com.jfinal</groupId> <artifactId>jfinal</artifactId> <version>1.8</version> </dependency> <dependency> <groupId>org.jooq</groupId> <artifactId>jooq</artifactId> <version>3.4.4</version> </dependency> <dependency> <groupId>org.jooq</groupId> <artifactId>jooq-codegen</artifactId> <version>3.4.4</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-access</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.7</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.9</version> </dependency> </dependencies> <build> <finalName>XX</finalName> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.2</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </pluginManagement> </build> </project>
logback的配置:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%date{yyyy-MM-dd HH:mm:ss ZZZZ} - [%level] - from %logger in %thread %n%message%n%xException%n</pattern> </encoder> </appender> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>logs/application.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- Daily rollover with compression --> <fileNamePattern>application-log-%d{yyyy-MM-dd}.gz</fileNamePattern> <!-- keep 30 days worth of history --> <maxHistory>30</maxHistory> </rollingPolicy> <encoder> <pattern>%date{yyyy-MM-dd HH:mm:ss ZZZZ} - [%level] - from %logger in %thread %n%message%n%xException%n</pattern> </encoder> </appender> <!-- ingore log --> <logger name="org.jooq.Constants" level="OFF" /> <logger name="com.alibaba.druid.pool.DruidDataSource" level="OFF" /> <root level="INFO"> <appender-ref ref="STDOUT" /> <appender-ref ref="FILE" /> </root> </configuration>
web-inf.xml的配置:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"> <filter> <filter-name>jfinal</filter-name> <filter-class>com.jfinal.core.JFinalFilter</filter-class> <init-param> <param-name>configClass</param-name> <param-value>com.cc.xx.config.Config</param-value> </init-param> </filter> <filter-mapping> <filter-name>jfinal</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <display-name>Archetype Created Web Application</display-name> </web-app>
Config.java内容:
package com.cc.xx.config; ... ... public class Config extends JFinalConfig { @Override public void afterJFinalStart() { super.afterJFinalStart(); DBTool.shutDown(); } @Override public void beforeJFinalStop() { super.beforeJFinalStop(); DBTool.getDataSource(); } @Override public void configConstant(Constants me) { me.setDevMode(true); me.setViewType(ViewType.FREE_MARKER); } @Override public void configRoute(Routes me) { me.add("/test", Test.class); } ... ... }
数据库属性配置:
db.url=jdbc:mysql://localhost:3306/xx db.name=root db.password= ds.initialSize=1 ds.maxActive=20 ds.minIdle=10 ds.maxIdle=15 ds.maxWait=60000 ds.validationQuery=SELECT 'x'
连接池配置:
package com.cc.xx.db; ... ... public class DBTool { private static Logger LOG = LoggerFactory.getLogger(DBTool.class); private volatile static DruidDataSource dataSource; public static DataSource getDataSource() { if (dataSource == null) { synchronized (DBTool.class) { if (dataSource == null) { Properties prop = new Properties(); try { prop.load(DBTool.class.getResourceAsStream("/db.properties")); } catch (IOException e) { LOG.error("getDataSource", e); } dataSource = new DruidDataSource(); dataSource.setUrl((String) prop.get("db.url")); dataSource.setUsername((String) prop.get("db.name")); dataSource.setPassword((String) prop.get("db.password")); dataSource.setInitialSize(Integer.valueOf((String) prop.get("ds.initialSize"))); dataSource.setMinIdle(Integer.valueOf((String) prop.get("ds.minIdle"))); dataSource.setMaxActive(Integer.valueOf((String) prop.get("ds.maxActive"))); dataSource.setMaxWait(Long.valueOf((String) prop.get("ds.maxWait"))); dataSource.setValidationQuery((String) prop.get("ds.validationQuery")); } } } return dataSource; } public static void shutDown() { if (dataSource != null) { dataSource.close(); } } }
测试代码:
package com.cc.xx.controller; ... ... public class Test extends Controller { public void index() { List<String> s = DSL.using(DBTool.getDataSource(), SQLDialect.MYSQL).select(FACTORY.ID).from(FACTORY).limit(0, 10) .fetch(r -> r.getValue(FACTORY.ID)); renderJson(s); } }
这样就好了
可以看到这和我在play2和slick2整合一样 是单独使用了连接池 类似一种外挂的形式放到原有框架中去
不过也就是简单的整合 具体使用以后会再补充
本文来自: fair-jm.iteye.com 转截请注明出处
相关推荐
基于jfinal+element ui+vue的开源商城管理系统 基于jfinal+element ui+vue的开源商城管理系统 基于jfinal+element ui+vue的开源商城管理系统 基于jfinal+element ui+vue的开源商城管理系统 基于jfinal+element ...
JFInal视频+源码 JFInal视频+源码 JFInal视频+源码 JFInal视频+源码 JFInal视频+源码 JFInal视频+源码 JFInal视频+源码 JFInal视频+源码 JFInal视频+源码 JFInal视频+源码 JFInal视频+源码 JFInal视频+源码 JFInal...
jfinal+shiro简单的整合,自己整合的
maven整合jfinal+mysql,无需tomcat,包含sql文件,包含所需jar包。 注:pom中没有录入所需资源
基于jfinal+vue+ElementUI的前后端分离CRM系统 主要技术栈 核心框架:jfinal3.8 缓存:redis caffeine 数据库连接池:Druid 工具类:hutool,fastjson,poi-ooxml 定时任务:jfinal-cron 项目构建工具:maven ...
让开发更简单高效,即使你不会layui,也能轻松掌握使用。该项目的核心功能有:登录、功能管理、角色管理(包含了权限管理)、用户管理、部门管理、系统日志、业务字典,报表管理、代码生成器、通用的附件上传、下载...
eclipse+oracle+jfinal+shiro+sql自己参考网上资料整理!
SSM+Maven+Jfinal+仓库管理系统SSM+Maven+Jfinal+仓库管理系统
demo实现了分页列表监听了复选框、单击、双击事件,Demo实现了简单的增、删、改、查基本操作功能,添加了Echarts对用户性别的数据分析、用户添加时间的数据分析。POI表格导入功能。下载即可运行。
基于JFinal+Hadoop+mysql的云盘管理系统 源代码和sql文件都在里面 参考以下吧,大家! 详情咨询博客地址: http://blog.csdn.net/cptcpt123/article/details/20581339 【实例截图】 【核心代码】 JFinalHadoopmysql...
jfinal+shiro实例 搞起来!搞起来!搞起来!
JFinal+Maven+FreeMarker入门实例 JFinal这个框架确实不错,受够了Struts 2
JFinal + shiro+freemarker +bootstrap3 后台基础管理 开发说明 1.导入 doc/jfinal-base-admin.sql 2.修改数据库配置文件 src/main/resources/development下example.db.properties文件名为 db.properties 并填写对应...
简单的使用 jfinal + echarts 实现了从 Oracle 数据库中读取数据并显示成饼图。
jfinal+jetbrick-template博客系统。涉及多重java新技术,性能良好,redis做缓存。
JFinal+mysql增删改查实例 mysql数据库,访问地址都在里面,导入即可运行!
基于jfinal+shiro+layui+freemarker+ueditor+mysql等框架和技术结合maven多模块方式构建开发的一款通用内容发布系统。
基于JFinal+Hadoop+mysql的云盘管理系统 源代码和sql文件都在里面 参考以下吧,大家! 详情咨询博客地址: http://blog.csdn.net/cptcpt123/article/details/20581339
一个简单仓库管理系统,使用开源技术JFinal+Shiro+DWZ,数据库采用MySQL,本项目处于开发期可作为学习JFinal/DWZ和Shiro的参考。 Apache2.0开源协议,友好商业开源