波老板,您好:
我遇到两个问题:
一、Model属性映射关系
在项目中会出现切换数据源的情况,在达梦下面开发的程序,需要去适配Oracle、SQL Server和MySQL等数据库,由于各自数据库服务器的实现原因,自动生成的Model对象字段属性保持一致,或者JFinal推荐一个统一的字段命名规则,之后自动生成的Model对象字段属性全部一样,通过数据库方言和JDBC实现一致的数据访问。
比如:
数据库表字段<->Model属性
MySQL: first_name varchar(20) <->firstName
Oracle: FIRST_NAME VARCHAR2(20)<->firstName
达梦: FIRST_NAME VARCHAR(20)<->firstName
以上例子,如果实在MySQL下面开发的代码程序,切换到其他数据源,MySQL数据通过dts等工具迁移到Oracle、达梦等数据,程序代码不需要修改。可是达梦数据源迁移到MySQL的时候,view页面的表单几乎不能成功转换为Model对象 。
二、Model属性与view表单域名称
public void setFirstName(java.lang.String firstName) {
set("first_name", firstName);
}
public java.lang.String getFirstName() {
return get("first_name");
}
<input type="text" name="user.first_name" value="${user.firstName}" />
比如上面使用jsp作为view视图,上面表单域的名称需要与Model中的数据库字段相互对应,是否可以实现调用el对象属性呢?
支持JFinal!
第二个问题, input 域可以使用 name="user.firstName" 这种方式与 user 的 setter 方法对应上,而不必使用 name="user.first_name",既然生成了 BaseModel,具有了 getter、setter 方法,就使用 Controller.getBean(...) 而不要使用 getModel(...) 前者是完全根据你的 setter 方法名来注入的,属性是驼峰规则
搞定后回来分享下