调用getter setter进行插入更新操作时,这两个有什么区别

来源:百度知道 编辑:UC知道 时间:2024/05/24 06:44:52
我在学习HIBERNATE的时候 有时候用到POJO的GETTER和SETTER,例如
p.setName("hxy") ;
p.setPassword("www.hxy.cn") ;
p.setSex("男") ;
p.setEmail("hxy@163.com") ;
PersonOperate po = new PersonOperate() ;
po.insert(p) ;
那么我如果要更新这条数据呢?是不是要把这个数据的ID先查询出来 然后再用UPDATE方法? 因为我经常因为UPDATE方法而弄成插入,这点很容易混淆,请高手指点一下。 还有我有的时候用
Person p = new Person();
p.setName("hxy");
p.setBooks(new ArrayList());
p.getBooks().add("Java 核心技术");
p.getBooks().add("Oracle PL SQL编程");
p.getBooks().add("WebSphere 开发指南");
这是什么操作?为什么又用到GET了 上面那个不是SETTER么 很不解啊 ,高手 回答一下吧 重赏啊!!!!!我会追加分哒~~

一般hibernate的pojo对应的表ID字段,都是自动增长,所以插入一条新纪录时,只要给pojo对象除id外的其他属性赋值,这就使用setter方法;
更新一个pojo对象,首先你必须要知道并找出这个对象,在更新前这个对象肯定也是存在数据库中,根据hibernate原理,一定存在一个自动曾长的id字段,也会通过这个id字段找到并更新记录,所以你必须知道id,才能使用update方法;
Person p = new Person();
p.setName("hxy");-- 给人设置名字
p.setBooks(new ArrayList());-- 给对象P,设置书籍纪录集合
p.getBooks().add("Java 核心技术");
p.getBooks().add("Oracle PL SQL编程");
p.getBooks().add("WebSphere 开发指南");
分开看,相当于;
List list =p.getBooks();
先通过getter方法得到人的书籍集合,再在集合中加如书籍信息list.add("Java 核心技术");

简化就是p.getBooks().add("Java 核心技术");
也就相当于给p某集合属性赋值

上班时间写的,很仓促,也很乱,别介意

更新的话是要先把ID查询出来的~~这样才是更新
呵呵 p.setBooks()里面是一个ArraryList
你可以理解成为一个数组
p.getBooks()就是得到这个数组 然后再add就是给这个数组赋值.

更新的话是要先把不变的那个信息查询出来的~~根据那个信息(一般都是ID)更改其他信息,相信你会写update的SQL语句吧.
另外注意看
Person p = new Person();
p.setName("hxy");
p.setBooks(new ArrayList())