Java自学之路-Java中级教程-31:Hibernate初识及Maven+Spring+SpringMVC整合Hibernate

Java的Web工程很经典的两个MVC框架组合,一个是SpringMVC框架,一个是SSH框架。前面已经介绍了SpringMVC的基本用法,在数据层使用SpringJDBC访问数据库,这已经足够开发Web工程了。尽管SSH框架是整合了Spring+Struts+Hibernate,而其中Hibernate作为数据层的OR Mapping框架,也可以与SpringMVC结合使用。


Hibernate即冬眠的意思,Spring则是春天的意思,一般是学了Hibernate冬眠后再学Spring,不过这个顺序并不是那么严格。现在有了Spring和Maven,就可以直接把Hibernate整合进来直接使用。Struts是与SpringMVC等同作用,所以这里是整合Spring+SpringMVC+Hibernate。Struts也是MVC三层架构模式表现层+逻辑层+数据层的经典框架,而且很多大公司也曾用来开发过大量的商用产品,不过最近几年频繁暴露出高危漏洞,建议重点学习SpringMVC框架的SSH组合。


先看下之前我们使用SpringJDBC也就是jdbcTemplate实现的CRUD操作,以添加记录为例。


	public int add(Person person) throws Exception {

		int updatedRow = this.getJdbcTemplate().update("insert into new_table (id, nation, information, gender, hobby, name, password) values (?,?,?,?,?,?,?)", person.getId(), person.getNation(), person.getInformation(), person.getGender(), person.getHobby(), person.getName(), person.getPassword());

		return updatedRow;

	}


使用Hibernate后,这段代码可改为



	public void add(Person person) {

		sessionFactory.getCurrentSession().save(person);
	}


也就是Hibernate可以直接把一个对象保存到数据库,至于怎么做到的,在后面的章节会介绍。这里有一个sessionFactory,是Hibernate的一个类org.hibernate.SessionFactory的对象,所以需要给PersonDaoImpl注入这个类的实例。


@Autowired
private SessionFactory sessionFactory;

整个添加记录的实现也就这么简单,这一步省去了写sql语句。这是使用Hibernate的一个优点,可以自动作对象与数据记录的映射转换,不过使用SpringJDBC也有优点,因为只要会用sql就可以实现很多功能,而且SpringJDBC处理数据在性能上也更快速。


下面使用Maven把Hibernate的jar包依赖配置到Web工程里来。在pom.xml文件中,groupId为org.hibernate,artifactId为hibernate-core,版本号使用4.3.9.Final。这样,Web工程的Maven Dependencies依赖库里就出现的hibernate的相关jar包,已经自动下载下来了。

http://central.maven.org/maven2/org/hibernate/hibernate-core/4.3.9.Final/

另外,要将hibernate交给Spring管理,需要加入spring-orm的包依赖,这样才能把Spring和Hibernate整合到一起。在pom.xml文件中,groupId为org.springframework,artifactId为spring-orm,版本号使用4.3.9.RELEASE。

同时,前面用到过的aspectj的两个jar包aspectjrt与aspectjweaver,也在这里加入进来,后面Hibernate的事务要用这两个jar包。在pom.xml文件中,groupId为org.aspectj,artifactId为aspectjrt与aspectjweaver,版本号使用1.8.7。


猜你喜欢

转载自blog.csdn.net/weixin_41239710/article/details/80786310
今日推荐