对Hibernate的初步定义:主要作用是简化应用的数据持久层编程,能管理Java类到数据库表的映射。
1、Hibernate框架主要包括持久化类、Hibernate配置文件(一般被命名为*.cfg.xml)、Hibernate映射文件(一般被命名为*.hbm.xml)三部分;
关系梳理:
注:我是用的是mysql数据库,下面演示了用户登录Hibernate+struts+jsp页面之间的交互。
Hibernate.cfg.xml文件用于配置Hibernate和数据库的连接信息和映射的.hbm.xml文件
类.hbm.xml文件用来描述持久化类和数据库表以及数据库列之间的对应关系
Dao类主要存着HibernateAPI,用Hibernate API对数据库进行select,update,delete操作,而Dao类在Service类中被调用
Dao类
SessionFactory sf=newConfiguration().configure().buildSessionFactory();
该句代码创建了一个SessionFactory实例,并把Configuration对象包含的所有配置信息复制到SessionFactory对象的缓存中。SessionFactory代表一个数据库存储源
CustomerDAO dao = new CustomerDAO()实例化DAO类,然后通过List list = dao.findByHql(hql)通过数据库执行查询语句
在Action类中通过UserService userServ = newUserService()实例化Service类,userServ.login(loginUser)把Customer持久化类的变量传值到Service查询语句中
实验遇到的问题及解决办法
Eclipse连接mysql遇到的问题及解决方法:
java.lang.NoClassDefFoundError:org/hibernate/cfg/Configuration
找不到jar类,于是我把hibernate-release-4.2.21.Final里面的jar文件放到C:\Program Files\ApacheSoftware Foundation\Tomcat 8.0\lib下
然后又悲催的出现了org.hibernate.exception.GenericJDBCException:Could not open connection,我检查了mysql发现在hibernate.cfg.xml文件中密码没填
还有就是mysql-connector-java-5.1.12-bin.jar也需要放到C:\Program Files\ApacheSoftware Foundation\Tomcat 8.0\lib下
eclipse持久化类便捷生成类.hbm.xml文件的方法
在help->Eclipse Marketplace->Serach->find搜索Jboss-Tools
点击Jboss Tools(Luna)4.3.1 Final的Installed,我因为已经安装过了,所以后面无法截图了,就是傻瓜式安装,需要一些时间,大家可以嗑嗑瓜子什么的......
然后安装好啦
右键我们想生成.hbm.xml文件的类,选择new->other,搜索hibernate
还可以生成cfg.xml文件哦,虽然小编没试过