美文网首页
Mybatis传参

Mybatis传参

作者: 尼尔君 | 来源:发表于2018-08-31 09:59 被阅读0次

    @Param()

    public interface UserMapper {
        
    
    
            
            public int  insertUser(User user);
            
            public int updateUser(User user);
            
            public int deleteUser(Integer id);
            
            public User selectUserById(Integer id);
            
            
            public List<User> selectAllUser();
            
            
           // public List<User> selectUserByUserNameAndPassword(User user);
    
            public User selectUserByUserNameAndPassword( String username ,String password);
    
    
    }
    
    
    
    
    <!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    
    <mapper namespace="com.mapper.UserMapper">
    
        <resultMap type="User" id="userMap">
            <id property="Id" column="Id" javaType="int" />
            <result property="username" column="username" javaType="String"/>
            <result property="password" column="password" javaType="String"/>
        </resultMap>
    
      <insert id="insertUser" useGeneratedKeys="true" keyProperty="Id">
            insert into user(username,password) values (#{username},#{password})
       </insert>
    
    
        <select id="selectAllUser" resultMap="userMap">
            select * from user 
        </select>
    
    
        <select id="selectUserByUserNameAndPassword" resultMap="userMap">
        
            select * from user where username = #{0} and password = #{1}
        
        </select>
    
    
    </mapper>
    
    
    
    SqlSession sqlsession = null;
            try {
            SqlSessionFactory sqlSessionFactory =   new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatiscConfig.xml"));
    
            
            
             sqlsession= sqlSessionFactory.openSession();
            
             
             User user  = new User();
             
             
             user.setUsername("admin");
             
            
             user.setPassword("8954036aa");
            
            
            
             Map<String, String> map = new HashMap<>();
             
             map.put("username", "admin");
             
             map.put("password","8954036aa");
             
             
             map.put("0", "admin");
             
             map.put("1", "8954036aa");
    
            // sqlsession.insert("com.mapper.UserMapper.insertUser", user);
            
    //       List<User> list =           sqlsession.selectList("com.mapper.UserMapper.selectUserByUserNameAndPassword", map);
    //  
    //       
    //       
    //          for (User user2 : list) {
    //              
    //              System.out.println(user2);
    //          }
        
    
                 User user1 =   sqlsession.selectOne("com.mapper.UserMapper.selectUserByUserNameAndPassword", map);
                 System.out.println(user1);
             
        
            
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
    
    

    @param 作用

    例子:

    public User selectUserByUserNameAndPassword(@Param("username") String username ,@Param("p") String password);
    
    
    #Mapper.xml
    
    <select id="selectUserByUserNameAndPassword" resultMap="userMap">
        
            select * from user where username = #{username} and password = #{p}
        
        </select>
    
    
         Map<String, String> map = new HashMap<>();
             
             map.put("username", "admin");
             
             map.put("password","8954036aa");
             
             
            
        
    
                 User user1 =   sqlsession.selectOne("com.mapper.UserMapper.selectUserByUserNameAndPassword", map);
                 System.out.println(user1);
             
    
    

    结果查询为null。

    
    <select id="selectUserByUserNameAndPassword" resultMap="userMap">
        
            select * from user where username = #{0} and password = #{1}
        
        </select>
    

    结果查询为null。

    
         Map<String, String> map = new HashMap<>();
             
             map.put("username", "admin");
             
             map.put("password","8954036aa");
             
             map.put("0", "admin");
             
             map.put("1", "8954036aa");
    
             User user1 =   sqlsession.selectOne("com.mapper.UserMapper.selectUserByUserNameAndPassword", map);
                 System.out.println(user1);
             
    
    
    
    
    <select id="selectUserByUserNameAndPassword" resultMap="userMap">
        
            select * from user where username = #{username} and password = #{password}
        
        </select>
    
    
    <select id="selectUserByUserNameAndPassword" resultMap="userMap">
        
            select * from user where username = #{0} and password = #{1}
        
        </select>
    
    

    查询结果均有值

    猜测@Param的作用是向Map中添加key ,然后传参的时候传递map

    还没有看源码。

    相关文章

      网友评论

          本文标题:Mybatis传参

          本文链接:https://www.haomeiwen.com/subject/oywdwftx.html