mybatis学习笔记四(动态sql)
生活随笔
收集整理的這篇文章主要介紹了
mybatis学习笔记四(动态sql)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
直接貼圖,注解在代碼上,其他的配置文件在學(xué)習(xí)一中就不貼了
1 數(shù)據(jù)庫(kù)
2 實(shí)體類(lèi)
package com.home.entity;/*** 此類(lèi)是: 用戶(hù)實(shí)體類(lèi)* @author hpc* @2017年1月15日下午2:16:27*/ public class User {private Integer user_id;// 用戶(hù)idprivate String user_name;// 用戶(hù)名稱(chēng)private String user_pwd;// 用戶(hù)密碼public User(Integer user_id, String user_name, String user_pwd) {super();this.user_id = user_id;this.user_name = user_name;this.user_pwd = user_pwd;}public User(){}public Integer getUser_id() {return user_id;}public void setUser_id(Integer user_id) {this.user_id = user_id;}public String getUser_name() {return user_name;}public void setUser_name(String user_name) {this.user_name = user_name;}public String getUser_pwd() {return user_pwd;}public void setUser_pwd(String user_pwd) {this.user_pwd = user_pwd;}@Overridepublic String toString() {return "User [user_id=" + user_id + ", user_name=" + user_name + ", user_pwd=" + user_pwd + "]";}}
3.動(dòng)態(tài)sql配置
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.home.mapper"><!-- mybatis中的動(dòng)態(tài)標(biāo)簽和struts,JSTL標(biāo)簽十分相似,如果學(xué)習(xí)過(guò)的話,很容易就理解了 --><select id="loadUser" resultType="user" parameterType="user"><!-- 如果user_id 等于4 就執(zhí)行這條sql語(yǔ)句,test中的是實(shí)體類(lèi)的屬性,是通過(guò)反射獲取出來(lái)的,所以我們這里傳進(jìn)來(lái)的參數(shù)是一個(gè)實(shí)體類(lèi)對(duì)象 --><if test="user_id == 4">select *from users uwhere u.user_id=#{user_id}</if><!-- 如果user_id不等于空和不等于4 就進(jìn)入這一個(gè),邏輯運(yùn)算符 and,or ==,!= >,>= <,<= ...等--><if test="user_id != null and user_id !=4"><!-- choose相當(dāng)于java中的switch --><choose><!-- when 相當(dāng)于case --><!-- 只有當(dāng)user_id不等于空的時(shí)候才查找對(duì)應(yīng)的user信息 --><when test="user_id > 4">select *from users uwhere u.user_id=#{user_id}</when><!-- 相當(dāng)于default --><!-- 當(dāng)user_id等于空就執(zhí)行下面這條sql,查詢(xún)名字為hpc的用戶(hù) --><otherwise>select *from userswhere user_name='hpc'</otherwise></choose></if></select> </mapper>
4.測(cè)試類(lèi)
package com.home.mybatis;import java.io.IOException;import org.apache.ibatis.session.SqlSession;import com.home.entity.User;public class TestApp {public static void main(String[] args) throws IOException {// 我將獲取session的代碼封裝成了一個(gè)工具類(lèi),直接用工具類(lèi)來(lái)獲取sessionSqlSession session = SessionUtils.getSession("mybatis.xml");String loadUser = "com.home.mapper.loadUser";// 看會(huì)不會(huì)動(dòng)態(tài)的去獲取,按理論應(yīng)該是執(zhí)行if標(biāo)簽的sql,用戶(hù)為id為4的User user = session.selectOne(loadUser, new User(4, null, null));System.out.println("看會(huì)不會(huì)動(dòng)態(tài)的去獲取,按理論應(yīng)該是執(zhí)行if標(biāo)簽的sql,用戶(hù)為id為4的");System.out.println(user);// 看會(huì)不會(huì)動(dòng)態(tài)的去獲取,按理論應(yīng)該是執(zhí)行otherwise標(biāo)簽的sql,用戶(hù)為hpc的user = session.selectOne(loadUser, new User(2, null, null));System.out.println("看會(huì)不會(huì)動(dòng)態(tài)的去獲取,按理論應(yīng)該是執(zhí)行otherwise標(biāo)簽的sql,用戶(hù)為hpc的");System.out.println(user);// 看會(huì)不會(huì)動(dòng)態(tài)的去獲取,按理論應(yīng)該是執(zhí)行when標(biāo)簽的sql,用戶(hù)為5的user = session.selectOne(loadUser, new User(5, null, null));System.out.println("看會(huì)不會(huì)動(dòng)態(tài)的去獲取,按理論應(yīng)該是執(zhí)行when標(biāo)簽的sql,用戶(hù)為5的");System.out.println(user);// 將數(shù)據(jù)屬性到數(shù)據(jù)中去 session.commit();// 關(guān)閉session session.close();} }5 .結(jié)果
看會(huì)不會(huì)動(dòng)態(tài)的去獲取,按理論應(yīng)該是執(zhí)行if標(biāo)簽的sql,用戶(hù)為id為4的 User [user_id=4, user_name=zll, user_pwd=123] 看會(huì)不會(huì)動(dòng)態(tài)的去獲取,按理論應(yīng)該是執(zhí)行otherwise標(biāo)簽的sql,用戶(hù)為hpc的 User [user_id=3, user_name=hpc, user_pwd=123] 看會(huì)不會(huì)動(dòng)態(tài)的去獲取,按理論應(yīng)該是執(zhí)行when標(biāo)簽的sql,用戶(hù)為5的 null?
轉(zhuǎn)載于:https://www.cnblogs.com/mohehpc/p/6287388.html
總結(jié)
以上是生活随笔為你收集整理的mybatis学习笔记四(动态sql)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: div背景透明内容不透明与0.5PX边框
- 下一篇: OpenSessionInViewFil