<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    歐陽良才

    不是別人,就是我陽良才
    隨筆 - 13, 文章 - 8, 評論 - 2, 引用 - 0
    數據加載中……

    關于ibatis

    1.關于ibatis

    ibatis是一種半自動化的ORM框架
    說明:此文章來自 月月鳥0820  http://www.cnblogs.com/java-pan/archive/2012/03/21/ibatis.html

     

    2.項目環境介紹

    System:WIN7 JDK:編譯1.4 開發1.5  數據庫:oracle的dept表

    image

     

    3.文件介紹

    Dept.java  一個javabean

    IDeptSV.java  一個接口,用來聲明增、刪、改、查的方法

    DeptSVImpl.java 對IDeptSV接口的實現,主要包括獲得SqlMapClient對象以及方法體的實現

    ShowDept.java 用來測試的方法.通過ECS插件把查詢的結果寫入到ibatis.html文件中

    Dept.xml 實體和數據庫表對應的映射文件,主要是寫增、刪、改、查的sql語句

    SqlMap.properties 數據庫配置文件,以鍵值對的形式聲明數據庫的driver、url、username、password

    SqlMapConfig.xml  ibatis的核心配置文件,主要是引入數據庫配置文件,配置數據庫連接相關的屬性;引入實體類和數據庫表的映射文件(本次用到的只是最簡單的配置文件)

     

    4.下載jar包

    ibatis-2.3.4.jar ibatis的jar包

    classes12.jar oracle數據庫的驅動包

    ecs-1.4.2.jar ECS插件包,為了鞏固這個插件的使用故用此插件顯示查詢結果

    三個jar包壓縮成了一個文件,下載路徑如下:http://files.cnblogs.com/java-pan/jar.rar

     

    5.關于class&method的介紹

    Reader

    java.io.Reader

     

    SqlMapClientBuilder

    com.ibatis.sqlmap.client.SqlMapClientBuilder

     

    SqlMapClient

    com.ibatis.sqlmap.client.SqlMapClient

     

    關于ECS插件相關類的介紹請見文章

    http://www.cnblogs.com/java-pan/archive/2012/01/08/ecs.html

     

     

    start

    新建web project項目Ibatis,導入jar包(數據庫驅動包,ibatis包,ECS的jar包),各個文件的代碼如下:

    1.Dept.java

    Dept.java
     1 package ibatis;
    2
    3 /**
    4 *Module: Dept.java
    5 *Description: 使用orcle自帶的部門表dept--javabean
    6 *Company:
    7 *Author: ptp
    8 *Date: Mar 19, 2012
    9 */
    10 public class Dept {
    11 // 構造方法
    12 public Dept() {
    13
    14 }
    15
    16 private int deptNo;
    17 private String dName;
    18 private String loc;
    19
    20 public int getDeptNo() {
    21 return deptNo;
    22 }
    23
    24 public void setDeptNo(int deptNo) {
    25 this.deptNo = deptNo;
    26 }
    27
    28 public String getDName() {
    29 return dName;
    30 }
    31
    32 public void setDName(String name) {
    33 dName = name;
    34 }
    35
    36 public String getLoc() {
    37 return loc;
    38 }
    39
    40 public void setLoc(String loc) {
    41 this.loc = loc;
    42 }
    43 }

     

    2.IDeptSV.java

    IDeptSV.java
     1 package ibatis;
    2
    3 import java.util.List;
    4
    5 /**
    6 *Module: IDeptSV.java
    7 *Description: CRUD的接口類
    8 *Company:
    9 *Author: ptp
    10 *Date: Mar 19, 2012
    11 */
    12 public interface IDeptSV {
    13
    14 // 添加
    15 public void addDept(Dept dept);
    16
    17 //添加數據 主鍵自動生成
    18 public void addDeptSequenct(Dept dept);
    19
    20 // 刪除
    21 public void delByDeptNo(int deptNo);
    22
    23 // 查詢 所有記錄
    24 public List queryDept();
    25
    26 // 根據條件查詢
    27 public Dept queryByDeptNo(int deptNo);
    28
    29 //模糊查詢 按照DNAME查詢
    30 public List queryByName(String dName);
    31
    32 // 修改
    33 public void updateDept(Dept dept);
    34
    35 }

     

    3.DeptSVImpl.java

    DeptSVImpl.java
      1 package ibatis;
    2
    3 import java.io.IOException;
    4 import java.io.Reader;
    5 import java.sql.SQLException;
    6 import java.util.List;
    7 import com.ibatis.common.resources.Resources;
    8 import com.ibatis.sqlmap.client.SqlMapClient;
    9 import com.ibatis.sqlmap.client.SqlMapClientBuilder;
    10 /**
    11 * Module: DeptSVImpl.java
    12 * Description: CRUD的實現類
    13 * Company:
    14 * Author: ptp
    15 * Date: Mar 19, 2012
    16 */
    17 public class DeptSVImpl implements IDeptSV {
    18 // 定義ibatis映射文件的位置
    19 private static String resource = "ibatis/SqlMapConfig.xml";
    20 private static SqlMapClient sqlMapClient = null;
    21 static {
    22 try {
    23 Reader reader = Resources.getResourceAsReader(resource);
    24 sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
    25 reader.close();
    26 // 設置為自動提交
    27 // System.out.println(sqlMapClient.getDataSource().getConnection()
    28 // .getAutoCommit());
    29 } catch (IOException e) {
    30 e.printStackTrace();
    31 }
    32 }
    33
    34 /*
    35 * (non-Javadoc) 添加記錄
    36 */
    37 public void addDept(Dept dept) {
    38 try {
    39 sqlMapClient.startTransaction();// 開啟事務
    40 sqlMapClient.insert("insertDept", dept);
    41 sqlMapClient.commitTransaction();// 提交事務
    42 System.out.println("******成功添加1條記錄******");
    43 } catch (SQLException e) {
    44 try {
    45 sqlMapClient.getCurrentConnection().rollback();// 回滾事務
    46 } catch (SQLException e1) {
    47 e1.printStackTrace();
    48 }
    49 e.printStackTrace();
    50 } finally {
    51 try {
    52 sqlMapClient.endTransaction();// 結束事務
    53 } catch (SQLException e) {
    54 e.printStackTrace();
    55 }
    56 }
    57 }
    58
    59 /*
    60 * (non-Javadoc) 刪除記錄 一次只刪除一條記錄
    61 */
    62 public void delByDeptNo(int deptNo) {
    63 try {
    64 sqlMapClient.startTransaction();// 開始事務
    65 sqlMapClient.delete("deleteDeptById", new Integer(deptNo));
    66 sqlMapClient.commitTransaction();// 提交事務
    67 System.out.println("******成功刪除1條記錄******");
    68 } catch (SQLException e) {
    69 try {
    70 sqlMapClient.getCurrentConnection().rollback();// 回滾事務
    71 } catch (SQLException e1) {
    72 e1.printStackTrace();
    73 }
    74 e.printStackTrace();
    75 } finally {
    76 try {
    77 sqlMapClient.endTransaction();// 結束事務
    78 } catch (SQLException e) {
    79 e.printStackTrace();
    80 }
    81 }
    82 }
    83
    84 /*
    85 * (non-Javadoc) 查詢 查詢所有記錄
    86 */
    87 public List queryDept() {
    88 List rows = null;
    89 try {
    90 sqlMapClient.startTransaction();// 開始事務
    91 rows = sqlMapClient.queryForList("selectAllDept");
    92 sqlMapClient.commitTransaction();// 提交事務
    93 System.out.println("******成功查詢所有記錄******");
    94 } catch (SQLException e) {
    95 try {
    96 sqlMapClient.getCurrentConnection().rollback();// 回滾事務
    97 } catch (SQLException e1) {
    98 e1.printStackTrace();
    99 }
    100 e.printStackTrace();
    101 } finally {
    102 try {
    103 sqlMapClient.endTransaction();// 結束事務
    104 } catch (SQLException e) {
    105 e.printStackTrace();
    106 }
    107 }
    108 return rows;
    109 }
    110
    111 /*
    112 * (non-Javadoc) 查詢 查詢一條記錄
    113 */
    114 public Dept queryByDeptNo(int deptNo) {
    115 Dept dept = null;
    116 try {
    117 sqlMapClient.startTransaction();// 開始事務
    118 dept = (Dept) sqlMapClient.queryForObject("selectById",
    119 new Integer(deptNo));
    120 sqlMapClient.commitTransaction();// 提交事務
    121 System.out.println("******成功查詢1條記錄******");
    122 } catch (SQLException e) {
    123 try {
    124 sqlMapClient.getCurrentConnection().rollback();// 回滾事務
    125 } catch (SQLException e1) {
    126 e1.printStackTrace();
    127 }
    128 e.printStackTrace();
    129 } finally {
    130 try {
    131 sqlMapClient.endTransaction();// 結束事務
    132 } catch (SQLException e) {
    133 e.printStackTrace();
    134 }
    135 }
    136 return dept;
    137 }
    138
    139 /*
    140 * (non-Javadoc) 更新 一次只更新一條記錄
    141 */
    142 public void updateDept(Dept dept) {
    143 try {
    144 sqlMapClient.startTransaction();// 開始事務
    145 sqlMapClient.update("updateDeptById", dept);
    146 sqlMapClient.commitTransaction();// 提交事務
    147 System.out.println("******成功更新1條記錄******");
    148 } catch (SQLException e) {
    149 try {
    150 sqlMapClient.getCurrentConnection().rollback();// 回滾事務
    151 } catch (SQLException e1) {
    152 e1.printStackTrace();
    153 }
    154 e.printStackTrace();
    155 } finally {
    156 try {
    157 sqlMapClient.endTransaction();// 結束事務
    158 } catch (SQLException e) {
    159 e.printStackTrace();
    160 }
    161 }
    162 }
    163
    164 /*
    165 * (non-Javadoc) 模糊查詢
    166 */
    167 public List queryByName(String name) {
    168 List depts = null;
    169 try {
    170 sqlMapClient.startTransaction();// 開始事務
    171 depts = sqlMapClient.queryForList("selectByName", name);
    172 sqlMapClient.commitTransaction();// 提交事務
    173 System.out.println("******模糊查詢成功******");
    174 } catch (SQLException e) {
    175 try {
    176 sqlMapClient.getCurrentConnection().rollback();// 回滾事務
    177 } catch (SQLException e1) {
    178 e1.printStackTrace();
    179 }
    180 e.printStackTrace();
    181 } finally {
    182 try {
    183 sqlMapClient.endTransaction();// 結束事務
    184 } catch (SQLException e) {
    185 e.printStackTrace();
    186 }
    187 }
    188 return depts;
    189 }
    190
    191 /*
    192 * (non-Javadoc)主鍵自動生成 添加記錄
    193 */
    194 public void addDeptSequenct(Dept dept) {
    195 try {
    196 sqlMapClient.startTransaction();// 開始事務
    197 sqlMapClient.insert("insertDeptBySequence", dept);
    198 sqlMapClient.commitTransaction();// 提交事務
    199 System.out.println("******成功添加1條記錄(主鍵自動生成)******");
    200 } catch (SQLException e) {
    201 try {
    202 sqlMapClient.getCurrentConnection().rollback();// 回滾事務
    203 } catch (SQLException e1) {
    204 e1.printStackTrace();
    205 }
    206 e.printStackTrace();
    207 } finally {
    208 try {
    209 sqlMapClient.endTransaction();// 結束事務
    210 } catch (SQLException e) {
    211 e.printStackTrace();
    212 }
    213 }
    214 }
    }

    posted on 2012-03-23 13:45 歐陽良才 閱讀(564) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲妓女综合网99| 亚洲欧洲成人精品香蕉网| 亚洲香蕉免费有线视频| 久草免费福利视频| 亚洲av伊人久久综合密臀性色| 中文字幕不卡高清免费| 亚洲成A人片在线观看无码不卡| 国产一级淫片a免费播放口| 久久精品国产亚洲AV果冻传媒| 免费人成在线观看视频高潮| 久久精品国产精品亚洲蜜月| 日本免费中文视频| 亚洲色成人网一二三区| 免费看成人AA片无码视频羞羞网| 亚洲自国产拍揄拍| 国产又粗又猛又爽又黄的免费视频| 麻豆亚洲AV成人无码久久精品| 亚洲国产精品成人一区| 国产成人AV免费观看| 亚洲精品白色在线发布| 大学生美女毛片免费视频| 免费国产黄网站在线看| 久久精品国产亚洲沈樵| 91精品免费国产高清在线| 亚洲成a人片在线不卡一二三区| 亚洲国产免费综合| 久久久久国色av免费看| 国产成人亚洲综合网站不卡| 亚洲精品成人网久久久久久| 97视频免费观看2区| 亚洲人成色4444在线观看| 日韩精品亚洲aⅴ在线影院| 91大神在线免费观看| 亚洲乱妇老熟女爽到高潮的片| 亚洲国产成人久久综合碰| 中文字幕在线观看免费视频| 亚洲爆乳成av人在线视菜奈实| 亚洲国产另类久久久精品黑人 | 三上悠亚在线观看免费| 亚洲午夜精品一区二区公牛电影院 | 伊人免费在线观看|