一个小技巧:如果在写代码时发现,Maven下的如:clear和plugins爆红可以去它后边的路径去Maven仓库找到删除掉已下载的重新下载,因为可能由于网络原因没下全。
主配置文件(mybatis -config.xml)
/*
登录对应的dao层的方法
需要两个参数:username,password
两种策略:
1、传入User对象,传入一个参数。
场景:User类中的属性非常多,id,username,password,realname,profile,gender.....
User user = new User(null,"admin","123456",null,null,null,null)
2、传入username,password两个参数,规范要求,如果需要传入多个参数,参数个数不要超过3个
*
*
当我们的mapper接口传入多个参数的时候,尽量保证类型的统一。
参数的类型要么是java内置的数据类型,包装器类型或者是String,要么是集合
*
正例:
Integer ,String
String String
String List
*
反例:
User Student
User List
Integer Student
*
1、如果传入的是User对象,在mapper.xml映射文件中,就必须和对象的属性名匹配
2、如果传入的是java内置的数据类型的参数,String,Integer..,如果只传一个参数,直接使用#{参数名},#{param1},#{xxx}
3、如果传入的是java内置的数据类型的参数,String,Integer..,如果传入多个参数,必须使用#{paramN}.#{arg0},不能用#{参数名}
*
原理:
Mybatis在封装参数的时候,封装成了一个Map集合,
如果传入的是User对象,value:{“username”:"admin","password":"123456","id":"1"}
【"username":"admin"】,【"password":"123456"】
如果传入的是一个内置类型的参数,字面量 【"xxxx":"admin"】
如果从传入的是多个参数,【"param1":"admin"】,【"param2":"123456"】
底层封装的map集合,arg0和arg1。起了个默认的别名叫param1,param2
如果传入的是集合,【"param1":"{1,2,3,4,5}"】
需要掌握:mybatis传入参数的策略,封装成了一个map集合
*
使用注解来给参数命名@Param("命名")
*
结论:如果需要传入多个参数,我们希望在mapper.xml中和传入对象一样使用参数的名直接赋值,#{username},使用@Param注解起名
我们还是希望通过传入对象来解决问题!!!!
*
*/
package com.jsoft.dao;
import com.jsoft.entity.User;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface UserMapper {
User selectUserByUsernameAndPassword(@Param("username") String username,@Param("password") String password);
List<User> selectUserByIds(@Param("ids") List<Integer> ids);
int updateUserSet(User user);
List<User> selectUsersTrim(User user);
List<User> selectUsersChoose(User user);
List<User> selectUsersIF(User user);
List<User> findAllUsersByUsername(String username);
List<User> findAllUsersByPage(Integer pageNum);
List<User> findAllUsers();
User selectUserById(Integer id);
int deleteUserById(Integer id);
int updateUser(User user);
int saveUser(User user);
}
<select id="selectUserById" resultType="com.jsoft.entity.User">
select id,username,password from user where id = #{id}
</select>
<select id="findAllUsers" resultType="com.jsoft.entity.User">
select id,username,password from user
</select>
<select id="findAllUsersByPage" resultType="com.jsoft.entity.User">
select id,username,password from user limit #{pageNum},8
</select>
<select id="findAllUsersByUsername" resultType="com.jsoft.entity.User">
select id,username,password from user where username like #{asdasdasd}
</select>
resultType:结果集的自动映射,必须写,对象属性名和查询结果的列名必须对应上
parameterType:参数类型,可以自动解析,可以写不写,如果是我们自定义的引用数据类型,建议写上全类名
标签:username,List,细节,参数,User,Mybatis,一些,password,user
From: https://www.cnblogs.com/369-1/p/16754286.html