Hibernate连接mysql数据库并自动创建表
天才第一步,雀氏纸尿裤,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数据库并自动创建表的更多相关文章
- 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 ...
- SpringBoot 整合 hibernate 连接 Mysql 数据库
前一篇搭建了一个简易的 SpringBoot Web 项目,最重要的一步连接数据库执行增删改查命令! 经过了一天的摸爬滚打,终于成功返回数据! 因为原来项目使用的 SpringMVC + Hibern ...
- 利用powerDesigner15.1连接oracle数据库并自动生成表结构
利用powerDesigner15.1连接oracle数据库并自动生成表结构 参考:http://blog.csdn.net/qq_24531461/article/details/76713802 ...
- Hibernate连接MySQL数据库乱码相关问题
1.查看MySQL字符编码 >show variables like 'character%'; #执行编码显示 其中character_set_client,character_set_res ...
- mysql 按照月份自动创建表,以年和月为表明,动态生成。
需求:mysql5.5 数据库,想要根据月份自动创建表,每个月创建一张表,需要数据库自动创建,并根据当前年和月动态生成表名称. 解决办法:1 连接数据库工具为Navicat 2 首先创建存储过程, ...
- 一个简单的java项目使用hibernate连接mysql数据库
实体类与表对应文件Customer.hbm.xml <?xml version="1.0" encoding="UTF-8"?><!DOCTY ...
- hibernate在写cfg配置文件自动创建表时报错org.hibernate.MappingException: Could not get constructor for org.hibernate.persister.entity.SingleTableEntityPersister
在用hibernate框架时,写cfg文件,想自动生成表时,一般写<property name="hibernate.hbm2ddl.auto">create</ ...
- MySQL数据库 存储引擎,创建表完整的语法,字段类型,约束条件
1.存储引擎 - 存储引擎是用于根据不同的机制处理不同的数据. - 查看mysql中所有引擎: - show engines; - myisam: 5.5以前老的版本使用的存储引擎 - blackho ...
- Hibernate连接mysql数据库的配置
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hi ...
随机推荐
- 装饰者模式(Decorator pattern)
知识点 类应该对扩展开放,对修改封闭. 案例 (本故事纯属虚构) 某日早上,流年刚把新开发的游戏项目提交给经理 public abstract class Role { public virtual ...
- webAPI 数组参数
今天终于解决了一个坑的问题. 写了一个接口,调试了好几天都没成功. 一直以为是我的错误,直到我们部门的大牛来告诉我不是我的错误,是前端传参数有问题. 应该是参数是数组参数的问题,可能不好拼接,才导致接 ...
- C++移位运算符
关于逻辑移位.算术移位可参见迅雷深大笔试题部分.的一道题. 以前看到C++标准上说,移位运算符(<<.>>)出界时的行为并不确定: The behavior is undefi ...
- Asp.net Mvc模块化开发系列(目录)
模块化开发是非常重要的,模块化开发是个系统性问题,为此我觉得有必须要写一个系列的文章才能基本说的清楚 那又为什么要写一个目录呢? 其一.是对我昨天承诺写一个系列新的文章的回应 其二.是先写出一个大纲, ...
- serialize()序列化
- mysql存储过程中的异常处理
http://www.cnblogs.com/cookiehu/p/4994278.html 定义异常捕获类型及处理方法: DECLARE handler_action HANDLER FOR con ...
- PHP程序员7小时学会Kotlin 第二小时
Kotlin中,一切皆对象:PHP则并非一切皆对象,甚至不需要对象的存在即可完成系统功能开发,我们现在可以接触到的旧的系统都可以说明这一点. 基本数据类型 数值型 类型 位长 双精度浮点型Double ...
- 禅道PMS兼容redmine用户认证接口
项目地址:https://github.com/web3d/zentao-redmine-userauth zentao-redmine-userauth 做了一个基本的用户认证接口,兼容redmin ...
- 线程池之 Callable、Future、FutureTask
java线程中的异步和同步,并不是走路,一定要搞清楚.那么join方法嘛,就是异步变同步.线程阻塞,就再楼下一直等着它想要的状态出现喽.直接上代码,先来看Future获取线程执行结果的使用示例: pu ...
- Mac上安装go环境
Mac 安装 GO语言开发环境 官网:https://golang.org/ go语言的安装:http://docscn.studygolang.com/doc/install 下载:go1.7rc3 ...