精华内容
下载资源
问答
  • 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=...
  • select标签里不能有注解,整了一下午,各种报错,把这里面的注解删了好了

    select标签里不能有注解,整了一下午,各种报错,把这里面的注解删了好了

    展开全文
  • 实现自定义select标签

    千次阅读 2016-12-29 17:27:23
    jsp自定义select标签,一次定义,多处引用

      我们经常会遇到这种场景:

        假设项目中有一个分类对象,类似数据字典,一个code对应一个name。这个在页面作为一个过滤条件:选择分类。一般做法是在jsp页面直接写select标签,用option在页面

    做判断。比如:

    <label>选择分类:
                        <select id="levelClassSelect" name="classCode"
                                class="form-control  input-small  input-sm input-inline"
                                >
                            <option value="-1" <c:if test="${searchParam.classCode==-1}"> selected="selected" </c:if>>全部
                            </option>
                            <c:forEach items="${levelClassDtoList}" var="v_levelClass">
                                <option value="${v_levelClass.code}"
                                        <c:if test="${v_levelClass.id==searchParam.classCode}">selected="selected" </c:if>>${v_levelClass.name}</option>
                            </c:forEach>
                        </select>
                    </label>
    这样操作我们需要在后台Controller中查询放置levelClassDtoList对象,页面写这样一个select标签。如果这个标签是在多个页面使用,那么我们每个页面都需要复制一份,每个页面对应的后台Controller中也要查询放置一份levelClassDtoList对象。这样就重复做事情,而且一旦有变动,需要改很多地方,费时,还容易出错。所有我们就想到可不可把这个自定义成一个标签,多处使用?方便我们使用和后期维护。可以的。结合自己的项目,需要以下4个步骤:

    1. 定义java的tag类:LevelCodeTag

      采用继承org.springframework.web.servlet.tags.RequestContextAwareTag

      RequestContextAwareTag类是一个abstract修饰的抽象类,有一个protected级别的抽象方法,子类需要实现这个方法,将自己需要的数据放入pageContext对象中即可。
      public abstract class RequestContextAwareTag extends TagSupport implements TryCatchFinally {
      ...//省略部分代码
      	/**
      	 * Called by doStartTag to perform the actual work.
      	 * @return same as TagSupport.doStartTag
      	 * @throws Exception any exception, any checked one other than
      	 * a JspException gets wrapped in a JspException by doStartTag
      	 * @see javax.servlet.jsp.tagext.TagSupport#doStartTag
      	 */
      	protected abstract int doStartTagInternal() throws Exception;
      ...//省略部分代码
      }
      
      
      
      LevelCodeTag:
      public class LevelCodeTag extends RequestContextAwareTag {
          @Override
          protected int doStartTagInternal() throws Exception {
             //通过注入spring的levelClassService.findAll()方法得到数据库的所有levelCode对象,并放置在pageContext对象中。
              ILevelClassService levelClassService=getBean("levelClassService");
              pageContext.setAttribute("levelCodeList", levelClassService.findAll());
              return 0;
          }
      private WebApplicationContext wac;
      
          /**
           * 从web应用上下文中,根据注册的beanName获取对象
           * @param beanName spring 管理的beanName
           * @param <T>
           * @return
           */
          @SuppressWarnings("unchecked")
          protected <T> T getBean(String beanName) {
              if (wac == null) {
                  wac = getRequestContext().getWebApplicationContext();
              }
              return (T) wac.getBean(beanName);
          }
      }


    2. 定义tld文件
      这个文件是放置在WEB-INF目录下yq_fn.tld,最简配置如下:
      <?xml version="1.0" encoding="UTF-8" ?>
      
      <taglib xmlns="http://java.sun.com/xml/ns/j2ee"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
              version="2.0">
      
      
          <tlib-version>1.1</tlib-version><!--版本号-->
          <short-name>yq_fn</short-name><!--后面引用的短名称-->
          <uri>http://www.wangan.com/media/tag</uri><!--定义uri,便于后面引用定位-->
          <tag>
              <name>listLevelCode</name><!--名字-->
              <tag-class>com.wangan.media.tag.LevelCodeTag</tag-class><!--指向步骤1中定义的java的tag类-->
              <body-content>empty</body-content><!--使用empty即可-->
          </tag>
          
      </taglib>
    3. 定义tag标签文件
      定义了tld文件,我们就可以通过tld文件得到javatag中的levelCodeList对象,定义levelCode.tag文件,这个文件和步骤2中的yq_fn.tld文件在同一目录下。
      <%@tag pageEncoding="utf-8" %><!--定义编码,防止乱码 -->
      <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!--引入c标签-->
      <%@taglib prefix="yq" uri="http://www.wangan.com/media/tag" %><!--  引入步骤2中我们自定义的tld文件,定义前缀为yq(这个可以根据自己项目任意定义),uri值是tld文件中的uri值-->
      <!-- 下面定义这个select标签需要的属性字段-->
      <%@attribute name="levelName" required="true" type="java.lang.String"  rtexprvalue="true"%><!--name:属性的名字,required:使用这个标签时候,本属性是否必须的;type:这个属性值的类型;rtexprvalue:这个标签是否支持el表达式,我们设置为true,支持表达式,这样就可以在引用时候动态设置值-->
      <%@attribute name="levelCode" required="true"   rtexprvalue="true"%>
      <%@attribute name="selectId" required="true" rtexprvalue="true" %>
      <yq:listLevelCode/><!--引入文件2中订阅的listLevelCode,就相当于引入了步骤一中的java代码,这样我们就能访问步骤一中定义的levelCodeList对象。yq就是第三行定义的前缀,liestLevelCode就是步骤2中定义的name值-->
      
      <!--下面就是动态定义我们的select标签了,class值是我项目中使用到的,请忽略-->
      <select class="form-control input-small input-sm input-inline"  id="${selectId}" name="${levelName}">
          <option value="0" <c:if test="${levelCode ==0}"> selected="selected" </c:if>>全部</option>
          <c:forEach items="${levelCodeList}" var="v_level" >
              <option value="${v_level.code}"
                      <c:if test="${v_level.code== levelCode}"> selected="selected" </c:if>>${v_level.name}</option>
          </c:forEach>
      </select>


    4. web.xml中配置tld文件
      将步骤2中定义的tld文件交给项目管理
       <jsp-config>
              <taglib>
                  <taglib-uri>http://www.wangan.com/media/tag</taglib-uri><!--这个地址就是步骤2中的uri值-->
                  <taglib-location>/WEB-INF/tags/yq_fn.tld</taglib-location><!--这个值就是步骤2中定义的tld文件的路径-->
              </taglib>
          </jsp-config>

    5. jsp使用自定义标签
      <%@ taglib prefix="yq" tagdir="/WEB-INF/tags" %><!--引入步骤3中自定义的标签-->
      <label>选择分类:
                  <yq:levelCode selectId="levelClassCode" levelName="levelClassCode" levelCode="${levelClassCode}"/>
      <!--yq就是引入的时定义的前缀,levelCode就是引入是tagdir目录下的*.tag文件的名字。我们要引入步骤3中定义的levelCode.tag标签。levelCode属性是页面用el表达式动态获取-->
      </label>

    6. 页面效果

      总结:几个简单步骤后,我们就实现了一次定义,随意使用的效果。以后每次使用就按照步骤5引用就可以了。这样我们关于levelCode对象的值都没有在页面写死,以后需要修改这个对象数据,我们直接修改库的字典就可。最开始,由于项目时间要求,本人是直接在页面对select标签写死value和name的,后面项目需要扩展,增加分类,此时就需要修改多出页面和数据库,由于后面也有多余的时间,则抽取出来成标签,以后再需要修改,就直接修改数据库字典即可。


    展开全文
  • 和 用来封装SQL语句, 来调用 代码片段: SELECT * FROM `body_index`     xml里面的表现:

    <sql> 和 <include>


    <sql>用来封装SQL语句, <include>来调用


    代码片段:<sql id="select">
    SELECT * FROM `body_index`
    </sql>

    <select id="find" resultType="*" resultMap="*">
            <include refid="select"/>
        </select>

    xml里面的表现:

    展开全文
  • MyBatis select标签

    万次阅读 2017-09-29 15:43:00
    select id= "queryUserByMap" parameterType= "map" resultType= "com.bob.analyst.model.User" > select "Base_Column_List" /> from tbl_user where user_name like concat( '%',#{userName},'...

    常用元素有:id、parameterType、resultType、resultMap,设置缓存用到flushCache、useCache

    1. id:配合Mapper的全限定名,联合成为一个唯一的标识,用户标识这条SQL。 parameterType:表示这条SQL接受的参数类型,可以是MyBatis系统定义或者自定义的别名,比如int、string、float等,也可以是全限定名,比如com.xx.xx.xx.pojo.User。
    2. resultType:表示这条SQL返回的结果类型,与parameterType一样,可以是系统定义的别名,也可以是类的全限定名。
    3. resultMap:它是映射器的引用,将执行强大的映射功能。我们可以使用resultType和resultMap中的一个,resultMap能提供自定义映射的机会
    4. flushCache:它的作用是在调用SQL后,是否要求MyBatis清空之前的查询本地缓存和二级缓存,默认 false。
    5. useCache:启动二级缓存的开关,是否要求MyBatis将此结果缓存 默认true。
    6. 传递多个参数
      (1) 使用map接口传递参数–不推荐

      接口:

    List<User> queryUserByMap(Map<String,Object> paramentMap);

    service:

       Map<String,Object> map=new HashMap<String,Object>();
       map.put("userName", "张三"); 
       map.put("mobile", "13800000000");

    XML:

    <select id="queryUserByMap" parameterType="map" resultType="com.bob.analyst.model.User" >
         select 
        <include refid="Base_Column_List" />
        from tbl_user
        where user_name like concat('%',#{userName},'%')
        and   mobile like concat('%',#{mobile},'%')
      </select>

    (2) 使用注解传递多个参数 —推荐
    使用@Param(org.apache.ibatis.annotations.Param)

    接口:
    
       List<User> queryUserByAnnotation(@Param("userName") String username,@Param("mobile") String mobile); 
     XML:
    
        <select id="queryUserByAnnotation"resultType="com.bob.analyst.model.User" >
         select 
        <include refid="Base_Column_List" />
        from tbl_user
        where user_name like concat('%',#{userName},'%')
        and   mobile like concat('%',#{mobile},'%')
      </select>

    备注:这里不需要使用parameterType来表明参数类型,让MyBatis自动检索。

    (3) 通过Java Bean传递多个参数

      接口:
    
        List<User> queryUserByBean(User user);
      XML:
    
        <select id="queryUserByBean" parameterType="com.bob.analyst.model.User" resultType="com.bob.analyst.model.User" >
         select 
        <include refid="Base_Column_List" />
        from tbl_user
        where user_name like concat('%',#{userName},'%')
        and   mobile like concat('%',#{mobile},'%')
      </select>

    (4) 混合使用
    接口:

       List<User> queryUserByPage(@Param("user") User user,@Param("page") PageParam pageParam); 

    XML:

        <select id="queryUserByPage" resultType="com.bob.analyst.model.User" >
         select 
        <include refid="Base_Column_List" />
        from tbl_user
        where user_name like concat('%',#{user.userName},'%')
        and   mobile like concat('%',#{user.mobile},'%')
        limit #{page.start}, #{page.limit}
      </select>

    (5) 使用resultMap作为映射结果集

    <resultMap id="BaseResultMap" type="com.bob.analyst.model.User">
        <id column="id" property="id" />
        <result column="user_name" property="userName" />
        <result column="mobile" property="mobile" />
        <result column="password" property="password" />
    </resultMap>

    resultMap 的 id 代表它的标识,type代表使用哪个类作为其映射类,可以使用别名或者全限定名.

    id:代表resultMap的主键,而result代表其属性
    property:代表POJO的属性名称,而column代表SQL的列名。

    <resultMap id="BaseResultMap" type="com.bob.analyst.model.User">
        <constructor><!-- 构造方法 -->
          <idArg/>
          <arg/>
        </constructor>
        <id/><!-- 主键 -->
        <result/><!-- 配置POJO到SQL列名的映射关系 -->
        <association property=""></association><!-- 一对一级联 -->
        <collection property=""></collection><!-- 一对多级联 -->
        <discriminator javaType=""><!-- 鉴别器 -->
          <case value=""></case><!-- 用于区分 -->
        </discriminator>
      </resultMap>

    (6) 分页参数 RowBounds
    接口:

      List<User> queryUserByRowBounds(@Param("userName") String username,@Param("mobile") String mobile,RowBounds rowBounds);  

    service:

     RowBounds rowBounds=new RowBounds(0,20);

    XML:

    <select id="queryUserByRowBounds" resultType="com.bob.analyst.model.User" >
         select 
        <include refid="Base_Column_List" />
        from tbl_user
        where user_name like concat('%',#{user.userName},'%')
        and   mobile like concat('%',#{user.mobile},'%')
      </select>

    备注:它是MyBatis的一个附加参数,MyBatis会自动识别它。

    展开全文
  • MyBatis XML 标签类型说明

    千次阅读 2017-07-28 10:36:33
    MyBatis XML 标签类型说明 resultMap 标签的类型属性为 type(必填)。 id, result 标签的类型属性为javaType(可选)。 idArg, arg 标签和上面两个类似,也都是 javaType(可选)。 association 标签的类型属性为 ...
  • JSTL标签库———XML标签

    千次阅读 2014-01-23 14:15:52
    JSTL提供了操作xml文件的标签库,使用xml标签库可以省去使用Dom和SAX标签库的繁琐,能轻松的读取xml文件的内容。 1 XML核心标签库 1.标签 标签用来解析指定的xml文件。 【语法1】: ”xmlDocument” {var=”name”...
  • mapper.xml常用标签

    千次阅读 2018-07-02 09:03:06
    接上篇,对Mybatis的特点和映射管理介绍,本篇将详解介绍mapper.xml中的常用标签和它们各自的功能及使用方式 一、SQL语句标签: [html] view plain copy print?&lt;!–查询语句–&gt;&nbsp;&nbsp;...
  • 关于radio标签和select标签如何向action传值得问题以下问题都是在ssh框架下写的 radio传值得问题功能需求就是想要做一个图片轮播的新闻,所以在数据库中有一个字段isPictureArticle,类型是long,应为不能弄成...
  • select id="" onchange="window.location=this.value"> <option >请选择</option> <option value="https://www.baidu.com">百度</option> <option value=...
  • select name="suppUserId" id="suppUserId" style="width: 150px;height: 22px" onchange="selectSupp()"> </select> </td> </tr> <tr> <td><font color="red" style=...
  • 项目中多次使用到了部门选择下拉框,于是决定把此下拉框提取成一个自定义标签。自定义标签可以方便统一管理和一处修改的好处 步骤一:定义java的tag类,这个类继承了spring的org.springframework.web.servlet.tags....
  • 打开web.xml,开始插入第一对servlet标签,却在<servlet>标签上出现一个红叉。在视图中打开Markers,发现: Markers报错: Project configuration is not up-to-date with pom.xml. Select: Maven->Update ...
  • 本文转载出处:... 第一步,在接口中添加方法: public interface UserMapper { SysUser selectById(Long id); } 第二步,完成映射文件: ...xml version="1.0" encoding="UTF-8" ?> ...
  • 标签是该组标签库的核心,它是作为解析XML文件而存在的。 标签属性和说明 属性 描述 doc 源XML的内容,该属性的内容应该为String类型或者java.io.Reader的实例,可以用xml属性来替代,但是不被推荐 var 将...
  • Mybatis - xml文件标签中写注释

    千次阅读 2020-08-24 16:56:34
    Mybatis - xml文件标签中写注释 1.错误场景. ( /* */ 注释 ) 在IDEA中的直接使用快捷键注释 Ctrl + Shift + / 注释. SELECT t.name, t.age, t.sex FROM student t WHERE t.name = #{name,jdbcType=VARCHAR} /* ...
  • JSTL XML 标签

    千次阅读 2016-12-29 11:12:18
    1、XML 标签库使用条件: 1)jar包,如下: 2)每个jsp页面都需要: 2、标签库内容: x:parse 解析xml; x:out 输出xml 文件的内容; x:set 把xml 读取的内容保存到指定的属性范围;
  • sql xml 标签

    千次阅读 2012-04-16 10:42:52
    select textdata from performance.dbo.db_PSLMS_deadlock for xml auto (FOR XML AUTO 需要有主键才能为 'BinaryData' 创建引用。或者在不存在主键的情况下,使用 BINARY BASE64 获取编码形式的二进制数据。) --...
  • ibatis SqlMap下的select标签

    千次阅读 2013-12-01 06:45:04
    2 - ibatis SqlMap下的select标签 (2011-10-31 11:23:07) 转载▼     7 SqlMap下的select标签: 所有属性: parameterClass:输入类型; resultClass:输出类型; parameterMap:输入的内容为多的...
  • MyBatis的映射文件mapper的select标签

    千次阅读 2017-08-07 15:51:52
    这里主要是针对MyBatis的接口映射文件中的select标签的所有属性进行简单描述。 1. id 在命名空间中唯一的标识符,可以被用来引用这条语句。 2. parameterType 将会传入这条语句的参数类的完全限定名或别名。...
  • mybatis中配置文件xml常用标签详解

    千次阅读 2020-02-08 14:01:57
    主配置文件 要使用的properties文件 ...jdbc.url=jdbc:mysql://localhost:3306/mydb ...一个主配置xml实例(不可直接粘贴,这里为了总结配合注释讲解每个标签含义,读懂意思可以根据情况粘贴部分) <?xml...
  • spring整合mybatis的配置文件applicatonContext.xml:https://blog.csdn.net/IT_CREATE/article/details/85329007 mybtis中的级联关系(关联关系、集合关系)association、collection(一对一关系、一对多关系、多...
  • select id="1" onchange="getValue();"> <option id="12" value="122">1222</option><!-- value="122" text="1222" --> <option id="13" value="133">1333</option><!-- ...
  • js获取select标签选中的值

    万次阅读 2016-10-16 22:06:05
    菜鸟教程 jsp教程 ... js获取select标签选中的值 var obj = document.getElementByIdx_x(”testSelect”); //定位id var index = obj.selectedIndex; // 选中索引 va
  • 1:parameterType、resultType无非就是对象,map,其他类型<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" > select id, supplier_id, member_id, province_code, ...
  • my-select btn-name='search' v-bind:list='data1' style='float: left;margin-right: 2rem;'></my-select> <my-select btn-name='搜索' v-bind:list='data2' style='float: left;'></my-select&...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 114,366
精华内容 45,746
关键字:

xmlselect标签