zoukankan      html  css  js  c++  java
  • 关于mybatis的参数2个使用经验(类似于struts2的通配所有页面的action配置,xmlsq语句参数类型为基本类型时的快捷指定办法)

    1.我们都知道在struts2中为防止浏览器绕过struts过滤器直接请求页面,所以我们都会配置一个拦截所有页面的action,如下:

        <action name="*">
                    <result>/{1}.jsp</result>
        </action>

    springmvc中同样可以有这种类似配置如下:

    package com.mi.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    public class TestController {
    
        @RequestMapping("/{init}")
        public String go(@PathVariable String init){
            System.out.println(init);
            return init;
        }
    }

    我的请求路径可以是如下类型,http://localhost:8080/ssm(项目名)/xxx.do   这样会请求到名字为xxx页面的jsp上去,很好用,利用@PathVariable注解,在此记录下

    2.关于mybatis中xml文件的sql语句的参数类型处置,当sql参数类型为多种不同的基本类型时,比如 id,name,age,这时参数类型应该是parameterType="int,string,int"实际会报错,这里按照此种写法应该写成

    parameterType="java...."全类型写法,但是在此可以不用这么麻烦,代码如下

    在dao的接口中定义的sql的方法时:

    package com.mi.dao;
    
    import java.util.List;
    
    import org.apache.ibatis.annotations.Param;
    import org.springframework.stereotype.Repository;
    
    import com.mi.entity.User;
    
    @Repository
    public interface UserInfoMapper {
        public List<User> queryUserInfo(@Param("beginIndex") int beginIndex,@Param("pageSize") int pageSize);
    }

    使用@Param参数注解提供声明参数的功能,同时给出参数类型及参数名,即可解决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="com.mi.dao.UserInfoMapper">
        
        
        <select id="queryUserInfo" resultType="com.mi.entity.User">
            SELECT id,user_name userName,age FROM user_t where 1=1 limit #{beginIndex},#{pageSize}
        </select>
        
        <!-- <insert id="addUser" parameterType="com.mi.entity.User"
            flushCache="true">
            INSERT INTO user_t (id,user_name,password,age) VALUES
            (#{id},#{userName},#{password},#{age})
        </insert>
        
        <delete id="deleteUser" parameterType="com.mi.entity.User" flushCache="true">
            DELETE FROM user_t where id=#{id}
        </delete>
        
        <update id="updateUser" parameterType="com.mi.entity.User" flushCache="true">
            UPDATE user_t SET user_name = 'zzxy' WHERE id=#{id}
        </update> -->
        
    </mapper>
  • 相关阅读:
    剑指offer之 二维数组的查找
    常用的基础算法总结之 希尔排序
    让shell脚本中的echo输出带颜色
    nginx利用lua实现nginx反向代理proxy_store缓存文件自删除
    LNMP平滑升级nginx并安装ngx_lua模块教程
    nginx的luajit安装luarocks并安装luafilesystem
    PHP图片识别成文字
    使用tesseract-ocr破解网站验证码
    利用开源程序(ImageMagick+tesseract-ocr)实现图像验证码识别
    http://ocr.wdku.net/
  • 原文地址:https://www.cnblogs.com/tingbogiu/p/5856038.html
Copyright © 2011-2022 走看看