如何編寫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,一般定義為對應的介面
python中sql語句的占位符
type per mysq nbsp dem pre html 引號 字符 報錯信息:"File"/usr/lib/pymodules/python2.6/MySQLdb/cursors.py", line 151, inexecute query = query % db
五、mysql中sql語句分類及常用操作
所表 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
php中sql語句
Mysql進入mysql; 在cmd中 net start mysql;//啟動mysql服務 net stop mysql;//關閉mysql服務mysql -uroot -hlocalhost -p;//進入mysqlcreate database 數據庫名字;//創建數據庫show databases;
mybatis中sql語句查詢操作
java 拼接 tca 指定 lose pan 添加 fill test 動態sql where if where可以自動處理第一個and。 <!-- 根據id查詢用戶信息 --> <!-- public User findUse
sql中一個表的數據插入到另一個表中sql語句怎麽寫?謝謝!
另一個 來電 一個 保留 生日 ongl 讓我 短信 都是 <p> 有了朋友,她不再感到孤獨,不再覺得無,助,不再產生自殘,她笑了,發自內心的真正的笑。她決定把心中的一切毫無保留地向他傾訴,她與他約好了時間。 但他太忙了,太忙了。於是,她在QQ上留言,在手機上
vs中SQL語句排版問題
在net開發中經常編寫sql語句,我一般是在VS之外使用其他的工具寫sql,測試完成之後將sql拷貝到VS中,拷貝到VS中的sql,經常將一些製表符和多餘的空格拷貝到VS中。 最近看VS的選單,發現可以將製表符替換成空格,並且將水平空白刪除,這樣就可以多餘的空白刪除,只保留一個空白(注意:刪除水
Mapper中sql語句不等於的表示
select * from test where id<>1; 但是mybatis報錯 <> 應該轉義 <> 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
Qt中SQL語句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
關於Java中SQL語句的拼接規則
實現目標語句是這個注意,這裡的java變數是idd int idd; String sql = "SELECT id, piUrl FROM picinfos WHERE id BETWEEN '" + idd + "' AND 10" ; java中的字串只能雙引號,如果字串中需要拼接變數