實訓-mybatis-經驗總結2
阿新 • • 發佈:2018-07-07
決定 如何 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