首页 > 代码库 > Eclipse下构建hibernate项目流程
Eclipse下构建hibernate项目流程
折腾了一晚上,搜了很多教程,发现很多教程上讲的在Eclipse下构建hibernate项目的方法还真不一样。仔细琢磨了一下,发现只要搞清楚了hibernate的本质,其实不管什么步骤,结果都一样,简单记录一下。
1、首先在Eclipse中建立一个Java project,这个是最基本的;
2、将hibernate所需的包全部导入到构建路径中;
3、编写hibernate.cfg.xml文件,配置数据连接属性;这个步骤可以自己直接编写hibernate.cfg.xml也可以利用Eclipse的插件的图形化界面来完成。该文件放在src文件夹下
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE hibernate-configuration PUBLIC 3 "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 4 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 5 <hibernate-configuration> 6 <session-factory> 7 <!-- 指定连接数据库所需的驱动 --> 8 <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 9 10 <!-- 指定数据库的URL -->11 <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_learn</property>12 13 <!-- 指定数据库的用户名和密码 -->14 <property name="hibernate.connection.password">123456</property>15 <property name="hibernate.connection.username">root</property>16 17 <!-- 指定数据库方言,因为hibernate可以管理很多数据库,各种数据库之间的sql会有一些不同,所以要指定 方言-->18 <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>19 20 <!-- 指定数据库连接池中的最大和最小连接数 -->21 <property name="hibernate.c3p0.max_size">20</property>22 <property name="hibernate.c3p0.min_size">1</property>23 24 <!-- 指定数据库连接的超时时长 -->25 <property name="hibernate.c3p0.timeout">5000</property>26 27 <!-- 指定数据库连接池中最大的statement数 -->28 <property name="hibernate.c3p0.max_statements">100</property>29 <property name="hibernate.c3p0.idle_test_period">3000</property>30 <property name="hibernate.c3p0.acquire_increment">2</property>31 <property name="hibernate.c3p0.validate">true</property>32 33 <!-- 指定是否根据hbm文件自动创建数据表 -->34 <property name="hbm2ddl.auto">update</property>35 36 <!-- 指定是否打印sql语句 -->37 <property name="hibernate.show_sql">true</property>38 39 <!-- 罗列所有的映射文件 -->40 <mapping resource="org/crazyit/app/domain/News.hbm.xml"/>41 42 43 </session-factory>44 </hibernate-configuration>
4、编写po类;
1 package org.crazyit.app.domain; 2 3 public class News { 4 5 //消息类的标识属性 6 private Integer id; 7 8 //消息的标题 9 private String title;10 11 //消息的内容12 private String content;13 14 public Integer getId() {15 return id;16 }17 public void setId(Integer id) {18 this.id = id;19 }20 public String getTitle() {21 return title;22 }23 public void setTitle(String title) {24 this.title = title;25 }26 public String getContent() {27 return content;28 }29 public void setContent(String content) {30 this.content = content;31 }32 33 34 }
5、编写映射文件,xxx.hbm.xml;该文件放置在po的同一个包下
1 <?xml version="1.0"?> 2 <!DOCTYPE hibernate-mapping PUBLIC 3 "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 4 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 5 <hibernate-mapping package="org.crazyit.app.domain"> 6 7 <!-- 每个类对应一个表 --> 8 <class name="News" table="news_table"> 9 10 <id name="id">11 <!-- 指定主键生成策略 -->12 <generator class="identity"></generator>13 </id>14 15 <!-- 指定一般的属性 -->16 <property name="title"></property>17 <property name="content"></property>18 </class>19 </hibernate-mapping>
6、编写测试类
1 package test; 2 3 import org.crazyit.app.domain.News; 4 import org.hibernate.Session; 5 import org.hibernate.SessionFactory; 6 import org.hibernate.Transaction; 7 import org.hibernate.cfg.Configuration; 8 9 public class NewsManger {10 11 /**12 * @param args13 */14 public static void main(String[] args) {15 16 17 //实例化configuration,后面的configure()方法是加载hibernate.cfg.xml文件18 Configuration conf = new Configuration().configure();19 //用configuration的对象创建sessionfactory20 SessionFactory sf = conf.buildSessionFactory();21 //创建session22 Session sess = sf.openSession();23 //开始事务24 Transaction tx = sess.beginTransaction();25 26 //创建消息实例27 News n = new News();28 29 n.setTitle("疯狂Java联盟成立了");30 n.setContent("网址是:www.crazyit.com");31 32 //保存消息33 sess.save(n);34 35 //提交事务36 tx.commit();37 38 //关闭session39 sess.close();40 sf.close();41 42 }43 44 }
因为hbm2ddl.atuo为update,因此第一次运行该测试代码,会在数据库中创建相应的表,而第二次运行则只会更新该表。如果将该属性设置为create,那么每次都会创建新表,覆盖原表。
【总结】:其实创建hibernate项目最本质的操作只有3步,第一步,导入hibernate的jar吧,这一步无论在什么时候完成都行;第二步,编写配置文件hibernate.cfg.xml;第三步编写po类和相应的映射文件。学知识要懂原理,不然很容易被网上各种参差不齐的教程搞糊涂,多看书本上比较系统的教程,不要自己在网上瞎搞。
Eclipse下构建hibernate项目流程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。