MyBaties中Mapper内置方法的自我理解

来源:互联网 发布:淘宝刷访问量 编辑:程序博客网 时间:2024/05/21 10:43


属性:

Criterion:单个条件

criteria:内置多个criterion对象,整合多个条件

record:用户的对象



方法:

==>

**Example example=new  **Example();

Criteria criteria=example.createCriteria();

//以下直接引用criteria。

User user=new User();

//以User为例;User类的属性有姓名name,性别sex,年龄age

==>

1、countByExample(example)===>以条件计数

例:criteria.andUsernameEqualTo("赵云");

userDao.countByExample(example);

相当于select count(*) from User where Username="赵云"。

2、deleteByExample(example)===>以条件删除

例:criteria.andUsernameEqualTo("高超");

userDao.deleteByExample(example);

相当于delete from user where username="高超";

3、deleteByPrimaryKey(id)===》通过主键id删除

例:userDao.deleteByPrimaryKey(333);

相当于delete from user where Id=333;

4、insert(record)===》插入对象,完全变成用户插入的数据

例:user.setName("金成");

user.setAge(22);

user.setSex("男");

userDao.insert(user);

相当于insert into user ( name,age,sex) value  ("金成",22,"男");

5、insertSelective(record)===》对要插入的对象进行是否为null判断,插入不为null的数据。数据库中对表某些字段设置默认值,若采用该方法且用户插入的该字段为空,则不会改变该字段的默认值

例:表user中sex字段默认值为男

user.setName("胖子");

user.setAge(22);

user.setSex(null);

(1)userDao.insert(user);

相当于insert into user (name,age,sex) values ("胖子",22,null);

表中数据,name:"胖子"    age:22      sex:null

(2)userDao.insertSelective(user);

相当于insert into user (name,age) values("胖子",22);

表中数据,name:"胖子"     age:22      sex:"男"

6、selectByExample(example)===》按条件查询,返回值为list<user>

例:criteria.andUsernameEqualTo("超哥');

userDao.selectByExample(example);

相当于select * from user where username="超哥";

7、selectByPrimaryKey(id)===>按id查找,返回值为user

例:

userDao.selectByPrimaryKey(33);

相当于select * from user where id = 33;

8、updateByExampleSelective(record,example)===》对用户给的对象进行判断,根据条件更新对象,只更新用户对象不为空的值(可以参考insert和insertSelective的区别)

例:user.setName("飘飘");

user.setAge(44);

criteria.andUsernameEqualTo("云飘");

userDao.updateByExampleSelective(user,example);

相当于update user set username="飘飘",age=44 where username="云飘";

9、updateByExample(record,example)===>根据条件更新对象

user.setName("飘飘");

user.setAge(44);

criteria.andUsernameEqualTo("云飘");

userDao.updateByExample(user,example);

相当于update user set username="飘飘",age=44,sex=  where username="云飘";

报错sex无值

10、updateByPrimaryKey(record)===》根据主键更新

user.setId(5)

user.setName("飘飘");

user.setAge(44);

userDao.updateByPrimaryKey(user);

相当于update user set username="飘飘",age=44,sex=  where id=5;

报错,sex无值

11、updateByPrimaryKeySelective(record)===>根据主键选择用户对象不为空的更新

user.setId(3);

user.setName("飘飘");

user.setAge(44);

userDao.updateByPrimaryKeySelective(user);

相当于update user set username="飘飘",age=44 where id=3;

原创粉丝点击