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>
  • 相关阅读:
    matlab矩阵中如何去掉重复的行;如何找到相同的行,并找到其位置
    Coursera 机器学习 第9章(下) Recommender Systems 学习笔记
    机器学习基石笔记1——在何时可以使用机器学习(1)
    Coursera 机器学习 第9章(上) Anomaly Detection 学习笔记
    matlab安装过程的被要求的配置程序
    jdk环境变量配置
    Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记
    Coursera 机器学习 第8章(上) Unsupervised Learning 学习笔记
    Coursera 机器学习 第7章 Support Vector Machines 学习笔记
    linux服务器---squid限制
  • 原文地址:https://www.cnblogs.com/tingbogiu/p/5856038.html
Copyright © 2011-2022 走看看