iBATIS操作Oracle CLOB数据

来源:互联网 发布:汉仪字体下载包 mac 编辑:程序博客网 时间:2024/05/22 06:41

     由于最近要用iBATIS操作Oracle的CLOB字段,简单做了一个Demo。此demo依赖的JAR包有ibatis-2.3.0.677.jar、ojdbc6.jar、fastjson-1.1.26.jar。

一.创建表

Sql代码  收藏代码
  1. --创建表  
  2. CREATE TABLE BJ.M_MODEL  (          
  3.     MODELID     VARCHAR2(128) NOT NULL,          
  4.     MODEL_HTML  CLOB,          
  5.     CONSTRAINT PK_M_MODEL PRIMARY KEY (MODELID)  
  6. );  
  7.   
  8. --创建同义词  
  9. create public synonym M_MODEL for BJ.M_MODEL;  
  10.   
  11. --授权  
  12. grant selectinsertupdatedelete on BJ.M_MODEL to bijian;  

  伦理电影 http://www.dotdy.com/

二.工程代码

sqlMapConfig.xml

Xml代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8" ?>     
  2.     
  3. <!DOCTYPE sqlMapConfig           
  4.     PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"           
  5.     "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">     
  6.     
  7. <sqlMapConfig>     
  8.     
  9.   <transactionManager type="JDBC" commitRequired="false">     
  10.     <dataSource type="SIMPLE">     
  11.       <property name="JDBC.Driver" value="oracle.jdbc.driver.OracleDriver"/>     
  12.       <property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@10.20.0.1:1521:db"/>     
  13.       <property name="JDBC.Username" value="bijian"/>     
  14.       <property name="JDBC.Password" value="123"/>     
  15.     </dataSource>     
  16.   </transactionManager>     
  17.   <sqlMap resource="com/app/model/Model.xml"/>  
  18. </sqlMapConfig>  

Model.xml

