精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-11-03
神之小丑 写道 我们也一直在用ibatis,也一直都喜欢直接用 hashmap做 输入/输出的类型,
可是那天就遇到个问题: 我输入的查询条件,有String 有int 怎么用map传进去了, 后来没办法,只能用javabean 封装传进去了,,,(有其他办法)? 我目前没遇到这样的问题 sqlMap的编写需要一个parameterClass="map" 你map里存储的数据类型需要和数据库字段类型一样。 varchar -- String 等。 在匹配的时候,不会出错吧。 如果是存储过程的话,自己写一个 <parameterMap class="java.util.HashMap" id="PRC_CENTER_CAHM_JJ_MXZ_Map"> <parameter property="v_FRCode" jdbcType="VARCHAR2" javaType="java.lang.String" mode="IN"/> |
|
返回顶楼 | |
发表时间:2011-11-03
ibatis这类完全封装的框架不能进行深度控制的,已经被封装过度的!不知mybatis有没有给用户的接口或拦截。
其实用ibatis类框架的用户,主要是sql的动态生成,以及对象的映射,其实完全可以用模板语言来实现,如果需要对象自动映射,可以借鉴ibatis里的typehandler,用apache的beanutils来实现。而且可以实现jdbc的深度控制。 |
|
返回顶楼 | |
发表时间:2011-11-03
yeqing4562011 写道 神之小丑 写道 我们也一直在用ibatis,也一直都喜欢直接用 hashmap做 输入/输出的类型,
可是那天就遇到个问题: 我输入的查询条件,有String 有int 怎么用map传进去了, 后来没办法,只能用javabean 封装传进去了,,,(有其他办法)? 我目前没遇到这样的问题 sqlMap的编写需要一个parameterClass="map" 你map里存储的数据类型需要和数据库字段类型一样。 varchar -- String 等。 在匹配的时候,不会出错吧。 如果是存储过程的话,自己写一个 <parameterMap class="java.util.HashMap" id="PRC_CENTER_CAHM_JJ_MXZ_Map"> <parameter property="v_FRCode" jdbcType="VARCHAR2" javaType="java.lang.String" mode="IN"/> ibatis有个typehandler,可以进行参数的转换的。 不可,现在没有用ibatis了,但从ibatis处也学了不了东西。:) |
|
返回顶楼 | |
发表时间:2011-11-03
yn5411 写道 yeqing4562011 写道 神之小丑 写道 我们也一直在用ibatis,也一直都喜欢直接用 hashmap做 输入/输出的类型,
可是那天就遇到个问题: 我输入的查询条件,有String 有int 怎么用map传进去了, 后来没办法,只能用javabean 封装传进去了,,,(有其他办法)? 我目前没遇到这样的问题 sqlMap的编写需要一个parameterClass="map" 你map里存储的数据类型需要和数据库字段类型一样。 varchar -- String 等。 在匹配的时候,不会出错吧。 如果是存储过程的话,自己写一个 <parameterMap class="java.util.HashMap" id="PRC_CENTER_CAHM_JJ_MXZ_Map"> <parameter property="v_FRCode" jdbcType="VARCHAR2" javaType="java.lang.String" mode="IN"/> ibatis有个typehandler,可以进行参数的转换的。 不可,现在没有用ibatis了,但从ibatis处也学了不了东西。:) 对是有一个typehandler 这个都可以在文档中查得到。 现在没有人用ibatis,夸张了吧。 |
|
返回顶楼 | |
发表时间:2011-11-03
yn5411 写道 ibatis这类完全封装的框架不能进行深度控制的,已经被封装过度的!不知mybatis有没有给用户的接口或拦截。
其实用ibatis类框架的用户,主要是sql的动态生成,以及对象的映射,其实完全可以用模板语言来实现,如果需要对象自动映射,可以借鉴ibatis里的typehandler,用apache的beanutils来实现。而且可以实现jdbc的深度控制。 恩 受教了。 |
|
返回顶楼 | |
发表时间:2011-11-03
javabean里是可以包含与持久化无关的领域逻缉的。这就是所谓的贫血模型。会导致更清晰的代码、更好的复用。
map不能这样做。 |
|
返回顶楼 | |
发表时间:2011-11-03
gdpglc 写道 javabean里是可以包含与持久化无关的领域逻缉的。这就是所谓的贫血模型。会导致更清晰的代码、更好的复用。
map不能这样做。 不是太理解,贫血模型在书商看到过。 我回头看看,受教了 |
|
返回顶楼 | |
发表时间:2011-11-03
Map param = new HashMap(); param put进去了。或者用list 迭代循环。
|
|
返回顶楼 | |
发表时间:2011-11-03
先理解,实体与值的区别吧。
实体主要是参与逻辑的,而值主要是参与运算和展示的。这是两个独立的概念。 原本实体的出现就是为了封装值(数据)来展示更高层次的逻辑,现在把实体去掉还原成一个个的值,这是把层次降下来,可以理解为把原来逻辑分割成一个个小逻辑或者小运算。 犹如象数问题,各自都可达到目的,只是手段方式不同,当然获得的好处也不同。 |
|
返回顶楼 | |
发表时间:2011-11-03
yeqing4562011 写道 KimHo 写道 光考虑功能实现,甚至会发现mvc都是“多余”的
为啥要搞模型,搞分层 为了后期维护和扩展 你这是偏激了,谁说不考虑扩展功能了和维护,看清楚OK?!。 难道我使用sqlMap后,扩展功能就做不了了 如果项目始终只有你一个人做那当然无所谓,如果是多个人就没你想的那么简单了,特别是后期维护 |
|
返回顶楼 | |