【转】mybatis连接Oracle做增删改查

原文地址:http://blog.csdn.net/liumengcheng/article/details/34422475

入门请看http://blog.csdn.NET/liumengcheng/article/details/34409783

 

首先创建表

[sql]  view plain copy 
  1. create table T_USERS  
  2. (  
  3.   ID      NUMBER not null,  
  4.   NAME    VARCHAR2(30),  
  5.   SEX     VARCHAR2(3),  
  6.   BIRS    DATE,  
  7.   MESSAGE CLOB  
  8. );  
  9. create sequence SEQ_T_USERS_ID  
  10. minvalue 1  
  11. maxvalue 99999999  
  12. start with 1  
  13. increment by 1  
  14. cache 20;  


User.java

[java]  view plain copy 
  1. package com.southgis.scout.demo;  
  2.   
  3. import java.util.Date;  
  4. /** 
  5.  * 用户类 
  6.  *  
  7.  * @author lmc 
  8.  *  
  9.  */  
  10. public class User {  
  11.     private String name;  
  12.     private String sex;  
  13.     private Integer id;  
  14.     private Date birs;  
  15.     private String message;  
  16.   
  17.       
  18.     public String getMessage() {  
  19.         return message;  
  20.     }  
  21.       
  22.     public void setMessage(String pMessage) {  
  23.         this.message = pMessage;  
  24.     }  
  25.       
  26.     public Date getBirs() {  
  27.         return birs;  
  28.     }  
  29.       
  30.     public void setBirs(Date pbirs) {  
  31.         this.birs = pbirs;  
  32.     }  
  33.       
  34.     public String getName() {  
  35.         return name;  
  36.     }  
  37.       
  38.     public void setName(String name) {  
  39.         this.name = name;  
  40.     }  
  41.       
  42.     public String getSex() {  
  43.         return sex;  
  44.     }  
  45.       
  46.     public void setSex(String psex) {  
  47.         this.sex = psex;  
  48.     }  
  49.       
  50.     public Integer getId() {  
  51.         return id;  
  52.     }  
  53.       
  54.     public void setID(Integer pid) {  
  55.         this.id = pid;  
  56.     }  
  57.       
  58.     public User() {  
  59.     }  
  60.   
  61. }  




UsersMapper.java

[java]  view plain copy 
  1. package com.southgis.scout.demo;  
  2.   
  3. import java.util.List;  
  4. import com.southgis.scout.demo.User;    
  5. public interface UsersMapper {  
  6.   
  7.     public void add(User t);  
  8.   
  9.     public void update(User t);  
  10.   
  11.     public void updateBySelective(User t);  
  12.   
  13.     public void delete(Object id);  
  14.   
  15.     public User queryById(Object id);  
  16.       
  17.     public List queryBySelective(User t);  
  18.       
  19.     public int queryByCount(User t);  
  20.   
  21.     public List queryByList(User t);  
  22.       
  23. }  




OracleClobTypeHandler.java