Xml代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8" ?>     
  2.     
  3. <!DOCTYPE sqlMap           
  4.     PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"           
  5.     "http://ibatis.apache.org/dtd/sql-map-2.dtd">  
  6.   
  7. <sqlMap>  
  8.     <!-- Use type aliases to avoid typing the full classname every time. -->  
  9.     <typeAlias alias="model" type="com.app.model.Model" />  
  10.   
  11.     <!-- 新增 -->  
  12.     <insert id="insertModelHtml" parameterClass="java.util.Map">  
  13.         insert into m_model(MODELID, MODEL_HTML) values(#modelId#, #modelHtml#)  
  14.     </insert>  
  15.     <!-- 更新 -->  
  16.     <update id="updateModelHtml" parameterClass="java.util.Map">  
  17.         update m_model set model_html=#modelHtml# where modelId=#modelId#  
  18.     </update>  
  19.     <!-- 根据ID删除 -->  
  20.     <delete id="deleteModelById" parameterClass="java.lang.String">  
  21.         delete m_model where modelId=#modelId#  
  22.     </delete>  
  23.     <!-- 删除所有数据 -->  
  24.     <delete id="deleteAllModels">  
  25.         delete m_model  
  26.     </delete>  
  27.     <!-- 查询 -->  
  28.     <resultMap class="model" id="Model_htmlMap">  
  29.         <result property="modelId" column="modelid" javaType="String" />  
  30.         <result property="modelHtml" column="model_html" nullValue=""  
  31.             javaType="java.lang.String" jdbcType="CLOB" />  
  32.     </resultMap>  
  33.     <select id="getModelById" parameterClass="java.lang.String" resultMap="Model_htmlMap">  
  34.         SELECT t1.MODELID,t1.model_html FROM M_MODEL t1 WHERE  
  35.         MODELID=#MODELID# ORDER BY t1.MODELID  
  36.     </select>  
  37. </sqlMap>  

Model.java

Java代码  收藏代码
  1. package com.app.model;  
  2.   
  3. public class Model {  
  4.   
  5.     private String modelHtml;  
  6.     private String modelId;  
  7.       
  8.     public String getModelHtml() {  
  9.         return modelHtml;  
  10.     }  
  11.     public void setModelHtml(String modelHtml) {  
  12.         this.modelHtml = modelHtml;  
  13.     }  
  14.     public String getModelId() {  
  15.         return modelId;  
  16.     }  
  17.     public void setModelId(String modelId) {  
  18.         this.modelId = modelId;  
  19.     }  
  20. }  

ModelDAO.java

Java代码  收藏代码
  1. package com.app.dao;  
  2.   
  3. import java.util.List;  
  4.   
  5. import com.app.model.Model;  
  6.   
  7. public interface ModelDAO {  
  8.   
  9.     public void insertModelHtml(String modelId, String modelHtml) throws Exception;  
  10.       
  11.     public void updateModelHtml(String modelId, String modelHtml) throws Exception;  
  12.   
  13.     public void deleteModelById(String modelId) throws Exception;  
  14.       
  15.     public void deleteAllModels() throws Exception;  
  16.       
  17.     public List<Model> getModelById(String modelId) throws Exception;  
  18. }  

ModelDAOImpl.java

Java代码  收藏代码
  1. package com.app.dao;  
  2.   
  3. import java.io.IOException;  
  4. import java.io.Reader;  
  5. import java.util.HashMap;  
  6. import java.util.List;  
  7. import java.util.Map;  
  8.   
  9. import com.app.model.Model;  
  10. import com.ibatis.common.resources.Resources;  
  11. import com.ibatis.sqlmap.client.SqlMapClient;  
  12. import com.ibatis.sqlmap.client.SqlMapClientBuilder;  
  13.   
  14. public class ModelDAOImpl implements ModelDAO {  
  15.   
  16.     public void insertModelHtml(String modelId, String modelHtml) throws Exception {  
  17.         Map<String, String> map = new HashMap<String, String>(2);  
  18.         map.put("modelId", modelId);  
  19.         map.put("modelHtml", modelHtml);  
  20.         this.getSqlMapClientTemplate().insert("insertModelHtml", map);  
  21.     }  
  22.       
  23.     public void updateModelHtml(String modelId, String modelHtml) throws Exception {  
  24.         Map<String, String> map = new HashMap<String, String>(2);  
  25.         map.put("modelId", modelId);  
  26.         map.put("modelHtml", modelHtml);  
  27.         int res = this.getSqlMapClientTemplate().update("updateModelHtml", map);  
  28.         System.out.println(res);  
  29.     }  
  30.       
  31.     public void deleteModelById(String modelId) throws Exception {  
  32.         this.getSqlMapClientTemplate().delete("deleteModelById", modelId);  
  33.     }  
  34.       
  35.     public void deleteAllModels() throws Exception {  
  36.         this.getSqlMapClientTemplate().delete("deleteAllModels");  
  37.     }  
  38.       
  39.     public List<Model> getModelById(String modelId) throws Exception {  
  40.         return this.getSqlMapClientTemplate().queryForList("getModelById", modelId);  
  41.     }  
  42.   
  43.     private static SqlMapClient getSqlMapClientTemplate() throws IOException {  
  44.         //从配置文件中得到SqlMapClient对象     
  45.         Reader reader = Resources.getResourceAsReader("sqlMapConfig.xml");  
  46.         SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);  
  47.         reader.close();  
  48.         return sqlMapper;  
  49.     }  
  50. }  

 

三.创建测试程序测试

ModelTest.java

Java代码  收藏代码
  1. package com.app.test;  
  2.   
  3. import java.util.List;  
  4.   
  5. import com.alibaba.fastjson.JSON;  
  6. import com.app.dao.ModelDAO;  
  7. import com.app.dao.ModelDAOImpl;  
  8. import com.app.model.Model;  
  9.   
  10. public class ModelTest {  
  11.   
  12.     /**   
  13.      * @param args   
  14.      */    
  15.     public static void main(String[] args) throws Exception {  
  16.         ModelDAO modelDAO = new ModelDAOImpl();  
  17.         modelDAO.deleteAllModels();  
  18.         modelDAO.insertModelHtml("1""<html><head>测试</head><body><p>Hello World!</p></body></html>");  
  19.         modelDAO.insertModelHtml("2""<html><head>ibatis</head><body><p>Hello ibatis!</p></body></html>");  
  20.         modelDAO.insertModelHtml("3""<html><head>JavaScript</head><body><p>Hello JavaScript!</p></body></html>");  
  21.         modelDAO.updateModelHtml("1""<html><head>测试</head><body><p>hello World!</p></body></html>");  
  22.         modelDAO.deleteModelById("1");  
  23.         List<Model> modelList = modelDAO.getModelById("2");  
  24.         System.out.println(JSON.toJSONString(modelList));  
  25.     }  
  26. }  

        运行结果:

Text代码  收藏代码
  1. 1  
  2. [{"modelHtml":"<html><head>ibatis</head><body><p>Hello ibatis!</p></body></html>","modelId":"2"}]  

 

0 0
原创粉丝点击