这个也和你说的struts2一样,hibernate帮你封装好了操作,你只用传递sql就行了,这样简化了你对于数据库的操作。像查询数据的时候,你只需要传递一个查询的sql语句,他就给你返回一个list。还有就是使用配置文件将你的实体类与数据表进行绑定映射,更加的面向对象化,更加的好理解和使用。持久化操作,将你对数据库的操作进行缓存。例如:你查询一条的时候,他会先看看你传递的ID是否已经被使用过,如果被使用过,会直接把那条数据给返回。还有就是查询数据时,只有在你需要用的时候才会去操作数据库。就像在配置表与实体类映射的时候,在里面配置关联,关联的数据开始的时候是不会给你加载出来的,只有在你使用关联数据的时候才会去数据库中取数据。
正如你说的,你用了struts2,
就不用再写request.getParameter,
不用进行类型转换,
不用写response.sendRedirect
不用......
如果你用了Hibernate,
就不用手动操作JDBC了,具体来说,比如
不用手动打开Connection,
不用手动设置PreparedStatement,
不用手动读取ResultSet,然后装载相应的JavaBeans,
不用每个对象都去编写持久化代码,
不用过多考虑数据库中的事务提交、回滚,
不用过多考虑采用不同数据库时Sql语句的细微差别,
....等等等等,还有很多好处,不能一一列举了。
这是一种框架,能得到众程序员的喜欢,主要是因为它的优点:
第一、提高生产力。
第二、更面向对象化。
第三、移植性好。
第四、透明持久化(侵入性比较少了)。
不需要特定SQL优化的时候适合使用,如果要批量的进行更新、删除都不适合,包括统计,这个用IBatis(SQL映射)比较好
我觉得只有简单的数据查询这个功能还实在点,复杂的还是sql语句好。
Hibernate只要有类就可以建表,对表进行增删改,更为方便