java高級工程師面試問題集結號(four)

1:mybaties如何實現數據庫表名和實體名不一致的狀況sql

  • 經過在查詢的sql語句中定義字段名的別名,讓字段名的別名和實體類的屬性名一致,這樣就能夠表的字段名和實體類的屬性名一一對應上了,這種方式是經過在sql語句中定義別名來解決字段名和屬性名的映射關係的。

<select id="selectOrder" parameterType="int" resultType="me.gacl.domain.Order"> select order_id id, order_no orderNo,order_price price from orders where order_id=#{id} </select> - 經過<resultMap>來映射字段名和實體類屬性名的一一對應關係。這種方式是使用MyBatis提供的解決方式來解決字段名和屬性名的映射關係的。 <!-- 根據id查詢獲得一個order對象,使用這個查詢是能夠正常查詢到咱們想要的結果的, 這是由於咱們經過<resultMap>映射實體類屬性名和表的字段名一一對應關係 --> <select id="selectOrderResultMap" parameterType="int" resultMap="orderResultMap"> select * from orders where order_id=#{id} </select> <!--經過<resultMap>映射實體類屬性名和表的字段名對應關係 --> <resultMap type="me.gacl.domain.Order" id="orderResultMap"> <!-- 用id屬性來映射主鍵字段 --> <id property="id" column="order_id"/> <!-- 用result屬性來映射非主鍵字段 --> <result property="orderNo" column="order_no"/> <result property="price" column="order_price"/> </resultMap> 2:mybaties的原理 MyBatis應用程序根據XML配置文件建立SqlSessionFactory,SqlSessionFactory在根據配置,配置來源於兩個地方,一處是配置文件,一處是Java代碼的註解,獲取一個SqlSession。SqlSession包含了執行sql所須要的全部方法,能夠經過SqlSession實例直接運行映射的sql語句,完成對數據的增刪改查和事務提交等,用完以後關閉SqlSession。數據庫

相關文章
相關標籤/搜索