文档章节

SpringMVC 集成 JFinal Dao

大树被注册了
 大树被注册了
发布于 2015/11/03 22:57
字数 425
阅读 1361
收藏 63

现在接触到一个项目,使用的的是SpringMVC,持久层用了,Hibernate、MyBatis、JDBC.............................,几百个表,人都要写炸了.................

开始怀恋以前使用JFinal的时候,方便的Dao操作;

研究了一下,就集成进来了,经过测试,MySql,Oracle,事物这些也都正常。

<dependency>
    <groupId>com.jfinal</groupId>
    <artifactId>jfinal</artifactId>
    <version>2.0</version>
</dependency>
<dependency>
    <groupId>com.jfinal</groupId>
    <artifactId>jfinal-ext</artifactId>
    <version>3.1.4</version>
</dependency>

使用 com.jfinal.ext.plugin.tablebind.AutoTableBindPlugin 自动扫描 Model

Spring XML 文件中注册bean

<bean id="autoTableBindPlugin" class="com.jfinal.ext.plugin.tablebind.AutoTableBindPlugin" init-method="start">
    <constructor-arg ref="dataSource" name="dataSource"/>
    <property name="showSql" value="true"/>
    <!-- 用于Oracle,默认是MySql
    <property name="dialect">
        <bean class="com.jfinal.plugin.activerecord.dialect.OracleDialect"/>
    </property>
    <property name="containerFactory" >
        <bean class="com.jfinal.plugin.activerecord.CaseInsensitiveContainerFactory"/>
    </property>
    -->
</bean>

按照JFinal的方式,实体Model继承

extends com.jfinal.plugin.activerecord.Model

添加注解

@TableBind(tableName = "表名", pkName = "主键")

现在启动项目就可以使用了。

但是有个问题。事物没有让Spring控制到。

解决办法如下,

修改JFinal源码

com.jfinal.plugin.activerecord.Config 中的 getConnection(),以及 3个close()方法中的获取,关闭对象的方法,

获取:java.sql.Connection 改为: DataSourceUtils.getConnection(this.getDataSource());
关闭:java.sql.ResultSet  改为: JdbcUtils.closeResultSet(rs);
关闭:java.sql.Statement  改为: JdbcUtils.closeStatement(st);

编译之后,替换原有文件中的Config文件

使用Maven是朋友,可以使用下面这种方式,添加本地的jar包,但需要注意依赖jar包是否全部倒入,在maven的依赖关系中就可以看到具体依赖了那些包,那些版本。

<dependency>
    <groupId>com.jfinal</groupId>
    <artifactId>jfinal</artifactId>
    <version>2.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/jfinal-2.0-edit.jar</systemPath>
</dependency>

事物:这里我使用注解的方式

<tx:annotation-driven transaction-manager="transactionManager" />

Service 中加入

@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)


好了,可以放心使用了。  :)

© 著作权归作者所有

大树被注册了
粉丝 4
博文 5
码字总数 954
作品 0
渝北
程序员
私信 提问
加载中

评论(6)

大树被注册了
大树被注册了 博主

引用来自“JFinal”的评论

全程 jfinal、全程极速 AOP 才是最爽
没办法呀,,波总...................,我还左右不了公司弄的这个烂框架
凡_墙

引用来自“JFinal”的评论

全程 jfinal、全程极速 AOP 才是最爽
正解!
南湖船老大
南湖船老大
抽空试试
linapex
linapex

引用来自“JFinal”的评论

全程 jfinal、全程极速 AOP 才是最爽
作者有没有考虑过动态Contrller,Service呢?控制器静态化,结合groovy?spring mvc已实现~ 如果jfinal能加上动态更新,那就太棒了~
微笑的书生
微笑的书生

引用来自“JFinal”的评论

全程 jfinal、全程极速 AOP 才是最爽
正解!
JFinal
JFinal
全程 jfinal、全程极速 AOP 才是最爽
2017-4-20工作日志

1、将jfinal和spring集成、并测试集成后spring的各种特性是否能正常使用 2、开会 3、帮忙挑选一下服务器配置,然后和崔哥确定一下火箭的开发计划和任务 4、将spring要用到的部分搭建到模版项...

vomou
2017/04/20
1
0
JFinal Dao 集成到 Spring

@idreamblue 你好,想跟你请教个问题:看了你的博文 《JFinal Dao 集成到 Spring》,想请教你下整个的集成过程,因为对spring用的不熟悉,所以不知道应该怎么把jfinal放进去,希望能得到你的...

偏之方
2016/03/04
1K
0
JFinal 中使用 Dubbo —— 1 改造JFinal Demo

Dubbo Demo概述 此Demo实际在2014年上半年就已经完成了,只是到最近才有时间和心情写完此文。同时,将JFinal升级到了1.9,并采用Maven构建项目。 另外,仔细想了想,Provider其实可以不依托T...

糊搞
2015/04/20
8.8K
16
2017-4-25工作总结

1、将昨天jfinal的dao抽象的测试完成 2、将motan集成到spring中: 遇到了一个坑,就是motan的schema文件无法加载 3、搭建motan服务器: demo案例已经跑通,但是结合jfinal后的案例还没有跑通...

vomou
2017/04/25
3
0
JFinal单元测试,发现和MockMVC不太一样,没有断言等方法

最近公司在推行单元测试规范,项目中用到了JFinal、SpringMVC等框架,SpringMVC中集成的MockMVC可以断言不用通过执行 System.out.println 来查看测试结果。 JFinal单元测试参照了以下文章: ...

zhulint
2017/10/25
143
0

没有更多内容

加载失败,请刷新页面

加载更多

Replugin借助“UI进程”来快速释放Dex

public static boolean preload(PluginInfo pi) { if (pi == null) { return false; } // 借助“UI进程”来快速释放Dex(见PluginFastInstallProviderProxy的说明) return PluginFastInsta......

Gemini-Lin
52分钟前
4
0
Hibernate 5 的模块/包(modules/artifacts)

Hibernate 的功能被拆分成一系列的模块/包(modules/artifacts),其目的是为了对依赖进行独立(模块化)。 模块名称 说明 hibernate-core 这个是 Hibernate 的主要(main (core))模块。定义...

honeymoose
今天
4
0
CSS--属性

一、溢出 当内容多,元素区域小的时候,就会产生溢出效果,默认是纵向溢出 横向溢出:在内容和容器之间再套一层容器,并且内部容器要比外部容器宽 属性:overflow/overflow-x/overflow-y 取值...

wytao1995
今天
4
0
精华帖

第一章 jQuery简介 jQuery是一个JavaScript库 jQuery具备简洁的语法和跨平台的兼容性 简化了JavaScript的操作。 在页面中引入jQuery jQuery是一个JavaScript脚本库,不需要特别的安装,只需要...

流川偑
今天
7
0
语音对话英语翻译在线翻译成中文哪个方法好用

想要进行将中文翻译成英文,或者将英文翻译成中文的操作,其实有一个非常简单的工具就能够帮助完成将语音进行翻译转换的软件。 在应用市场或者百度手机助手等各大应用渠道里面就能够找到一款...

401恶户
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部