Mybatis传参

@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

还没有看源码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nier6088

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值