2018-4-11日志记录(Hibernate温习)
今日工作:今日完成Hinernate的一些入门级别的练习,温习了之前学习过的知识点,
总结下开发步骤:
很经典的一个例子,我们来这写一个HelloWord入门例子。
1、我们来搭建hinernate的环境.
首先新建一个JAVA项目,建立一个lib目录,用来放hibernate的库文件。
1)、添加所需要的jar包
2)、配置hibernate.cfg.xml文件
<session-factory>
<!-- 数据库连接配置 -->
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql:///hibernate_1</property>
<!-- 配置hibernate基本信息 -->
<!-- sql方言-->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 是否控制台打印信息 -->
<property name="show_sql">true</property>
<!-- 显示格式化 -->
<property name="format_sql">true</property>
<!-- 自动生成数据表的策略 -->
<property name="hbm2ddl.auto">update</property>
<!-- 指定关联的.hbm.xml文件 -->
<mapping resource="com/tianliangge/hibernate/User.hbm.xml"/>
</session-factory>
2.创建一个实体类,并且写好里面的get.set方法,然后写上两个构造函数,一个带参和无参的,在实体类的包路径下面创建对象映射文件---hbm.xml
里面包含的是实体类和数据表的映射关系。
<hibernate-mapping>
<class name="com.tianliangge.hibernate.User" table="USER">
<id name="id" type="int">
<column name="ID" />
<!-- 生成id的方式,native是按照数据库的方式生成id -->
<generator class="native" />
</id>
<property name="name" type="java.lang.String">
<column name="NAME" />
</property>
<property name="date" type="java.sql.Date">
<column name="DATE" />
</property>
</class>
</hibernate-mapping>
3、在hibernate.cfg.xml文件中关联.hbm.xml文件
<mapping resource="com/tianliangge/hibernate/User.hbm.xml" />
4、建立测试类测试。
//1.建立一个Session对象
SessionFactory sessionFactory = null;
//1).建立一个Configuration对象,对应hibernate的基本配置和对象映射文件
Configuration configuration = new Configuration().configure();
//4.0 之前这样创建
// sessionFactory = configuration.buildSessionFactory();
//2). 创建一个 ServiceRegistry 对象: hibernate 4.x 新添加的对象
//hibernate 的任何配置和服务都需要在该对象中注册后才能有效.
ServiceRegistry serviceRegistry =
new ServiceRegistryBuilder().applySettings(configuration.getProperties())
.buildServiceRegistry();
//3).
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
//2. 创建一个 Session 对象
Session session = sessionFactory.openSession();
//3. 开启事务
Transaction transaction = session.beginTransaction();
// //4. 执行保存操作
// User news = new User("c++",new Date(new java.util.Date().getTime()));
// session.save(news);
//
// //5. 提交事务
// transaction.commit();
//
// //6. 关闭 Session
// session.close();
//
// //7. 关闭 SessionFactory 对象
// sessionFactory.close();
User user = (User)session.get(User.class, 1);
System.out.println("get:"+user);
项目的路径如下:
一个经典的例子就写完了。
明日计划:明日计划是完成新的任务安排,温习hibernate里面的几种映射关系。