天才第一步,雀氏纸尿裤,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常用配置理解:

第七步:创建数据库,配置文件中我用的是hibernate数据库,记得打开mysql服务,然后通过可视化工具创建一个hibernate数据库就好,如图:

最后一步:使用Junit进行测试,新建一个test包,在包下新建一个Junit测试类,如图:

然后敲上相应的代码:

 package com.alanlee.test;

 import java.util.Date;

 import org.hibernate.Session;
 import org.hibernate.SessionFactory;
 import org.hibernate.Transaction;
 import org.hibernate.cfg.Configuration;
 import org.hibernate.service.ServiceRegistry;
 import org.hibernate.service.ServiceRegistryBuilder;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;

 import com.alanlee.entity.Student;

 /**
  * 测试类
  * @author AlanLee
  *
  */
 public class StudentTest
 {
     /**
      * 会话工厂
      */
     private SessionFactory sessionFactory;
     /**
      * 会话对象
      */
     private Session session;
     /**
      * 事务对象
      */
     private Transaction transaction;

     /**
      * 初始化
      * @throws Exception
      */
     @Before
     public void setUp() throws Exception
     {
         // 创建配置镀锡
         Configuration config = new Configuration().configure();
         // 创建服务注册对象
         ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties())
                 .buildServiceRegistry();
         // 创建会话工厂对象
         sessionFactory = config.buildSessionFactory(serviceRegistry);
         // 创建会话对象
         session = sessionFactory.openSession();
         // 开启事务
         transaction = session.beginTransaction();
     }

     /**
      * 释放资源
      * @throws Exception
      */
     @After
     public void tearDown() throws Exception
     {
         // 提交事务
         transaction.commit();
         // 关闭会话
         session.close();
         // 关闭会话工厂
         sessionFactory.close();
     }

     /**
      * 测试方法
      */
     @Test
     public void testSaveStudent()
     {
         //生成学生对象
         Student student = new Student();
         student.setSid(1);
         student.setName("AlanLee");
         student.setSex("男");
         student.setBirthday(new Date());
         student.setAddress("湖南郴州");
         //保存对象进入数据库
         session.save(student);
     }

 }

通过Junit运行这个类进行测试,运行成功,如图:

然后我们看一下数据库,刷新一下表,如图:

这样,通过Hibernate连接mysql数据库并自动创建表就完美实现了。

小Alan之前有写关于eclipse安装Hibernate Tools的随笔,关于Hibernate Tools没弄明白的自己翻出来看看,小Alan都是尽量用图片展示就是希望大家能够尽量自己动手敲敲,别还没理解就是一个copy,那样子是很难把技术变成自己脑海里的东西的。

爸妈又在催吃饭了,下回见。

可爱博主:AlanLee

博客地址:http://www.cnblogs.com/AlanLee

本文出自博客园,欢迎大家加入博客园。

Hibernate连接mysql数据库并自动创建表的更多相关文章

  1. java中用activiti插件连接mysql数据库,自动建表过程中,在配置mysql架包路径“org.activiti.engine.ActivitiException: couldn't check if tables “

    java中用activiti插件连接mysql数据库,出现错误: org.activiti.engine.ActivitiException: couldn't check if tables are ...

  2. SpringBoot 整合 hibernate 连接 Mysql 数据库

    前一篇搭建了一个简易的 SpringBoot Web 项目,最重要的一步连接数据库执行增删改查命令! 经过了一天的摸爬滚打,终于成功返回数据! 因为原来项目使用的 SpringMVC + Hibern ...

  3. 利用powerDesigner15.1连接oracle数据库并自动生成表结构

    利用powerDesigner15.1连接oracle数据库并自动生成表结构 参考:http://blog.csdn.net/qq_24531461/article/details/76713802 ...

  4. Hibernate连接MySQL数据库乱码相关问题

    1.查看MySQL字符编码 >show variables like 'character%'; #执行编码显示 其中character_set_client,character_set_res ...

  5. mysql 按照月份自动创建表,以年和月为表明,动态生成。

    需求:mysql5.5 数据库,想要根据月份自动创建表,每个月创建一张表,需要数据库自动创建,并根据当前年和月动态生成表名称. 解决办法:1 连接数据库工具为Navicat  2  首先创建存储过程, ...

  6. 一个简单的java项目使用hibernate连接mysql数据库

    实体类与表对应文件Customer.hbm.xml <?xml version="1.0" encoding="UTF-8"?><!DOCTY ...

  7. hibernate在写cfg配置文件自动创建表时报错org.hibernate.MappingException: Could not get constructor for org.hibernate.persister.entity.SingleTableEntityPersister

    在用hibernate框架时,写cfg文件,想自动生成表时,一般写<property name="hibernate.hbm2ddl.auto">create</ ...

  8. MySQL数据库 存储引擎,创建表完整的语法,字段类型,约束条件

    1.存储引擎 - 存储引擎是用于根据不同的机制处理不同的数据. - 查看mysql中所有引擎: - show engines; - myisam: 5.5以前老的版本使用的存储引擎 - blackho ...

  9. Hibernate连接mysql数据库的配置

    <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hi ...

随机推荐

  1. C#:基于WMI查询USB设备信息 及 Android设备厂商VID列表

    /* ---------------------------------------------------------- 文件名称:WMIUsbQuery.cs 作者:秦建辉 MSN:splashc ...

  2. RARP反向地址转换协议

    反向地址转换协议(RARP:Reverse Address Resolution Protocol) 反向地址转换协议(RARP)允许局域网的物理机器从网关服务器的 ARP 表或者缓存上请求其 IP ...

  3. Atitit 编程语言原理与概论attilax总结

    Atitit 编程语言原理与概论attilax总结 1. 语言的分类1 2. 语言评价标准1 3. 编程语言原理(第10版) 目录: 2 4. 代码之髓:编程语言核心概念2 5. <编程语言实现 ...

  4. windows下打包react-native应用程序

    P.S.0:不截图了,上传图片太麻烦,每次只能上传一张.... 先生成签名文件,如果已有签名文件略过此步: keytool -genkey -v -keystore my-release-key.ke ...

  5. 粒子动画Particleground.js

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. IOS 非常流畅的滑动tableView

    为什么要写这篇文章呢?之前写过一篇,因为手机打字不是很方便,还有之前同事用6splus 定下午茶时候,我滑动列表时候竟然误以为是安卓系统的手机.   tableview 流畅度可以用fps来测试,到6 ...

  7. 【循序渐进学Python】15.网络编程

    Python 内置封装了很多常见的网络协议的库,因此Python成为了一个强大的网络编程工具,这里是对Python的网络方面编程的一个简单描述. 1. 常用的网络设计模块 在标准库中有很多网络设计相关 ...

  8. Julius JS – 最流行的网页语音识别库

    JuliusJS 是用于在网页中的语音识别库.这是 Julius(由日本京都大学和日本IPA联合开发的一个实用高效双通道的大词汇连续语音识别引擎)的 JavaScript 实现.它实时侦听用户的语音并 ...

  9. 让你忘记 Flash 的15款精彩 HTML5 游戏

    HTML5 游戏开发是一个热门的话题,开发人员和设计人员最近经常谈论到.虽然不能迅速取代 Flash 的地位,但是 HTML5 凭借它的开放性和强大的编程能力,取代 Flash 是必然的趋势.你会看到 ...

  10. 当jquery ajax遇上401请求

    jquery ajax是个很常用接口,而在请求时候,可能存在响应401的情况(身份认证过期或未登录),比较容易出现在混合应用上,如何进行身份认证,重发失败请求,还是值得注意的. ajax请求有两种方式 ...