生活随笔
收集整理的這篇文章主要介紹了
mybatis_SQL映射(1)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章摘錄自:http://blog.csdn.net/y172158950/article/details/17258377
1. select的映射
[java]?view plaincopy
<select?id="selectPerson"?parameterType="int"?resultType="hashmap">?????????select?id,?name,?sex,?updateTime?from?person?where?id?=#{id};??</select>?? a) #{id}:創建預編譯語句參數,占位符
b) parameterType:參數的類型,int類型
c)resultType:返回的結果集,封裝為hashMap
[java]?view plaincopy
public?Map<String,?Object>?selectPersonById(int?id)?{??????SqlSession?session?=?DbFactory.getInstance().openSession();??????Map<String,?Object>?m?=?(Map<String,?Object>)?session.selectOne("com.yjq.entity.Person.selectPerson",?id);??????session.commit();??????session.close();??????return?m;??}?? [java]?view plaincopy
{id=4,?sex=f,?NAME=zql,?updateTime=2013-12-10?14:18:11.0,?SEX=f,?name=zql,?ID=4,?UPDATETIME=2013-12-10?14:18:11.0}?? d) 結果集為啥有大小寫的key2份?神奇的mybatis啊。
2. insert,update,delete的映射
[java]?view plaincopy
<insert?id="insertPerson"?parameterType="com.yjq.entity.Person"?useGeneratedKeys="true"?keyProperty="id">?<!--?將自增主鍵生成的值回寫到對象??-->?????????insert?into?person(name,?sex,?updateTime)?values(#{name},?#{sex},?#{updateTime});??</insert>??<delete?id="deletePerson"?parameterType="int">?????????delete?from?person?where?id=#{id};??</delete>??<update?id="updatePerson"?parameterType="com.yjq.entity.Person">?????????update?person?set?name=#{name},?sex=#{sex},?updateTime=#{updateTime}?where?id=#{id};??</update>?? a) parameterType="com.yjq.entity.Person":對象參數,#{name}表示Person對象的name屬性。
b) useGeneratedKeys="true" keyProperty="id":只存在于insert命令,寫這2個參數會將主鍵自增長的值回寫到傳入的參數對象。
[java]?view plaincopy
public?Person?insertPerson(Person?p)?{??????SqlSession?session?=?DbFactory.getInstance().openSession();??????session.insert("com.yjq.entity.Person.insertPerson",?p);??????session.commit();??????session.close();??????return?p;??}?? [java]?view plaincopy
PersonDao?dao?=?new?PersonDao();??Person?p?=?new?Person();??p.setName("zql");??p.setSex("f");??p.setUpdateTime(new?Date());??System.out.println("------"?+?p.getId());??dao.insertPerson(p);??System.out.println(p.getId());?? [java]?view plaincopy
------0??7?? c) 返回值:insert,update,delete方法均返回int參數,表示操作了多少條數據
[java]?view plaincopy
int?result?=?session.update("com.yjq.entity.Person.updatePerson",?p);?? d) 假設數據庫不支持自增id,mybatis可以生成隨機主鍵
[java]?view plaincopy
<insert?id="insertPerson2"?parameterType="com.yjq.entity.Person">??????<selectKey?keyProperty="id"?resultType="int"?order="BEFORE">??<!--?生成隨機id數?-->??????????select?CONVERT(RAND()*1000000,SIGNED)?a?from?dual;??????</selectKey>??????insert?into?person(id,?name,?sex,?updateTime)?values(#{id},?#{name},?#{sex},?#{updateTime});??</insert> ?
轉載于:https://www.cnblogs.com/haimishasha/p/5710517.html
總結
以上是生活随笔為你收集整理的mybatis_SQL映射(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。