独立使用JFinal中操作数据库的方法——ActiveRecord + Druid
需要三个包:
- druid-1.1.8.jar
- jfinal-3.5-bin.jar
- mysql-connector-java-5.1.46.jar
首先,我们需要一个当TomCat启时就运行的java类来 “初始化” ActiveRecord
在web.xml种添加如下配置
<!-- 初始化ActiveRecord -->
<servlet>
<servlet-name>ActiveRecord</servlet-name>
<servlet-class>com.soft.active_record.ActiveRecord</servlet-class>
<!-- 程序启动后就会执行 -->
<load-on-startup>1</load-on-startup>
</servlet>
编写java类
package com.soft.active_record;
/**
* 初始化ActiveRecord
*/
import javax.servlet.http.HttpServlet;
import com.jfinal.kit.PropKit;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.activerecord.dialect.MysqlDialect;
import com.jfinal.plugin.druid.DruidPlugin;
public class ActiveRecord extends HttpServlet {
private static final long serialVersionUID = 2311438868270668790L;
public void init() {
System.err.println("==========ActiveRecord初始化开始");
PropKit.use("config.properties");
DruidPlugin dbPlugin = new DruidPlugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password"));
dbPlugin.setFilters("stat"); //如果没有这一步将无法使用druid查看执行的SQL
dbPlugin.setDriverClass("com.mysql.jdbc.Driver");
ActiveRecordPlugin arp = new ActiveRecordPlugin(dbPlugin);
arp.setShowSql(PropKit.getBoolean("devMode"));
arp.setDialect(new MysqlDialect());
dbPlugin.start();
arp.start();
System.err.println("==========ActiveRecord初始化结束");
}
}
在 src 下建立 config.properties 文件
dbType=mysql
jdbcUrl = jdbc:mysql://127.0.0.1:3306/school?characterEncoding=utf8&useSSL=false&zeroDateTimeBehavior=convertToNull
user = root
password =root
devMode =true
在web.xml 中添加druid配置
<!--连接池启用Web监控统计功能start -->
<filter>
<filter-name>DruidWebStatFilter</filter-name>
<filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
<init-param>
<param-name>exclusions</param-name>
<param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>DruidWebStatFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 配置 Druid-->
<servlet>
<servlet-name>DruidStatView</servlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
<init-param>
<!-- 不允许清空统计数据 -->
<param-name>resetEnable</param-name>
<param-value>false</param-value>
</init-param>
</servlet>
<!-- Druid 访问路径 -->
<servlet-mapping>
<servlet-name>DruidStatView</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
完整的web.xml如下
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>test_JFinalActiveRecord</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<!-- 初始化ActiveRecord -->
<servlet>
<servlet-name>ActiveRecord</servlet-name>
<servlet-class>com.soft.active_record.ActiveRecord</servlet-class>
<!-- 程序启动后就会执行 -->
<load-on-startup>1</load-on-startup>
</servlet>
<!--连接池启用Web监控统计功能start -->
<filter>
<filter-name>DruidWebStatFilter</filter-name>
<filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
<init-param>
<param-name>exclusions</param-name>
<param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>DruidWebStatFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 配置 Druid-->
<servlet>
<servlet-name>DruidStatView</servlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
<init-param>
<!-- 不允许清空统计数据 -->
<param-name>resetEnable</param-name>
<param-value>false</param-value>
</init-param>
</servlet>
<!-- Druid 访问路径 -->
<servlet-mapping>
<servlet-name>DruidStatView</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
<!-- http://localhost:8080/test_JFinalActiveRecord/druid/sql.html -->
</web-app>