ssm框架学习---mybatis中动态sql中的sql片段
来源:互联网 发布:mac os x摄像头软件 编辑:程序博客网 时间:2024/05/16 06:53
上面一篇文章中,比如if判断的语句,可以抽取出来组成一个sql片段,方便程序员程序的开发,于是上述的if片段可以定义为如下的sql片段:
<!--sql片段 id:sql片段的唯一标识 经验:一般基于单表地定义sql片段,这样可重用性比较高,sql片段中不要包含 where 第一步:定义sql片段 第二步:引用sql片段 --> <sql id="select_student"> <if test="student!=null"> <if test="student.sname!=null and student.sname!=''"> and s.sname=#{student.sname} </if> <if test="student.ssex!=null and student.ssex!=''"> and s.ssex=#{student.ssex} </if> </if> </sql>然后引用sql片段如下:
<!--使用if判断条件是否为空,进行查询sql语句的拼接--> <select id="selectStudentMul" parameterType="com.ajin.mybatis.model.StudentVo" resultType="com.ajin.mybatis.model.Student"> <!-- select * from student where sname=#{student.sname} and ssex =#{student.ssex} 一定要注意上面这句话是否时真的注释成功了,就是满足xml文件注释的格式,否则不小心会发现虽然注释了,但是最终运行会报错,并没有被注释掉 --> select * from student s <!-- 使用where标签可以自动去掉第一个and 很方便--> <where> <!-- <if test="student!=null"> <if test="student.sname!=null and student.sname!=''"> and s.sname=#{student.sname} </if> <if test="student.ssex!=null and student.ssex!=''"> and s.ssex=#{student.ssex} </if> </if> --> <!-- 引用sql片段的id,引用其它文件中的需要加上namespace--> <include refid="select_student"></include> <!-- 在这里还要引用其它的sql片段--> </where> </select>原来的if片段可以看到被注释掉了,换为下面include sql片段的方式:
上面演示了sql片段的一种方式,对于查询出来的列名称,我们也可以使用sql片段的方式如下:
<sql id="Base_Column_List" > id, name, password </sql>然后在查询中引用这三列:
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" > select <include refid="Base_Column_List" /> from userinfo where id = #{id,jdbcType=INTEGER} </select>
0 0
- ssm框架学习---mybatis中动态sql中的sql片段
- ssm框架学习---mybatis中动态sql中的if片段
- ssm框架学习---mybatis中动态sql中的foreach片段
- 【Mybatis学习】Mybatis框架中的动态sql
- SSM框架之Mybatis动态sql配置
- ssm框架mybatis打印sql
- MyBatis中的Sql片段使用
- [mybatis]动态SQL与SQL片段
- Mybatis动态sql和sql片段
- 【MyBatis学习09】SQL片段
- Mybatis学习(十二)mybatis理解动态sql及sql片段
- mybatis框架中动态sql的应用
- mybatis中的动态sql
- MyBatis中的动态SQL
- mybatis中的动态SQL
- MyBatis中的动态SQL
- Mybatis中的动态Sql
- MyBatis中的动态SQL
- 批量打开异磁盘下异后缀的文件
- Eclipse CDT 标准库头文件设置
- @JsonIgnore 注解
- 在阿里云的ECS上部署Laravel项目
- RF Analyzer for Android 安卓平台连接HackRF的App
- ssm框架学习---mybatis中动态sql中的sql片段
- VS2015编译Qt5.7.0生成支持XP的静态库
- cocos2dx shader分析之CCGLProgram
- 2015 上海(题解)
- ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
- java常量池
- RecyclerView 局部刷新(视觉)延迟问题
- 只是测试一下挂件
- dos删除系统服务