JFinal中model怎么和javabean的使用使用

关于jfinal的Model组件的一点小纠结 - 开源中国社区
当前访客身份:游客 [
当前位置:
写jfinal有一段时间了,里面的Controller 还是写的非常赞,轻松处理请求业务。但是有个小小纠结的就是jfinal的 Model 组件,虽然看起来节省了代码,但是对于稍微复杂的字段超过4-5个的model要处理起来真的好繁琐。请问各位大大,jfinal有没有提供使用标准javabean+注解方式的数据库model来处理数据?如我在android移动项目中经常使用的数据库框架ormlite,相对来说比jfianl的Model组件开发起来更加方便。
大概结构如下,写一个带注解的javabean:
* 遥控命令
* @author lichuan
public class RemoteCommand extends DBObject {
* 对应品牌ID
@DatabaseField
private int ref_brand_
* 对应按钮keyCode
@DatabaseField
private int keyC
@DatabaseField
private String dataC
public RemoteCommand() {
public RemoteCommand(int keyCode) {
this.keyCode = keyC
public RemoteCommand(int keyCode, String dataCode) {
this.keyCode = keyC
this.dataCode = dataC
public RemoteCommand(int ref_brand_id, int keyCode, String dataCode) {
this.ref_brand_id = ref_brand_
this.keyCode = keyC
this.dataCode = dataC
public String getDataCode() {
return dataC
public void setDataCode(String dataCode) {
this.dataCode = dataC
public void setKeyCode(int keyCode) {
this.keyCode = keyC
public int getKeyCode() {
return keyC
public void setRef_brand_id(int ref_brand_id) {
this.ref_brand_id = ref_brand_
public int getRef_brand_id() {
return ref_brand_
在一个数据库管理类里面添加如下类似:
* Database helper which creates and upgrades the database and provides the DAOs
* for the app.
* @author lichuan
public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
* 这是一个泛型基础DAO,封装了基本CRUD函数
private NDJHBaseDao&RemoteCommand, Integer& remoteCommandD
/***************************************************************************
* Suggested Copy/Paste Done
**************************************************************************/
public void onCreate(SQLiteDatabase sqliteDatabase, ConnectionSource connectionSource) {
//这里根据javabean创建表结构
TableUtils.createTable(connectionSource, RemoteCommand.class);
init_data();
} catch (Exception e) {
Log.e(DatabaseHelper.class.getName(), &Unable to create datbases&, e);
* 通过javabean映射获取标准DAO
public NDJHBaseDao&RemoteCommand,Integer& getRemoteCommandDao() throws SQLException {
if (remoteCommandDao == null) {
remoteCommandDao = NDJHBaseDaoImpl.createDao(getConnectionSource(), RemoteCommand.class);
return remoteCommandD
以上代码大概含义相信大家用过ORM框架的都明白。
这样一个javabean就能完美映射到对应表结构来做其他处理操作了,而
无需像jfinal那样通过已有数据库结构来映射javabean。&
上述代码NDJHBaseDao是我们基于android平台的ormlite框架封装一些CRUD语句的泛型DAO,在实际使用过程中很少需要到写sql语句。和jfinal的dao有异曲同工的作用。只是使用jfinal的model类真的很痛苦。。。取个数据存个数据都得复制张贴字段好辛苦。
以上是小弟一点疑问,到底通过表结构来映射javabean,还是通过javabean映射表结构处理数据更加方便?
共有9个答案
<span class="a_vote_num" id="a_vote_num_
代码看着很蛋疼,编辑一下,使用工具栏的 # 插入代码,才能有语法高亮
--- 共有 1 条评论 ---
确实很蛋疼,整理了一下。这样好看多了。。。
(3年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
不知道我有没有理解楼主的意思
引用“取个数据存个数据都得复制张贴字段好辛苦”
意思是getXXX setXXX 这样比较轻松吗,
那写javabean不辛苦吗,有人说可以自动生成 get set,还有人说可以自动生成Bean。
那同样JFinal的Model你也可以改造一下实现同样的功能。
需要复制张贴字段:
1.DB设计的不是很合理,名字长,并且生涩难记,才会出现这种情况
2.开发不用心,不熟悉表结构
--- 共有 4 条评论 ---
:我们公司很多表都是在30个字段以上,然后其中还有某些表预留字段就有几十个,但是常用的就那么几个。
(3年前)&nbsp&
呵呵,在开发初期在db设计的表结构,可能你记忆真的好,一下子就记住了字段名。还有,现在一个人从设计表结构到所有都做完成的一个项目真心很小,只能代表jfinal适合一个人玩小项目,数据库什么的不复杂。
(3年前)&nbsp&
之前用Hibernate就非常讨厌写Bean和给Bean加注解
(3年前)&nbsp&
软件里面的东西只要数量级变大都会变得很麻烦,不可能每个表都是45个字段,并且每个字段都有用吧,当出现几十个字段的时候是不是应该从模型的角度也斟酌一下?
(3年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
虽然公司项目基本都是jfinal,但是有个遗留的ssh项目,现在每次加个字段都被hibernater搞的我想死。。。各种忘记加,忘记配置。
--- 共有 2 条评论 ---
: 当你能不用写注解与setter getter以后,你会发现注解也很不爽,试用一下 jfinal activerecord两三天时间,将彻底改变你现在的想法
(3年前)&nbsp&
。。。相对来说,你还没玩过hibernate的hbm。xml时代呵,个人觉得注解形式javabean映射是最简单高效的orm框架设计了,没有之一。
(3年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
: 抱歉,我说的是4-5个字段,没有那么夸张到40-50个字段的表结构。
话说我真不敢苟同你的意见,一个javabean配置一个表结构,使用getset方法访问的好处是在写代码的时候直接调用getset函数就能够方便的操作表字段,而不需要记住表结构字段名称。
而这个好处在刚开始写项目的速度优势是显而易见的。还有一个好处是可以随时调整表结构,而不需要写了一般发现某些字段得调整,而当这个表结构使用jfina的set(“key&,&value&)分散在各处的时候,你会发现,悲剧了,每个都得改。
<span class="a_vote_num" id="a_vote_num_
回楼上的楼上,我现在使用jfinal的Model就是这样改造来用的,将就着用吧:
public String getName() {
return get(&name&);
public void setName(String name) {
set(&name&, name);
<span class="a_vote_num" id="a_vote_num_
不知道他们大公司实际是怎么做的
你可以咨询下@绝望的八皮 或者 @JFinal
&个人是参照的&&里面的,用起来也很爽!
<span class="a_vote_num" id="a_vote_num_
引用来自“孤独的3”的答案 不知道他们大公司实际是怎么做的
你可以咨询下@绝望的八皮 或者 @JFinal
&个人是参照的&&里面的,用起来也很爽! 其他用起来还是蛮爽的,就是对这个Model组件挺纠结的。赶脚这种去对象化的DB设计对于多人合作或者数据表复杂点就难以使用了。
--- 共有 1 条评论 ---
大公司,不一定牛B,技术也不一定先进,我们公司500人不知道算什么公司,还在用HashVO 来获取数据,如果这个到时候改表结构,不知道有多少人要跳楼,但是实际上几乎没改过表结构
(3年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
& & 用 jfinal model 一到两天就知道好处了,对于web项目来说数据是非常关键的,所以对数据库表结构要非常地清楚,至于字段记忆的问题,可以通过 desc tableName得到表结构,然后放在model最前面的注释里面,随时可以查看。
& & 用过 hibernate 两三年,jfinal 比传统 Java ORM 好用多了,不信就试试,保证你会将传统java ORM彻底扔进垃圾桶, @绝望的八皮 就是其中之一
--- 共有 3 条评论 ---
支持Record ORM,支持JFinal
(3年前)&nbsp&
别的不想多说,时间会证明一切,看看是屌丝多,还是高帅富多
(3年前)&nbsp&
springrain @WhereSQL 动态查询条件的注解……
(3年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
各位只是说jfinal record orm好啊,真的好啊,非常好啊。但是几乎都没有说到怎么个好法,怎么达到快速敏捷开发的目的。是jfinal的脑残粉么?
我也用过不少ORM框架,大概也不过xml配置,注解式,还有jfinal的sql映射方式。我就想问两种方式,
1,只写一个带注解的bean,使用getset方法访问数据。
2,还是需要写个sql或建立好表再写个空bean把相关字段放到各处使用。
两种方式哪个更方便,更便于维护?
更多开发者职位上
有什么技术问题吗?
LICHUAN...的其它问题
类似的话题

我要回帖

更多关于 jfinal model bean 的文章

 

随机推荐