Mybatis 框架 5
来源:互联网 发布:农村精神病 知乎 编辑:程序博客网 时间:2024/05/22 00:34
1.动态sql
——Mybatis框架可以对sql语句进行灵活操作,通过表达式进行判断,
对sql进行灵活拼接、组装。
实现动态的主要元素
MyBatis中用于实现动态SQL的元素主要有:
if
choose(when,otherwise)
trim
where
set
foreach
2.一个动态查询语句
UserDao.xml
<?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="myBatisTest.dao.UserDao"> <!--resultType可以为包加类的model对象 如果返回多条数据,他会返回一个list<UserInfo>的集合--> <!--可以使用java.util.Map 但不能直接指定为java.util.List 因为返回的是一个泛型集合list<UserInfo>--> <!--resultType的返回类型为POJO类型(list<UserInfo>类型)所以UserDao接口需要保持一致--> <select id="getUser" parameterType="UserInfo" resultType="UserInfo"> select * from userinfo <!--where 加入where语句 也可以在上面语句用 where 1=1之类的 --> <where> <!--为true则加入下面语句 test内的id是从对象UserInfo中获取的属性值--> <if test="id!=0"> <!--加入了where标签如果是第一个条件,组合语句会自动去掉and--> and id=#{id} </if> <!--语句可以用and(&&)或者or(||)连接--> <if test="userName!=null and userName!=''"> <!--在双引号内 需要把#改为$ ${userName}用于与%%拼接字符串 否则会出现%?%的占位符而出错--> and username like '%${userName}%' </if> </where> </select></mapper>
test.java
package myBatisTest.dao;import ....public class test { public static void main(String[] args) throws IOException, SQLException { // TODO Auto-generated method stub InputStream is = Resources.getResourceAsStream("myBatisTest/dao/SqlMapConfig.xml"); SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(is); SqlSession sqlSession = sf.openSession(); UserDao ud= sqlSession.getMapper(UserDao.class);//获取代理对象 List<UserInfo> ulist=ud.getUser(new UserInfo(0,"张","","","")); for (int i = 0; i < ulist.size(); i++) { System.out.println(ulist.get(i)); } }}
concole
UserInfo [id=51, userName=张九, password=123456, sex=男, email=23123@qq.com]
UserInfo [id=52, userName=张九, password=123456, sex=男, email=null]
UserInfo [id=53, userName=张九, password=123456, sex=男, email=null]
UserInfo [id=59, userName=张九, password=123456, sex=男, email=null]
如果设定resultType=”java.util.Map”
在接口该方法需要设定返回值为list
List<Map<String,Object>> getUserMapList(UserInfo user) throws SQLException;
输出语句
List<Map<String,Object>> ulist=ud.getUserMapList(new UserInfo(0,"张","","",""));for(Map<String,Object> user : ulist){ System.out.println(user);}
取出的都是键值对 而且键是从数据库取的
concole
{ID=51, USERNAME=张九, PASSWORD=123456, SEX=男, EMAIL=23123@qq.com}
{ID=52, USERNAME=张九, PASSWORD=123456, SEX=男, EMAIL=null}
{ID=53, USERNAME=张九, PASSWORD=123456, SEX=男, EMAIL=null}
{ID=59, USERNAME=张九, PASSWORD=123456, SEX=男, EMAIL=null}
- Mybatis 框架 5
- mybatis框架
- MyBatis框架
- Mybatis框架
- Mybatis框架
- Mybatis框架
- MyBatis框架
- MyBatis框架
- Mybatis框架
- MyBatis框架
- Mybatis框架
- myBatis框架
- mybatis框架
- myBatis框架
- MyBatis框架
- MyBatis框架
- Mybatis框架
- 框架:Mybatis
- 顺应潮流,劳斯莱斯也推出的一款无人驾驶概念车|智驾周刊
- 历史告诉我们,在前两次VR元年想趁着VR热捞一把的,他们都挂了
- 基本光照模型实现-漫反射
- ExtJs基本控件之表格
- slf4j 和 log4j配合使用
- Mybatis 框架 5
- java String源码分析
- 华大基因估值过高让数十家机构浮亏是谁之过?
- MIUI老大首回应广告风波:将整治所有“小广告”
- 成为酷派最大单一股东,乐视手机有了更多故事
- HTML列表
- Linux常用命令之cat tree history
- Cloud Native-产品级敏捷 2.0: 打造服务化的架构, 使得产品能随著时间、版本的演进, 而能不断的提升其价值与对用户正面的影响力
- Understanding the JVM(五)内存参数调优