1. 程式人生 > >如何編寫Java的MyBatis框架中SQL語句對映部分

如何編寫Java的MyBatis框架中SQL語句對映部分

1..增刪改查、引數、快取

1.1 select  舉例如下:

查詢學員資訊,一個String引數,引數標識為#{studentID},並返回一個StudentEntity型別的物件

<select id="getStudent" parameterType="String" resultMap="studentResultMap">

  SELECT ST.STUDENT_ID,

        ST.STUDENT_NAME,

        ST.STUDENT_SEX,

        ST.STUDENT_BIRTHDAY,

        ST.CLASS_ID

    FROM STUDENT_TBL ST

    WHERE ST.STUDENT_ID = #{studentID}

</select>

1.2 insert 舉例如下:

插入資料,一個String引數,引數標識為#{studentID},並返回一個StudentEntity型別的物件。

<insert id="insertStudent" parameterType="StudentEntity">

    INSERT INTO STUDENT_TBL (STUDENT_ID,

                    STUDENT_NAME,

                    STUDENT_SEX,

                    STUDENT_BIRTHDAY,

                    CLASS_ID)

      VALUES  (#{studentID},

            #{studentName},

            #{studentSex},

            #{studentBirthday},

            #{classEntity.classID})

</insert>

1.3 update 舉例如下:

更新學員資訊

<update id="updateStudent" parameterType="StudentEntity">

    UPDATE STUDENT_TBL

      SET STUDENT_TBL.STUDENT_NAME = #{studentName}, 

        STUDENT_TBL.STUDENT_SEX = #{studentSex},

        STUDENT_TBL.STUDENT_BIRTHDAY = #{studentBirthday},

        STUDENT_TBL.CLASS_ID = #{classEntity.classID}

    WHERE STUDENT_TBL.STUDENT_ID = #{studentID}; 

</update>

1.4 delete  舉例如下:

刪除學員資訊:

<delete id="deleteStudent" parameterType="StudentEntity">

    DELETE FROM STUDENT_TBL WHERE STUDENT_ID = #{studentID}

</delete>

2.ResultMap

SQL對映xml檔案是為了放置所有sql語句,需要定義一個workspace,正常是介面類的路徑。SQL語句對映檔案寫好後,需要在MyBatis配置檔案mappers標籤中引用。

舉例如下:

<mappers>

  <mapper resource="cn/tedu/ninixie/manager/data/mappers/UserMapper.xml" />

  <mapper resource="cn/tedu/ninixie/manager/data/mappers/StudentMapper.xml" />

  <mapper resource="cn/tedu/ninixie/manager/data/mappers/ClassMapper.xml" />

  <mapper resource="cn/tedu/ninixie/manager/data/mappers/TeacherMapper.xml" />

</mappers>

當Java介面與xml檔案在一個相對路徑下,那麼MyBaits配置檔案的napper中可以不用宣告。

ResultMaps的作用,就是簡單的語句而不需要多餘的結果對映,更多複雜的語句,除了只要一些絕對必須的語句描述關係以外,就不需要其它的了。

resultMap屬性:type為java實體類;id為此resultMap的標識。

resultMap可以設定的對映:

2.1 constructor:用來將結果發射給一個例項化好的類的構造器

      idArg_ID 引數:將結果集標記為ID,為了方便全域性呼叫

     arg –反射到構造器的通常結果

2.2 id結果,將結果集標記為ID,為了方便全域性呼叫

2.3 result:反射到JavaBean的普通結果

2.4 association:複雜型別的結合,多個結果合成的型別
2.5 collection:複雜型別結合

2.6 resultMap的集合,也可以引用到其他

2.7 discriminator:使用一個結果值為了決定使用哪個結果集。

相關推薦

如何編寫Java的MyBatis框架SQL語句對映部分

1..增刪改查、引數、快取 1.1 select  舉例如下: 查詢學員資訊,一個String引數,引數標識為#{studentID},並返回一個StudentEntity型別的物件 <select id="getStudent" parameterType="St

詳解Java的MyBatis框架SQL語句對映部分編寫

這篇文章主要介紹了Java的MyBatis框架中SQL語句對映部分的編寫,文中分為resultMap和增刪查改實現兩個部分來講解,需要的朋友可以參考下1.resultMapSQL 對映XML 檔案是所有sql語句放置的地方。需要定義一個workspace,一般定義為對應的介面

pythonsql語句的占位符

type per mysq nbsp dem pre html 引號 字符 報錯信息:"File"/usr/lib/pymodules/python2.6/MySQLdb/cursors.py", line 151, inexecute query = query % db

五、mysqlsql語句分類及常用操作

所表 desc 直接 常用操作 文件 ble div alter .cn 1.sql語句分類: DQL語句  數據查詢語言  select DML語句  數據操作語言  insert delete update DDL語句  數據定義語言  create drop

EF框架使用sql語句或存儲過程

num tab index ase derby info user new word 1、無參數查詢 var model = db.Database.SqlQuery<UserInfo>("select* from UserInfoes ").ToList();

Oracle sql語句的取前n條數據

沒有 blog tab 註意 sql table bsp num 數據 取得薪水最高的前五名員工 sql: select * from ( select empno,ename,sal from emp order by sal desc) where rownum&l

phpsql語句

Mysql進入mysql; 在cmd中 net start mysql;//啟動mysql服務 net stop mysql;//關閉mysql服務mysql -uroot -hlocalhost -p;//進入mysqlcreate database 數據庫名字;//創建數據庫show databases;

mybatissql語句查詢操作

java 拼接 tca 指定 lose pan 添加 fill test 動態sql where if where可以自動處理第一個and。   <!-- 根據id查詢用戶信息 --> <!-- public User findUse

sql一個表的數據插入到另一個表sql語句怎麽寫?謝謝!

另一個 來電 一個 保留 生日 ongl 讓我 短信 都是 <p>  有了朋友,她不再感到孤獨,不再覺得無,助,不再產生自殘,她笑了,發自內心的真正的笑。她決定把心中的一切毫無保留地向他傾訴,她與他約好了時間。 但他太忙了,太忙了。於是,她在QQ上留言,在手機上

vsSQL語句排版問題

在net開發中經常編寫sql語句,我一般是在VS之外使用其他的工具寫sql,測試完成之後將sql拷貝到VS中,拷貝到VS中的sql,經常將一些製表符和多餘的空格拷貝到VS中。 最近看VS的選單,發現可以將製表符替換成空格,並且將水平空白刪除,這樣就可以多餘的空白刪除,只保留一個空白(注意:刪除水

Mappersql語句不等於的表示

select * from test where id<>1; 但是mybatis報錯 <> 應該轉義  &lt;&gt;  select * from 

mybaits(查詢與別名、日誌框架顯示sql語句、物件屬性和資料庫表字段不匹配resultMap使用、mysql資料查詢分頁、執行sql和儲存過程、動態SQL語句

主要是各種配置檔案,建議把整個專案搬到自己電腦上慢慢看。 建立maven專案 首先是各種配置檔案: pom.xml: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://m

實習工作Sql 語句 IN 和 EXISTS 的心得體會

在學校時做專案時資料庫表少而且資料量也不大,做子查詢的時候一般沒有什麼區別,所以一直以來沒有注意過這個問題。 如今工作後,讓我實現政府執法人員執政編號的修改,用IN做子查詢時發現效率特別慢,最後發現是因為IN語句中查詢順序不同導致的。 IN 語句:只執行一次   &n

QtSQL語句update同時更新多欄位及設定欄位值為空的方法

Qt中往往需要對資料庫進行操作,常出現根據某變數更改相關欄位的內容。一般地,可以採用名稱繫結和位置繫結兩種方法。 本文以update舉例,其他insert等語句操作類似。 方法一:名稱繫結 已知:定義Qstring型別變數a b c d e f g h。

MyBatis sql語句include標籤的使用

   <!-- 1.先定義用於select查詢公用抽取的列 -->     <sql id="columns">         id,name,sex,birth

MySql 資料庫sql語句取一段時間的每一天的最後一條

使用場景: 使用者每天都有上報資料,後臺需要檢視某個使用者近期一段時間內每天的資料走勢。於是需要查詢該使用者在這段時間內每天最後上報的那條資料。 程式碼如下: SELECT * FR

mybatis框架的輸入對映

  mybatis.xml對映檔案中定義了操作資料庫的sql,每個sql是一個statement,對映檔案是mybatis的核心。 輸入型別: 1.傳遞簡單型別   可以參考我之前的對於資料庫增刪改查的博文。 2.傳遞po物件   mybatis使用ognl表示式解析物件欄位的值,#{}或者${}括

Eclipse編寫ssm框架遇到的幾個問題及解決方案

javaweb classpath的問題:classpath目錄簡而言之指的是src目錄下,可放在src目錄或者其子目錄下,讀取配置檔案位置時指定即可。classpath 路徑在每個J2ee專案中都會用到,即WEB-INF下面的classes目錄,所有src目錄下面的java

基層sql語句部分執行順序

  今天遇到一個問題,在使用mybatis來操作資料庫的時候。我要想通過一張中間表,來實現主表的查詢,並以前端easyui樣式中樹的形式展現出來,我利用兩個左連結left查詢資料庫的。不多說直接上查詢語句: resoure是我的主表、user_res是我的中間表 第一個查詢語句:s

關於JavaSQL語句的拼接規則

實現目標語句是這個注意,這裡的java變數是idd int idd; String sql = "SELECT id, piUrl FROM picinfos WHERE id BETWEEN '" + idd + "' AND 10" ; java中的字串只能雙引號,如果字串中需要拼接變數