Java框架之Hibernate--初识Hibernate
来源:互联网 发布:淘宝智能客服机器人 编辑:程序博客网 时间:2024/05/29 09:43
环境与工具:jdk1.8、IntelliJ IDEA 2017.1.4、Hibernate 5.2.10、JUnit4、MySql 5.7。
目标:在idea上编写第一个hibernate的例子(通过hibernate向mysql数据库中插入一条记录)
1、新建一个项目
1.1 本地无hibernate Jar包
如果本地没有hibernate的jar包的话,那么就勾选Download, Idea会自动去下载。
点击Configure…可以选择下载hibernate的版本与存储位置,如下图。
1.2 本地有hibernate Jar包
如果本地没有hibernate的jar包的话,那么选择 Use library,点击Create…选中所有需要的Jar包即可
Jar包选择好后直接Next输入项目名称然后Finish即可。
2、链接到Mysql
点击Idea的界面的最右边Database,新建一个Mysql的Database。如下图:
填写好User与Password, Host与Port一般默认的就可以了,Database先不填。然后测试一下链接显示成功,点击Apply。
3、创建数据库
- 打开Sql的Console
- 编写Sql语句,创建一个名为 hibernate 的数据库
- 运行
- 双击Schemas,显示所有的数据库
- 选着刚才创建好的hibernate
- 刷新
然后再指定hibernate数据库。
然后接着创建一张Student表
最后导入mysql-jdbc驱动的Jar包到项目。
4、编写hibernate.cfg.xml配置文件
在创建项目的时候 勾选了create default hibernate configuration and main class
,在项目创建成功后就会在src文件夹下生成hibernate.cfg.xml配置文件。
<?xml version='1.0' encoding='utf-8'?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration> <session-factory> <!--连接数据库的url--> <property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property> <!--连接所用的驱动--> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <!--数据库用户名--> <property name="connection.username">root</property> <!--数据库密码--> <property name="connection.password">123456</property> <!--方言:指定了与Hibernate进行交互的特定SQL变体--> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!--显示Sql语句--> <property name="show_sql">true</property> <!--格式化Sql语句--> <property name="format_sql">true</property> <!--将数据库模式直接自动生成到数据库中--> <property name="hbm2ddl.auto">update</property> </session-factory></hibernate-configuration>
5、自动生成持久化映射文件
1. 点击面板最左边的persistence
2. 右键HelloHibernate
3. 选择最下面的 Generate Persistence Mapping—>By Database Schema
如上图,依次选择刚才创建的数据库,生成的实体类所在的位置(填写或选择一个包),选择要映射的表,点开sutdent 可以看到Birthdate导入的是java.sql.Date ,这里把它换成 java.util.Date.
与最下面三个选项,点击OK.
这时候项目下就生成了两个文件 StudentEntity.java 与 StudentEntity.hbm.xml
为了方面后面的操作,在StudentEntity.java里面添加两个构造方法。
public StudentEntity() { }public StudentEntity(int studentId, String name, int age, String sex, String address, Date birthdate, String phoneNumber) { this.studentId = studentId; this.name = name; this.age = age; this.sex = sex; this.address = address; this.birthdate = birthdate; this.phoneNumber = phoneNumber; }
同时hibernate.cfg.xml配置文件下面也添加了<mapping/>
映射关系。
这里有一个比较疑惑的地方就是,每次自动生成entity类的时候勾选了Add Session Factory后,生成文件成功后,我在hibernate.cfg.xml配置文件里面设置的 connection.username 与connection.password总会被删除掉,这导致后面进行对数据库的操作的时候会报错,连接不上数据库。现在还不知道是什么原因导致的。
在这里要把被删掉的connection.username 与connection.password给添加上
<property name="connection.password">123456</property>
<property name="connection.username">root</property>
6、编写测试类
在项目下新建一个名为StudentSaveTest的测试类:
使用idea自带的JUnit4
*****import java.util.Date;public class StudentSaveTest { private StandardServiceRegistry registry; private SessionFactory sessionFactory; private Session session; private Transaction transaction; @Before public void init() { registry = new StandardServiceRegistryBuilder().configure().build(); try { sessionFactory = new MetadataSources(registry).buildMetadata().buildSessionFactory(); } catch (Exception e) { StandardServiceRegistryBuilder.destroy(registry); } /* 也可以通过这种方式获取sessionFactory Configuration config = new Configuration().configure(); sessionFactory = config.buildSessionFactory(); */ /* 在早期的hibernate版本中还通过这种方式获取sessionFactory Configuration config = new Configuration().configure(); //创建服务注册对象 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder(). applySettings(config.getProperties()).build(); sessionFactory = config.buildSessionFactory(serviceRegistry); */ session = sessionFactory.openSession(); transaction = session.beginTransaction(); } @After public void destroy() { transaction.commit(); session.close(); sessionFactory.close(); } @Test public void test() { StudentEntity student = new StudentEntity(95001, "张三", 21, "男", "中国", new Date(), "123456789"); session.save(student); }}
运行测试方法。
查看数据库:成功添加一条记录到数据库中
至此,已经成功的运用hibernate往数据库里面插入了一条记录。
- Java框架之Hibernate--初识Hibernate
- Hibernate框架学习之初识Hibernate
- Hibernate之hibernate初识
- 【Hibernate框架学习】:Hibernate初识
- JAVA框架之hibernate
- 初识Hibernate框架
- 初识hibernate框架
- JAVA框架之Hibernate【Hibernate缓存详解】
- JAVA框架之Hibernate【Hibernate缓存详解】
- Hibernate(3.6)之初识
- 初识Hibernate(一)之配置文件以及框架搭建
- Java框架--- hibernate 框架
- Java 框架之Hibernate (一、Hibernate环境搭建)
- 千里之行,始于足下之:初识Hibernate
- 初识Hibernate之环境搭建
- 初识Hibernate之关联映射
- 初识Hibernate之继承映射
- JAVA框架之Hibernate【配置文件详解】
- Repeated DNA Sequences
- FreeMarker入门教程
- Linux环境下创建并使用动态链接库
- while练习
- 关于List.remove在for循环中出现问题的解决方案
- Java框架之Hibernate--初识Hibernate
- 用思维导图整理产品结构
- Java网络编程——第十章 非阻塞I/O
- JS if语句
- Java怎么部署工程及访问不带项目名的工程
- PHP语言性能优化——少使用魔术方法
- MFC的Dialog模式创建窗体以及控件绑定
- 进程间通信——共享内存
- 算法设计与应用基础:第十六周(1)