[java]  view plain copy 
  1. package com.southgis.scout.demo;  
  2.   
  3. import java.sql.CallableStatement;  
  4. import java.sql.PreparedStatement;  
  5. import java.sql.ResultSet;  
  6. import java.sql.SQLException;  
  7.   
  8. import oracle.sql.CLOB;  
  9.   
  10. import org.apache.ibatis.type.JdbcType;  
  11. import org.apache.ibatis.type.TypeHandler;  
  12.   
  13. public class OracleClobTypeHandler implements TypeHandler {  
  14.       
  15.     public Object valueOf(String param) {  
  16.         return null;  
  17.     }  
  18.   
  19.     @Override  
  20.     public Object getResult(ResultSet arg0, String arg1) throws SQLException {  
  21.         CLOB clob = (CLOB) arg0.getClob(arg1);  
  22.         return (clob == null || clob.length() == 0) ? null : clob.getSubString((long) 1, (int) clob.length());  
  23.     }  
  24.   
  25.     @Override  
  26.     public Object getResult(ResultSet arg0, int arg1) throws SQLException {  
  27.         return null;  
  28.     }  
  29.   
  30.     @Override  
  31.     public Object getResult(CallableStatement arg0, int arg1) throws SQLException {  
  32.         return null;  
  33.     }  
  34.   
  35.     @Override  
  36.     public void setParameter(PreparedStatement arg0, int arg1, Object arg2, JdbcType arg3) throws SQLException {  
  37.         CLOB clob = CLOB.empty_lob();  
  38.         clob.setString(1, (String) arg2);  
  39.         arg0.setClob(arg1, clob);  
  40.     }  
  41. }  



  42. main.java

    [java]  view plain copy 
    1. package com.southgis.scout.demo;  
    2.   
    3. import java.io.IOException;    
    4. import java.text.DateFormat;  
    5. import java.text.ParseException;  
    6. import java.text.SimpleDateFormat;  
    7. import java.util.List;  
    8. import java.util.Date;  
    9.   
    10. import org.apache.ibatis.io.Resources;  
    11. import org.apache.ibatis.session.SqlSession;   
    12. import org.apache.ibatis.session.SqlSessionFactory;   
    13. import org.apache.ibatis.session.SqlSessionFactoryBuilder;    
    14.   
    15. import com.southgis.scout.demo.UsersMapper;    
    16. import com.southgis.scout.demo.User;    
    17. public class main {  
    18.       
    19.     /** 
    20.      * 获得MyBatis SqlSessionFactory   
    21.      * SqlSessionFactory负责创建SqlSession,一旦创建成功,就可以用SqlSession实例来执行映射语句,commit,rollback,close等方法。 
    22.      * @return 
    23.      */  
    24.     private static SqlSessionFactory getSessionFactory() {  
    25.         SqlSessionFactory sessionFactory = null;  
    26.         String resource = "configuration.xml";  
    27.         try {  
    28.             sessionFactory = new SqlSessionFactoryBuilder().build(Resources  
    29.                     .getResourceAsReader(resource));  
    30.         } catch (IOException e) {  
    31.             e.printStackTrace();  
    32.         }  
    33.         return sessionFactory;  
    34.     }  
    35.   
    36.     public static void main(String[] args) {  
    37.         SqlSession sqlSession = getSessionFactory().openSession();  
    38.         UsersMapper dao = sqlSession.getMapper(UsersMapper.class);  
    39.           
    40.         //删除表中所有信息  
    41.         User nullBean = new User();  
    42.         List delList = dao.queryByList(nullBean);  
    43.         if(delList != null) {  
    44.             for(User user : delList) {  
    45.                 dao.delete(user.getId());  
    46.             }  
    47.         }  
    48.           
    49.         DateFormat dd=new SimpleDateFormat("yyyy-MM-dd");  
    50.         Date date=null;  
    51.         try {  
    52.             date = dd.parse("1985-01-01");  
    53.         } catch (ParseException e) {  
    54.             e.printStackTrace();  
    55.         }  
    56.           
    57.         //新增  
    58.         User bean = new User();  
    59.         bean.setName("ding");  
    60.         bean.setSex("男");  
    61.         bean.setBirs(date);  
    62.         bean.setMessage("This is Clob!");  
    63.         dao.add(bean);  
    64.           
    65.         List list = dao.queryByList(nullBean);  
    66.         if(list != null) {  
    67.             for(User user : list) {  
    68.                 System.out.println(user.getName()+user.getMessage());  
    69.             }  
    70.         }  
    71.           
    72.         //查询并更新  
    73.         bean = new User();  
    74.         bean.setName("ding");  
    75.         List queList = dao.queryByList(bean);  
    76.         if(queList != null) {  
    77.             for(User user : list) {  
    78.                 user.setSex("女");  
    79.                 dao.updateBySelective(user);  
    80.             }  
    81.         }  
    82.           
    83.         list = dao.queryByList(nullBean);  
    84.         if(list != null) {  
    85.             for(User user : list) {  
    86.                 System.out.println(user.getSex());  
    87.             }  
    88.         }  
    89.           
    90.         //查询并更新  
    91.         bean = new User();  
    92.         bean.setName("ding");  
    93.         List queList2 = dao.queryByList(bean);  
    94.         if(queList != null) {  
    95.             for(User user : queList2) {  
    96.                 user.setSex("男");  
    97.                 user.setMessage("");  
    98.                 dao.update(user);  
    99.             }  
    100.         }  
    101.           
    102.         list = dao.queryByList(nullBean);  
    103.         if(list != null) {  
    104.             for(User user : list) {  
    105.                 System.out.println(user.getSex());  
    106.             }  
    107.         }  
    108.           
    109.         int num = dao.queryByCount(nullBean);  
    110.         System.out.println("num=" + num);  
    111.         //默认是不提交的,所以这里手工提交  
    112.         sqlSession.commit();  
    113.           
    114.     }  
    115.   
    116. }  




    configuration.xml

    [html]  view plain copy 
    1. xml version="1.0" encoding="UTF-8" ?>     
    2.     PUBLIC "-//mybatis.org//DTD Config 3.0//EN"     
    3.     "http://mybatis.org/dtd/mybatis-3-config.dtd">  
    4. <configuration>  
    5.     <typeAliases>  
    6.           
    7.         <typeAlias type="com.southgis.scout.demo.User" alias="User" />  
    8.     typeAliases>  
    9.       
    10.     <environments default="development">  
    11.         <environment id="development">  
    12.             <transactionManager type="jdbc" />  
    13.             <dataSource type="POOLED">  
    14.                 <property name="driver" value="oracle.jdbc.OracleDriver" />  
    15.                 <property name="url" value="jdbc:oracle:thin:@192.168.56.102:1521:orcl" />  
    16.                 <property name="username" value="scott" />  
    17.                 <property name="password" value="tiger" />  
    18.             dataSource>  
    19.         environment>  
    20.     environments>  
    21.     <mappers>  
    22.           
    23.         <mapper resource="UsersMapper.xml" />  
    24.     mappers>  
    25. configuration>   



    UsersMapper.xml

    [html]  view plain copy 
      1. xml version="1.0" encoding="UTF-8"?>  
      2.   PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"  
      3.   "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
      4.     
      5. <mapper namespace="com.southgis.scout.demo.UsersMapper" >  
      6.   
      7.       
      8.     <resultMap type="com.southgis.scout.demo.User" id="BaseResultMap">  
      9.         <result property="id" column="id" />  
      10.         <result property="name" column="name" />  
      11.         <result property="sex" column="sex" />  
      12.         <result property="birs" column="birs" jdbcType="TIMESTAMP"/>  
      13.         <result property="message" column="message" jdbcType="CLOB" javaType = "java.lang.String"  typeHandler ="com.southgis.scout.demo.OracleClobTypeHandler"/>  
      14.     resultMap>  
      15.       
      16.       
      17.     <sql id="Tabel_Name">  
      18.         t_users  
      19.     sql>  
      20.       
      21.       
      22.     <sql id="Base_Column_List" >  
      23.         id,name,sex,birs,message  
      24.     sql>  
      25.   
      26.       
      27.     <sql id="Example_Where_Clause">  
      28.         where 1=1  
      29.         <trim suffixOverrides=",">  
      30.             <if test="id != null">  
      31.                 and id = #{id}  
      32.             if>  
      33.             <if test="name != null and name != ''">  
      34.                 and name like concat(concat('%', '${name}'), '%')  
      35.             if>  
      36.             <if test="sex != null and sex != ''">  
      37.                 and sex like concat(concat('%', '${sex}'), '%')  
      38.             if>  
      39.             <if test="birs != null">  
      40.                 and birs = #{birs}  
      41.             if>  
      42.             <if test="message != null">  
      43.                 and message = #{message}  
      44.             if>  
      45.         trim>  
      46.     sql>  
      47.       
      48.       
      49.       
      50.       
      51.     <insert id="add" parameterType="Object" >  
      52.          <selectKey resultType="int" order="BEFORE" keyProperty="id">  
      53.             select seq_t_users_id.nextval as id from dual  
      54.         selectKey>  
      55.         insert into t_users(id,name,sex,birs,message) values(#{id},#{name},#{sex},#{birs},#{message,jdbcType=CLOB})  
      56.     insert>  
      57.   
      58.         
      59.     <update id="update" parameterType="Object" >  
      60.         update t_users set name=#{name},sex=#{sex},birs=#{birs},message=#{message} where id=#{id}  
      61.     update>  
      62.   
      63.       
      64.     <update id="updateBySelective" parameterType="Object" >  
      65.         update t_users set   
      66.         <trim  suffixOverrides="," >  
      67.             <if test="name != null  and name != '' ">  
      68.                 name=#{name},  
      69.             if>  
      70.             <if test="sex != null  and sex != '' ">  
      71.                 sex=#{sex},  
      72.             if>  
      73.             <if test="birs != null  ">  
      74.                 birs=#{birs},  
      75.             if>  
      76.             <if test="message != null  and message != '' ">  
      77.                 message=#{message},  
      78.             if>  
      79.         trim> where id=#{id}  
      80.     update>  
      81.   
      82.       
      83.     <delete id="delete" parameterType="Object">  
      84.         delete from t_users where id = #{id}  
      85.     delete>  
      86.       
      87.       
      88.     <select id="queryById" resultMap="BaseResultMap" parameterType="Object">  
      89.         select  
      90.         <include refid="Base_Column_List" />  
      91.         from t_users where id = #{id}  
      92.     select>  
      93.   
      94.       
      95.     <select id="queryBySelective" resultMap="BaseResultMap" parameterType="Object">  
      96.         select  
      97.         <include refid="Base_Column_List" />  
      98.         from t_users  
      99.         <include refid="Example_Where_Clause" />  
      100.     select>  
      101.       
      102.       
      103.     <select id="queryByCount" resultType="java.lang.Integer" parameterType="Object">  
      104.         select count(1) from t_users  
      105.         <include refid="Example_Where_Clause" />  
      106.     select>  
      107.       
      108.       
      109.     <select id="queryByList" resultMap="BaseResultMap" parameterType="Object">  
      110.         select  
      111.         <include refid="Base_Column_List" />  
      112.         from t_users   
      113.         <include refid="Example_Where_Clause"/>  
      114.     select>  
      115. mapper>     

    你可能感兴趣的:(【转】mybatis连接Oracle做增删改查)