IDEA2019.3配置Hibernate的详细教程(未使用IDEA的自动化)

网友投稿 546 2023-01-21

IDEA2019.3配置Hibernate的详细教程(未使用IDEA的自动化)

IDEA2019.3配置Hibernate的详细教程(未使用IDEA的自动化)

准备工作 创建一个纯java项目,什么都不选直接建

创建数据库、表以及少量记录

CREATE DATABASE test;USE test;CREATE TABLE t_user(ID INT AUTO_INCREMENT PRIMARY KEY,NAME VARCHAR(20),AGE int);insert into testHibernate(NAME,AGE) VALUES('张三',20),('李四',21),('王五',22)

配置

引用相关包

实体类(User.java)

创建一个对应数据库表的实体类,代码如下

package entity;public class User { private int id; private String name; private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }}

配置User实体类(user.hbm.xml)

Hibernate配置文件(hibernate.cfg.xml)

org.hibernate.dialect.MySQLDialectcom.mysql.jdbc.Driverjdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghairoot123456true

方言选择

这里只给了三个有关MySQL的,详细的可以参考这篇文章hibernate 配置数据库方言

关系数据库管理系统

方言MySQLorg.hibernate.dialect.MySQLDialectMySQL with InnoDBorg.hibernate.dialect.MySQLInnoDBDialectMySQL with MyISAMorg.hibernate.dialect.MySQLMyISAMDialect

InnoDB:

MySQL默认的事务型引擎,也是最重要和使用最广泛http://的存储引擎。它被设计成为大量的短期事务,短期事务大部分情况下是正常提交的,很少被回滚。InnoDB的性能与自动崩溃恢复的特性,使得它在非事务存储需求中也很流行。除非有非常特别的原因需要使用其他的存储引擎,否则应该优先考虑InnoDB引擎。

MyISAM:

在MySQL 5.1 及之前的版本,MyISAM是默认引擎。MyISAM提供的大量的特性,包括全文索引、压缩、空间函数(GIS)等,但MyISAM并不支持事务以及行级锁,而且一个毫无疑问的缺陷是崩溃后无法安全恢复。正是由于MyISAM引擎的缘故,即使MySQL支持事务已经很长时间了,在很多人的概念中MySQL还是非事务型数据库。尽管这样,它并不是一无是处的。对于只读的数据,或者表比较小,可以忍受修复操作,则依然可以使用MyISAM(但请不要默认使用MyISAM,而是应该默认使用InnoDB)

测试是否配置成功

创建一个用于测试的文件manegeUser.java

package dao;import entity.User;import org.hibernate.*;import org.hibernate.cfg.Configuration;public class manageUser { public static void main(String[] args){ Configuration cfg = null; SessionFactory sf = null; Session session = null; Transaction ts = null; User u = new User(); u.setName("赵六"); u.setAge(66); try { cfg = new Configuration().configure(); sf = cfg.buildSessionFactory(); session = sf.openSession(); ts = session.beginTransaction(); session.save(u); ts.commit(); }catch (HibernateException e){ e.printStackTrace(); if(ts != null){ ts.rollback(); } }finally { session.close(); sf.close(); } }}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:微信小程序开发成app(微信小程序开发成本预算)
下一篇:uniapp混合开发(uniapp混合开发简书)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~