轻量级前端框架助力开发者提升项目效率与性能
598
2023-01-21
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)
方言选择
这里只给了三个有关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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~