ORM
对象关系映射;以面向对象的方法与数据交互。
实体对象与表一 一映射 ,对象属性与表的字段一 一映射;
一行数据代表一个实体对象,即表是实体对象的集合,
@TableName("数据库中的表名")
public class 类名{
@TaleId(type = Idtype.AUTO)
//主键注解,主键自增
@TableFiled("字段名")
//字段注解
实体类的属性与数据库中的字段一致,可以省略
}
/@Mapper//管理接口对象,为接口对象创建反射机制一个对象
//代理对象
//BaseMapper<T>T表示MP要操作的表 泛型
public interface UserMapper extends BaseMapper<User> {
List<User> findAll();//接口方法 ,
@Insert("insert into demo_user(id,name,age,sex) values(null,#{name},#{age},#{sex})")
void insertUser (User user);
@Update("update demo_user set name = #{newName} where name = #{oldName}")
void updateByName(String oldName, String newName);
@Delete("delete from demo_user where name = #{name}")
void deleteByName(String name);
}
MyBatis CRUD
@Test
public void insertUser(){
User user = new User();
user.setName("星期五").setAge(18).setSex("男");
userMapper.insertUser(user);
System.out.println("新增成功");
}
@Test
public void updateUser(){
String newName = "星期六";
String oldName = "星期五";
userMapper.updateByName(newName, oldName);
System.out.println("修改成功");
}
@Test
public void deleteUser(){
String name = "星期六";
userMapper.deleteByName(name);
System.out.println("删除成功");
}
@Test
public void testInserts(){
User user = new User();
user.setName("张三").setAge(21).setSex("男");
userMapper.insertUser(user);
System.out.println("成功");
}
@Test
public void insertEmp(){
Emp emp = new Emp();
empMapper.insertEmp(emp);
}
@Test
public void updateByName(){
String oldName = "李四";
String newName = "李伟";
empMapper.updateByName(oldName,newName);
}
@Test
public void deleteByName(){
String name = "李伟";
empMapper.deleteByName(name);
}
@Test
public void selectAll(){
List<Emp> emps = empMapper.selectAll();
List<Emp> emps1 = empMapper.selectList(null);
System.out.println(emps);
System.out.println(emps1);
}
MP中的转义字符
@Test
public void select03(){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.gt("age" , 18)
.or()//开启or
.eq("sex", "男");
User user = userMapper.selectById(queryWrapper);
System.out.println(user);
}
/**查询name中 包含精 按年龄降序*/
@Test
public void select04(){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
// queryWrapper.like("name", "精")
// .orderByDesc("age");
queryWrapper.likeRight("name", "精")
// 相当于精% likeLeft("name","精");==精%
.orderByDesc("age");
User user = userMapper.selectById(queryWrapper);
System.out.println(user);
}
// 查询id 为 1,3,6,7
@Test
public void select05(){
Integer[] ids = {1,3,6,7};
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.in("id",ids );
List<User> users = userMapper.selectList(queryWrapper);
System.out.println(users);
}
// 查询name为null的数据
@Test
public void select06(){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.isNull("name");
List<User> users = userMapper.selectList(queryWrapper);
System.out.println(users);
}
// condition boolean 类型 true 拼接,否则不拼接
@Test
public void select07(){
Integer age = 18;
String sex = null;
// boolean flag = sex != null && sex.length()>0;
boolean flag = StringUtils.hasLength(sex);
// 等价于上面的 spring框架的API StringUtils.hasLength(sex);
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.gt(age>0, "age", age).eq("sex", sex);
List<User> users = userMapper.selectList(queryWrapper);
System.out.println(users);
}
@Test
public void selectTest(){
Integer age = 18;
String sex = null;
// boolean flag = sex != null && sex.length()>0;
boolean flag = StringUtils.hasLength(sex);
// 等价于上面的 spring框架的API StringUtils.hasLength(sex);
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.gt(age>0, "age", age).eq("sex", sex);
List<User> users = userMapper.selectList(queryWrapper);
System.out.println(users);
}
// 只查询name,age字段信息
// select挑选需要查询的信息
// 此时会返回所有数据,没查询的为null
@Test
public void select08(){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.select("name","age");
List<User> users = userMapper.selectList(queryWrapper);
System.out.println(users);
}
// 只查询name,age,
@Test
public void select09(){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.select("name","age");
List<Map<String, Object>> maps = userMapper.selectMaps(queryWrapper);
System.out.println(maps);
}
// 返回第一列的数据
// 包含条件需要使用条件构造器QueryWrapper封装
@Test
public void select10(){
List<Object> objects = userMapper.selectObjs(null);
System.out.println(objects);
}
@Test
public void Update01(){
User user = new User();
user.setId(229).setName("六一儿童节");
userMapper.updateById(user);
}
// 参数说明, 1.实体对象 封装修改后的数据
@Test
public void Update02(){
User user = new User();
user.setName("端午节");
UpdateWrapper updateWrapper = new UpdateWrapper();
updateWrapper.eq("name", "六一儿童节" );
userMapper.update(user,updateWrapper);
}