update的时候需要写中间的这些XML是件挺蛋疼的事。 所以像了个方法
<update id="xiaoegcUpdateSave" parameterClass="com.framework.mapping.Cg_Xiaoegc">
<![CDATA[
update cg_xiaoegc set id =#id#
]]>
<isNotEmpty property="id" prepend=","> <![CDATA[ ID=#id# ]]> </isNotEmpty>
<isNotEmpty property="xmbh" prepend=","> <![CDATA[ XMBH=#xmbh# ]]> </isNotEmpty>
<isNotEmpty property="dwmc" prepend=","> <![CDATA[ DWMC=#dwmc# ]]> </isNotEmpty>
<isNotEmpty property="dwbh" prepend=","> <![CDATA[ DWBH=#dwbh# ]]> </isNotEmpty>
<isNotEmpty property="dwxz" prepend=","> <![CDATA[ DWXZ=#dwxz# ]]> </isNotEmpty>
<isNotEmpty property="lxr" prepend=","> <![CDATA[ LXR=#lxr# ]]> </isNotEmpty>
<isNotEmpty property="lxdh" prepend=","> <![CDATA[ LXDH=#lxdh# ]]> </isNotEmpty>
<isNotEmpty property="gcmc" prepend=","> <![CDATA[ GCMC=#gcmc# ]]> </isNotEmpty>
<isNotEmpty property="gcdd" prepend=","> <![CDATA[ GCDD=#gcdd# ]]> </isNotEmpty>
<isNotEmpty property="ysje" prepend=","> <![CDATA[ YSJE=#ysje# ]]> </isNotEmpty>
<isNotEmpty property="zjly_sjbk" prepend=","> <![CDATA[ ZJLY_SJBK=#zjly_sjbk# ]]>
</isNotEmpty> <isNotEmpty property="zjly_zc" prepend=","> <![CDATA[ ZJLY_ZC=#zjly_zc# ]]>
</isNotEmpty> <isNotEmpty property="htje" prepend=","> <![CDATA[ HTJE=#htje# ]]>
</isNotEmpty> <isNotEmpty property="jhkg_time" prepend=","> <![CDATA[ JHKG_TIME=#jhkg_time# ]]> </isNotEmpty>
<isNotEmpty property="jhjg_time" prepend=","> <![CDATA[ JHJG_TIME=#jhjg_time# ]]> </isNotEmpty>
<isNotEmpty property="dwmc_sg" prepend=","> <![CDATA[ DWMC_SG=#dwmc_sg# ]]> </isNotEmpty>
<isNotEmpty property="lxr_sg" prepend=","> <![CDATA[ LXR_SG=#lxr_sg# ]]> </isNotEmpty>
<isNotEmpty property="lxdh_sg" prepend=","> <![CDATA[ LXDH_SG=#lxdh_sg# ]]>
</isNotEmpty> <isNotEmpty property="jbqk" prepend=","> <![CDATA[ JBQK=#jbqk# ]]> </isNotEmpty>
<isNotEmpty property="bz" prepend=","> <![CDATA[ BZ=#bz# ]]> </isNotEmpty>
<isNotEmpty property="type_gc" prepend=","> <![CDATA[ TYPE_GC=#type_gc# ]]> </isNotEmpty>
<isNotEmpty property="status" prepend=","> <![CDATA[ STATUS=#status# ]]> </isNotEmpty>
<isNotEmpty property="createdate" prepend=","> <![CDATA[ CREATEDATE=#createdate# ]]> </isNotEmpty>
<isNotEmpty property="beianshijian" prepend=","> <![CDATA[ BEIANSHIJIAN=#beianshijian# ]]> </isNotEmpty>
<![CDATA[
where 1=1 and id =#id#
]]>
用下面的SQL可以搞定
select wm_concat(a) from (
select
'<isNotEmpty property="'||lower(COLUMN_NAME)||'" prepend="1234"> <![CDATA[ '|| COLUMN_NAME||'=#'||lower(COLUMN_NAME)||'# ]]> </isNotEmpty>'
as a
from user_tab_columns where table_name='CG_XIAOEGC'
)
操作过程,使用此段SQL生成XML文件后,先将“,”替换成空格,然后将1234替换成你要的字符,如AND ,OR ,逗号等
或者直接使用下面的SQL
select replace(replace(wm_concat(a) ,',',' '),'1234','你想要的字符(and ,or ,逗号)') from (
select
'<isNotEmpty property="'||lower(COLUMN_NAME)||'" prepend="1234"> <![CDATA[ '|| COLUMN_NAME||'=#'||lower(COLUMN_NAME)||'# ]]> </isNotEmpty>'
as a
from user_tab_columns where table_name='CG_XIAOEGC'
)
先查询表的所有字段,然后拼接字符串,最后WM_concat变成一行后替换其中的“,”后再次替换其中的1234临时字符成需要的“AND OR 等”
生成INSERT
select 'insert into CG_XIAOEGC values(' || wm_concat(COLUMN_NAME) ||') values('||wm_concat('#'||lower(COLUMN_NAME)||'#')||')'
from user_tab_columns where table_name='CG_XIAOEGC'
生成SELECT
select ' select ' || wm_concat(COLUMN_NAME) ||' from CG_XIAOEGC '
from user_tab_columns where table_name='CG_XIAOEGC'
相关推荐
例如,`select`标签用于查询,`insert`用于插入数据,`update`用于更新记录,而`delete`则用于删除操作。每个标签内部可以定义参数和结果映射,使得SQL执行更加灵活。 生成的Java对象(POJO)通常包含了字段和...
通常包含`<mapper>`标签,然后是各种`<select>`, `<insert>`, `<update>`, `<delete>`标签,用于对应SQL查询、插入、更新和删除操作。例如: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper ...
4. `delete`标签:用于删除数据,结构与`insert`和`update`类似。 使用该工具生成的XML文件可以无缝集成到你的Ibatis项目中,与Java接口配合使用,实现对数据库的高效操作。在Java代码中,你只需调用对应的Mapper...
iBATIS 是一款著名的开源Java持久层框架,它允许开发者将SQL语句直接写在XML配置文件中,从而实现数据库操作与业务逻辑的解耦。"iBATIS-XmlParser" 指的是iBATIS框架中解析XML配置文件的部分,这部分主要负责读取和...
以及ibatis的概述、如何开始使用ibatis、构建SqlSessionFactory的方法(包括通过XML和不使用XML的方式)、获取SqlSession的过程、探索映射SQL语句的方法、命名空间的注意事项、作用域与生命周期的解释、mapper配置...
2. **SqlMap接口和SqlMapClient**:SqlMap是与数据库交互的接口,而SqlMapClient是其实现,提供了执行SQL映射文件中的SQL语句的方法,如select、insert、update和delete。 3. **动态SQL**:iBATIS支持动态SQL,允许...
2. **SQL语句**: 包括`<select>`、`<insert>`、`<update>`、`<delete>`等标签,用于定义具体的SQL语句。 3. **参数映射**: 定义输入参数的类型和映射方式。 4. **结果映射**: 定义查询结果如何映射到Java对象上。 5....
- `<update>`:用于更新,结构与`<insert>`类似。 - `<delete>`:用于删除,结构与`<insert>`类似。 - `<resultMap>`:定义复杂对象的映射,可以处理一对一、一对多、多对一等关联关系。 在实际开发中,Ibatis...
3. **SqlSession**:SqlSession是Ibatis的核心组件,它提供了执行SQL的方法,如`selectOne`、`insert`、`update`和`delete`。每次数据库操作后,记得关闭SqlSession以释放资源。 4. **动态SQL**:Ibatis的动态SQL...
例如,`<select>`标签用于定义查询语句,`<insert>`、`<update>`和`<delete>`分别对应增删改操作。在SQL映射文件中,可以使用动态SQL来处理复杂的查询条件,如`<if>`、`<choose>`、`<when>`、`<otherwise>`等标签。 ...
Ibatis自动生成工具可以帮助我们快速创建DAO接口,这些接口包含了常见的CRUD(Create、Read、Update、Delete)操作,例如`selectByExample()`, `insert()`, `updateByExample()`, `deleteByExample()`等方法。...
例如,可能包含一个`UserMapper.xml`文件,其中定义了用户相关的SQL语句,以及对应的`UserMapper.java`接口,通过`@Select`、`@Insert`等注解与XML映射文件关联。 六、总结 Ibatis3与Oracle数据库的结合,既发挥了...
Ibatis的SqlSession对象在这里发挥作用,通过SqlSessionFactory创建SqlSession,然后调用SqlSession的selectOne、insert、update或delete方法执行SQL。 6. **Eclipse工程结构**:一个典型的Ibatis-Mysql项目结构...
2. 编写 SQL 映射:在 XML 文件中编写 SQL 语句,通过 `<select>`、`<insert>`、`<update>`、`<delete>` 等标签进行操作。 3. 映射接口与 XML 关联:在 XML 文件中通过 `<mapper>` 标签指定接口全限定名。 4. ...
除了XML映射文件,iBatis还支持注解驱动,可以直接在Mapper接口的方法上使用@Select、@Insert、@Update和@Delete注解,简化配置,提高开发效率。 六、事务管理 iBatis通过SqlSession提供了事务控制,开发者可以...
SQL映射文件中的标签可以复用SQL片段,、<insert>、<update>、标签分别对应查询、插入、更新和删除操作。动态SQL是iBatis的一大亮点,通过、、、等标签,可以在运行时根据条件动态生成SQL语句。 此外,iBatis支持预...
3. **映射机制**:通过XML配置或者注解,Ibatis可以将数据库的查询结果映射到Java对象,实现数据对象与数据库表之间的转换。 4. **事务管理**:Ibatis支持Spring等容器的事务管理,也可以独立进行事务控制。 5. **...
4. 映射文件与接口绑定:Ibatis 支持Mapper接口,通过`@Select`、`@Insert`、`@Update`、`@Delete`等注解,将SQL语句直接写在方法上,简化了编程模型。同时,通过Mapper工厂,可以根据接口生成具体的Mapper实例,...