今天看一源码,service层有个方法是用来删除指定ID的书籍,他是这样写的。public void deleteBook(String bookId) { 
Books book=booksDao.getBook(bookId); 
booksDao.deleteBook(book); 

我就想问下,这个删除的方法,一定更要先把这本书查询出来再删除吗?能直接写成
booksDao.delteBook(String bookId)吗?当然,booksDao中有根据ID删除书籍的这个方法。如果按照我的写法,是不是如果数据库中不存在记录的话,删除会出问题?

解决方案 »

  1.   

    booksDao.delteBook(String bookId)吗?你这个不是还是根据bookid又去查了一次么。可以是可以,最终删除的是对象
      

  2.   

    booksDao.delteBook(String bookId),这样的话就没有用上Hibernate了,hibenrmate本来就是对象关系映射框架,所以对对象的操作会同步到数据库中。
      

  3.   

    hibernate对于数据库是进行面向对象的操作,也就是每次执行数据库时,处理的是一个对象,所以你首先需要查询出此对象,然后再将此对象删除。。
      

  4.   

    这个到是没必要 但是删除必须指定一个id
    要不就写成booksDao.delteBook(String bookId);楼主的方法先查出来就省去了给书本指定id的操作了,hibernate会自动设置
      

  5.   

    对哦,你好像没有用到Hibernate 里面的东西了哦