主类:
public class Test01_SelectAll {
public static void main(String[] args) throws IOException {
//1 加载配置文件
// 1.1 获得资源流
InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
// 1.2 获得工厂
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
//2 获得会话(连接)
SqlSession session = factory.openSession();
//3获得功能接口
UserMapper userMapper = session.getMapper(UserMapper.class);
//4 调用功能
List userList = userMapper.selectAll();
//5 打印查询结果
for (User user : userList) {
System.out.println(user);
}
//6 释放资源
session.close();
}
}
mapper类:
public interface UserMapper {
@Select("select * from user")
public List selectAll;
}
JavaBean类(生成get,set,tostring方法):
public class User {
private String uid;
private String username;
private String password;
private String name;
private String email;
private Date birthday;
private String sex;
private Integer state;
private String code;
}
1.1.2 条件查询Vo
JavaBean类(生成get,set,tostring方法):
public class UserVo {
private String beginTime; // 开始时间
private String endTime; // 结束时间
}
mapper类:
@Select("select * from user where birthday >= #{beginTime} and birthday
<= #{endTime}")
public List condition(UserVo userVo);
主类:
public class Test07_Condition {
public static void main(String[] args) {
UserMapper userMapper = MyBatisUtils.getMapper(UserMapper.class);
List list = userMapper.condition(new UserVo("2010-01-01",
"2021-01-01"));
// 打印
list.forEach(user -> {
System.out.println(user);
});
MyBatisUtils.commitAndclose();
}
}
1.1.3 输出:结果集映射Result
语法:
@Results(value = {
@Result(property = "属性名", column = "字段名", id = true),
@Result(property = "属性名2", column = "字段名2"),
@Result(property = "属性名3", column = "字段名3")
})
基本使用:
@Select("select * from user")
@Results({
@Result(property = "uid", column = "uid", id = true),
@Result(property = "username", column = "username"),
@Result(property = "password", column = "password")
})
public List selectAll();
重复使用(语法):
@Select(...)
@Results(id = "标识", value = {...})
public 返回值 方法名();
@Select(...)
@ResultMap("标识")
public 返回值 方法名2();
(使用)
@Select("select * from user")
@Results(id = "userResult", value = {
@Result(property = "uid", column = "uid", id = true),
@Result(property = "username", column = "username"),
@Result(property = "password", column = "password")
})
public List selectAll();
@Select("select * from user where uid = #{uid}")
@ResultMap("userResult")
public User selectById(@Param("uid") String uid);
1.1.4 已有注解总结
注解名称 描述
@Insert 添加sql
@Update 更新sql
@Delete 删除sql
@Select 查询sql
@Param 形参命名
@Results 对象和表的映射关系。
@Result 一个对象属性和一个表的字段的映射关系。



