hibernate 3.6.0的使用记录
1.首先下载hibernate的开发jar包
2.引入jar包到项目中
(可以自己手动添加到项目的lib文件夹在构建路径 也可以通过IED来直接引入)
关键的jar包:
①hibernate的核心包
②hibernate解压后lib文件夹下required文件夹下所有的jar包
③hibernate解压后lib文件夹下jpa文件夹下的jar包
④数据库驱动jar包
3.创建映射对象类以及所对应的(*.hbm.xml)文件
4.在src目录下创建hibernate.cfg.xml主配置文件(项目发布时会自动发布到WEB-INF目录中的class文件下)
在hibernate.cfg.xml中加入连接数据库的相关配置一般有以下几项:
<hibernate-configuration> <session-factory> <property name="connection.driver_class">com.mysql.jdbc.Driver</property><!--驱动--> <property name="connection.url">jdbc:mysql://127.0.0.1:3306/struts2andhibernate</property><!--url--> <property name="connection.username">root</property><!--数据库用户名--> <property name="connection.password">root</property><!--数据库密码--> <property name="dialect">org.hibernate.dialect.MySQLDialect</property><!--数据库方言--> <property name="show_sql">true</property> <!-- 在后台打印sql语句,开发的时候设为true--> <property name="format_sql">true</property><!-- 将后台打印的sql语句格式化--> <property name="hbm2ddl.auto">update</property> <!--自动建表设置的--> <!--引入相应的*.hbm.xml映射文件--> <mapping resource="entity/Users.hbm.xml"/> <mapping resource="entity/Students.hbm.xml"/> </session-factory> </hibernate-configuration>
5 最后进行简单的测试
测试和使用的关键步骤:
//获得加载配置文件的管理类对象 Configuration config = new Configuration(); config.configure("cn/config/hibernate.cfg.xml")//默认加载src/hibernate.cfg.xml //创建session的工厂对象 SessionFactory sf=config.buildSessionFactory(); //创建session(代表一个会话,与数据库连接的会话) Session session=sf.openSession(); //开启事务 Transaction tx=session.beginTransaction(); //保存-数据库 session.save(); //提交事务 tx.commit(); //关闭 session.close(); sf.close();
hibernate 4以上的相应用法 //获得加载配置文件的管理类对象 Configuration config = new Configuration(); config.configure("配置文件所在的路径"); //不填写默认是在src目录下 //获得服务注册对象 ServiceRegistry servletRegistry = new ServiceRegistryBuilder() .applySettings(config.getProperties()).buildServiceRegistry(); //获得sessionFactory对象 SessionFactory sessionFactory = config.buildSessionFactory(servletRegistry); //获得session对象,创建会话 两种方法 //方法一:Session session = sessionFactory.openSession(); //方法二:Session session = sessionFactory.getCurrentSession(); //在配置文档中要进行相应的配置否则会抛出异常(添加一个属性) <property name="hibernate.current_session_context_class">thread</property> 这两种创建session 的区别: 1.getCurrentSession在事务提交或者回滚之后会自动关闭,而opensession需要你手动关闭。 如果使用openSession而没有手动关闭,多次之后会导致连接池溢出 2.openSession每次创建新的session对象,getCurrentSession使用现有的session对象
时间: 2024-10-10 16:43:38