天才第一步,雀氏纸尿裤,Hibernate第一步,连接数据库。
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 所以说,Hibernate讲白了就是简化了与数据库之间的操作,那么要玩转它自然就得连接上数据库咯。(与Hibernate对应的orm框架还有Mybatis,只不过Mybatis是半自动的,但是个人感觉更喜欢Mybatis,更自由,扩展性更强)。
今天就给大家分享一下Hibernate怎么连接mysql数据库并自动创建表,至于其他数据库的连接其实是同理的,大家自己学会举一反三。
第一步:随便创建一个java项目,麻痹的项目的都没有怎么玩对吧?New》Other...,输入java Project,如图:
点击Next,然后输入项目名称,选择使用的JDK版本等等,然后点击Finish,如图:
这样一个java项目就创建好了。
第二步:在项目的根目录创建一个lib目录用来存放项目所需的jar包,这里需要用到的有Hibernate的核心jar包、mysql jdbc的jar包以及Junit的jar包,这里会用Junit进行测试(哥们不用我教怎么去获取这些包吧?如果要,那哥们你还是放弃这个行业吧,作为职业IT屌丝,一定要从基层就学会获取资源,利用资源),如图:
然后,在项目中引入这些jar包,鼠标右键点击项目,选择Properties,弹出如图所示窗口:
点击Java Build Path,点击Libraries,点击Add JARs,弹出:
将lib目录下的jar包全部选中点击ok按钮就成了,如图:
第三步:创建Hibernate的配置文件,在src上点击鼠标右键选择New》Other...输入Hibernate,弹出Hibernate Tools插件相关的内容,然后选中配置文件,点击Next,如图:
点击Next,Next,Finish就好了。
第四步:在src路径下按照包命名规范创建包,并在entity包下创建一个实体类,这里我创建的是一个Student学生类,然后随便给上几个字段,用getter/setter封装一下就好,如图:
第五步:创建实体类的映射文件,New》Other...输入Hibernate,弹出Hibernate Tools插件相关的内容,然后选中映射文件,点击Next,如图:
弹出如图所示窗口,点击Add Class:
选择要映射的实体类,点击OK按钮,如图:
然后又是Next或者Finish啥的,不用多说,然后映射文件就创建成功了,Hibernate会帮我们自动写好映射文件,如图:
第六步:进行Hibernate配置文件的详细配置,包括连接数据库需要的配置,是否输出sql语句,导入映射文件等等,(各个配置的含义请自行了解,培养个人学习能力)如图:
第七步:创建数据库,配置文件中我用的是hibernate数据库,记得打开mysql服务,然后通过可视化工具创建一个hibernate数据库就好,如图:
最后一步:使用Junit进行测试,新建一个test包,在包下新建一个Junit测试类,如图:
然后敲上相应的代码:
1 package com.alanlee.test; 2 3 import java.util.Date; 4 5 import org.hibernate.Session; 6 import org.hibernate.SessionFactory; 7 import org.hibernate.Transaction; 8 import org.hibernate.cfg.Configuration; 9 import org.hibernate.service.ServiceRegistry; 10 import org.hibernate.service.ServiceRegistryBuilder; 11 import org.junit.After; 12 import org.junit.Before; 13 import org.junit.Test; 14 15 import com.alanlee.entity.Student; 16 17 /** 18 * 测试类 19 * @author AlanLee 20 * 21 */ 22 public class StudentTest 23 { 24 /** 25 * 会话工厂 26 */ 27 private SessionFactory sessionFactory; 28 /** 29 * 会话对象 30 */ 31 private Session session; 32 /** 33 * 事务对象 34 */ 35 private Transaction transaction; 36 37 /** 38 * 初始化 39 * @throws Exception 40 */ 41 @Before 42 public void setUp() throws Exception 43 { 44 // 创建配置镀锡 45 Configuration config = new Configuration().configure(); 46 // 创建服务注册对象 47 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()) 48 .buildServiceRegistry(); 49 // 创建会话工厂对象 50 sessionFactory = config.buildSessionFactory(serviceRegistry); 51 // 创建会话对象 52 session = sessionFactory.openSession(); 53 // 开启事务 54 transaction = session.beginTransaction(); 55 } 56 57 /** 58 * 释放资源 59 * @throws Exception 60 */ 61 @After 62 public void tearDown() throws Exception 63 { 64 // 提交事务 65 transaction.commit(); 66 // 关闭会话 67 session.close(); 68 // 关闭会话工厂 69 sessionFactory.close(); 70 } 71 72 /** 73 * 测试方法 74 */ 75 @Test 76 public void testSaveStudent() 77 { 78 //生成学生对象 79 Student student = new Student(); 80 student.setSid(1); 81 student.setName("AlanLee"); 82 student.setSex("男"); 83 student.setBirthday(new Date()); 84 student.setAddress("湖南郴州"); 85 //保存对象进入数据库 86 session.save(student); 87 } 88 89 }
通过Junit运行这个类进行测试,运行成功,如图:
然后我们看一下数据库,刷新一下表,如图:
这样,通过Hibernate连接mysql数据库并自动创建表就完美实现了。
小Alan之前有写关于eclipse安装Hibernate Tools的随笔,关于Hibernate Tools没弄明白的自己翻出来看看,小Alan都是尽量用图片展示就是喜欢大家能够尽量自己动手敲敲,别还没理解就是一个copy,那样子是很难把技术变成自己脑海里的东西的。
爸妈又在催吃饭了,下回见。