1. 程式人生 > >實訓-mybatis-經驗總結2

實訓-mybatis-經驗總結2

決定 如何 out pda ron 數據庫 utf odin ima

今天上課一點小收益,今天和昨天的mybatis最大改變就是,昨天寫完dao接口 還要繼續寫dao的實現類。而今天 只要有寫dao接口即可,讓mybatis幫我們自動制造出dao的實現類

另外補充一點小知識

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.icss.dao.CustomerDao"> 
  
  <!-- 這個resultType 決定了 你執行session.selectOne("id:XX",2) 的返回值 -->

<!-- 註意 下 面的 resultType 正常來說肯定要寫帶完整包名的,com.icss.entity.Customer  -->
<!-- 能這樣寫的原因 是因為在總XML文件中設置了一樣東西 -->
   <select id="getCustomerById" parameterType="int"  resultType="Customer">

     select * from customer where id=#{id}
   </select>

技術分享圖片


另外,假如想要在總XML 通過配置文件來 設 連接數據庫的信息 可以這樣

技術分享圖片

resource 後面的地址 是相對路徑 ,因為jdbc.properties和mybatis-config.xml都屬於同級目錄,所以我就直接寫jdbc.properties

技術分享圖片


今天由於在實驗室電腦和自己宿舍電腦 轉來轉去的,遇到個問題

就是實驗室裏是有tomcat的servlet-api.jar 和jsp.jar包,而將整個項目拷會自己電腦時,就會沒有依賴。如何解決呢,很簡單

右鍵項目屬性--java -build Path

技術分享圖片

技術分享圖片

技術分享圖片

下面是 ,今天和昨天,mabatis最大的不同,今天更為方便

package com.icss.dao;

import java.util.Map;

import com.icss.entity.Customer;

/**
 * 
 * @author czy
 * 
 *
 */
public interface CustomerDao {
    /**
     * 
     * @param id
     * @return
     * 根據id查找一個用戶
     */
     public Customer getCustomerById(int id);
   
     
     /**
      * 
      * @param phone
      * @return
      * 根據電話號碼找一個用戶
      */
     public Customer getCustomerByPhone(String phone);
    
    /**
     * 
     * @param map
     * @return
     * 
     * 根據 多個條件進行查找: 用戶名和密碼
     * 因為那邊<select id="getCustomerByPhonePwd" parameterType="map" resultType="Customer">  所以形參類型也要設為Map
     */
     public Customer  getCustomerByPhonePwd(Map map);
    
     /**
      * 
      * @param cus
      * @return
      * 插入一個客戶
      */
     public  int  insertCustomer(Customer cus);
    
     /***
      * 
      * @param cus
      * @return
      * 修改一個用戶信息
      */
     public int updateCustomer(Customer cus);
     
     /**
      * 
      * @param id
      * @return
      * 根據id刪除一個用戶
      */
     public  int deleteById(int id);
    
}

@Test
    public void testGetCustomerById() {
       // 
        SqlSession  sqlsession=SQLSessionUtil.getSqlSession();
        /**
         * 以前寫完dao層接口,還要在daoImp類 裏 實現接口的每一個方法,每個實現方法給他
         * sqlsession=SQLSessionUtil.getSqlSession(); 
         * sqlsession.selectOne("ID-XX",2);
         * 
         * 而現在的話,讓mybatis框架自動幫我們生成dao接口的實現類。
         * 我們只需先寫一個dao接口 ,方法名字和XML 的SQL各標簽id 同樣
         * 再通過getMapper(Class) 來幫我們自動生成此接口的實現類
         * 接口名字  dao= sqlsession.getMapper(接口名字.class);
         *  這樣 sqlsession.getMapper(CustomerDao.class) 就會給我們返回一個dao接口的實現類
         */
        
        /**
         * 省去了再dao實現類 方法裏寫那些
         * sqlsession=SQLSessionUtil.getSqlSession(); 
         * sqlsession.selectOne("ID-XX",2);
         * sqlsession.selectList("ID-XX2",map);
         * sqlsession.Update("ID-XX3",user);
         * 下面這句話 就是 幫我們把dao實現類弄好了
         */
        CustomerDao  dao= sqlsession.getMapper(CustomerDao.class);
        
        Customer  cus= dao.getCustomerById(1);
        System.out.println(cus);
    }

實訓-mybatis-經驗總結2