天天看點

maven項目建構出現的問題

第一個問題:依賴包下載下傳不全

這表明:在本地倉庫中出現了依賴jar包不完整的異常。此時需要對本地倉庫進行更新,或者在setting.xml中添加映射<mirror>(内部代碼請自行百度)</mirror>,然後在更新maven的整個項目時,勾選上如圖所示。

第二個問題:

web層一開始創建時,需要導入servlet-api的jar包,存在頁面檔案,還需要導入jsp-api的jar包。注意:一般某一層用到的jar包如果在其他層不會使用到,那麽就在該層導入即可。因爲有時候在比較上級的層結構中導入一些jar包時,會使得其他一些配置檔案出錯。

第三個問題:

在測試springData Jpa的時候,一定要記得開啓數據庫服務器,否則tomcat會一直報超時連接錯誤。

第四個問題:

SpringData Jpa在簡化dao層操作時,是通過動态代理的方式完成的。動态代理需要接口及其實作類,是以如圖所示。

定義一個接口,因為是簡化,是以我們隻需要繼承它寫好的接口即可,然後用實作類對象調用方法。

通過動态代理,生成實作類對象,然後調用接口中所有的增删改查方法。

注意:接口的兩個參數分别表示:

T:Standard,即實體類class

ID extends Serializable:資料表的主鍵屬性類型(eg:Integer/varchar)

第四個問題:springDataJpa在持久層dao中定義方法的兩種方式

/**
	 * 方式一:按照SpringDataJpa的規範定義方法名(即findBy開頭+實體類中的屬性名)
	 * 實體類中不存在的屬性名,會報錯
	 * @param sname
	 * @return
	 */
	public List<Standard> findByName(String sname);
	
	/**
	 * 方式二:自定義方法名(指定執行的語句)
	 * 需要添加注解@Query
	 *   參數:nativeQuery--是否執行本地查詢,即執行sql語句;
	 *   				      預設為false,即執行jpql語句
	 *   	 value="sql語句/jpql語句"
	 * 如果執行的是增删改語句,就需要再添加一個注解@Modifying
	 * @param sname
	 * @return
	 */
	//執行sql語句
	@Query(nativeQuery=true,value="select * from T_STANDARD where C_NAME=?")
	public List<Standard> findByAbc(String sname);
	//執行jpql語句
	@Query(value="from Standard where name=?")
	public List<Standard> findByXyz(String sname);
	//執行更新語句
	@Query(value="update Standard set name=? where id=?")
	@Modifying
	public void update(String name,int id);           

繼續閱讀