美文网首页
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