日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mybatis_SQL映射(1)

發布時間:2023/12/18 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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();??//單例SqlSessionFactory工廠??
  • ????Map<String,?Object>?m?=?(Map<String,?Object>)?session.selectOne("com.yjq.entity.Person.selectPerson",?id);??
  • ????session.commit();??
  • ????session.close();??
  • ????return?m;??
  • }??
  • [java]?view plaincopy
  • //output??
  • {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
  • //output(insert前id未賦值,insert后id=7)??
  • ------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)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。