当前位置: 首页 > news >正文

网站开发协助方案搜狗搜索引擎网页

网站开发协助方案,搜狗搜索引擎网页,行距网站,旅游网站内容规划特点Hibernate是一个开源的Java持久层框架,旨在简化Java应用程序与关系数据库之间的数据持久化处理。它通过对象关系映射(ORM)技术,将Java对象与数据库表映射起来,使开发者能够通过面向对象的方式操作数据库数据&#xff0…

Hibernate是一个开源的Java持久层框架,旨在简化Java应用程序与关系数据库之间的数据持久化处理。它通过对象关系映射(ORM)技术,将Java对象与数据库表映射起来,使开发者能够通过面向对象的方式操作数据库数据,从而提高开发效率和代码可维护性。以下是Hibernate的高效应用方法及其详细介绍。

一、Hibernate的基本概念和优势

1.1 基本概念
  • 实体类(Entity) :Java类,它与数据库表对应。
  • Session:Hibernate中的一个接口,表示与数据库的单个会话。
  • SessionFactory:用于创建Session对象的工厂。
  • Transaction:表示一个数据库事务。
  • Query:用于执行数据库查询的接口。
1.2 优势
  • 透明持久化:开发者无需关注底层数据库操作,直接操作对象即可。
  • 数据库无关性:支持多种数据库,通过配置文件切换。
  • 缓存机制:内置一级缓存和可选的二级缓存,提高查询性能。
  • 强大的查询语言(HQL) :类似于SQL,但面向对象。

二、Hibernate的配置

2.1 添加依赖

在Maven项目中添加Hibernate依赖:

<dependency><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId><version>5.5.7.Final</version>
</dependency>
<dependency><groupId>org.hibernate</groupId><artifactId>hibernate-entitymanager</artifactId><version>5.5.7.Final</version>
</dependency>
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.26</version>
</dependency>
​
2.2 配置文件

创建Hibernate配置文件 hibernate.cfg.xml

<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration><session-factory><!-- JDBC Database connection settings --><property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql://localhost:3306/yourdb</property><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password">password</property><!-- JDBC connection pool settings ... using built-in test pool --><property name="hibernate.c3p0.min_size">5</property><property name="hibernate.c3p0.max_size">20</property><property name="hibernate.c3p0.timeout">300</property><property name="hibernate.c3p0.max_statements">50</property><property name="hibernate.c3p0.idle_test_period">3000</property><!-- Echo all executed SQL to stdout --><property name="hibernate.show_sql">true</property><!-- Drop and re-create the database schema on startup --><property name="hibernate.hbm2ddl.auto">update</property><!-- Names the annotated entity class --><mapping class="com.example.yourpackage.YourEntityClass"/></session-factory>
</hibernate-configuration>
​

三、Hibernate的使用

3.1 创建实体类
package com.example.yourpackage;import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Id;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Column;@Entity
@Table(name = "users")
public class User {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;@Column(name = "username", nullable = false)private String username;@Column(name = "password", nullable = false)private String password;// getters and setters
}
​
3.2 创建SessionFactory
package com.example.yourpackage;import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;public class HibernateUtil {private static final SessionFactory sessionFactory = buildSessionFactory();private static SessionFactory buildSessionFactory() {try {return new Configuration().configure().buildSessionFactory();} catch (Throwable ex) {throw new ExceptionInInitializerError(ex);}}public static SessionFactory getSessionFactory() {return sessionFactory;}public static void shutdown() {getSessionFactory().close();}
}
​
3.3 CRUD操作
3.3.1 创建操作
package com.example.yourpackage;import org.hibernate.Session;
import org.hibernate.Transaction;public class UserDao {public void saveUser(User user) {Transaction transaction = null;try (Session session = HibernateUtil.getSessionFactory().openSession()) {transaction = session.beginTransaction();session.save(user);transaction.commit();} catch (Exception e) {if (transaction != null) {transaction.rollback();}e.printStackTrace();}}
}
​
3.3.2 读取操作
package com.example.yourpackage;import org.hibernate.Session;public class UserDao {public User getUserById(Long id) {try (Session session = HibernateUtil.getSessionFactory().openSession()) {return session.get(User.class, id);}}
}
​
3.3.3 更新操作
package com.example.yourpackage;import org.hibernate.Session;
import org.hibernate.Transaction;public class UserDao {public void updateUser(User user) {Transaction transaction = null;try (Session session = HibernateUtil.getSessionFactory().openSession()) {transaction = session.beginTransaction();session.update(user);transaction.commit();} catch (Exception e) {if (transaction != null) {transaction.rollback();}e.printStackTrace();}}
}
​
3.3.4 删除操作
package com.example.yourpackage;import org.hibernate.Session;
import org.hibernate.Transaction;public class UserDao {public void deleteUser(Long id) {Transaction transaction = null;try (Session session = HibernateUtil.getSessionFactory().openSession()) {transaction = session.beginTransaction();User user = session.get(User.class, id);if (user != null) {session.delete(user);}transaction.commit();} catch (Exception e) {if (transaction != null) {transaction.rollback();}e.printStackTrace();}}
}
http://www.dtcms.com/a/447235.html

相关文章:

  • 上海的设计网站建筑设计毕业设计作品
  • wps上怎么做网站点击分析表优秀品牌企业网站建设案例
  • 【数据结构与算法-Day 40】深入理解分治算法:从归并排序到快速排序的思想基石
  • 重庆长寿网站设计公司推荐安卓app开发实验报告
  • 连云港市海州区建设局网站互联网制作网站
  • 塘沽手机网站建设0基础怎么学服装设计
  • 建设银行互联网网站网站前端模板
  • 北京做网站公司有哪些金华网站建设公司哪个好
  • MTK调试-创建新工程
  • 网站平台定制开发建站快车管理
  • 怎么样建设一个电影网站如何用自己的电脑建网站
  • 基于Binder的4种RPC调用
  • WordPress设置二级域名石家庄seo代理商
  • 做美剧盗版网站广州市中智软件开发有限公司
  • 威联通NAS部署umami
  • 做游戏出租的网站合肥聚名网络科技有限公司
  • 网站后台更新为什么前台不现实免费推广软件平台seo博客
  • 论企业网站建设的好处的文献如何检测网站死链
  • 如何做网站支付接口免费源码资源源码站在线
  • 微信建设网站郑州做网站熊掌号
  • 做指甲的网站叫什么名字来着湖北立方建设工程有限公司网站
  • ps怎么网站首页seo网络推广公司
  • 自助建站源码下载电脑租赁平台哪个好
  • 西宁房地产网站建设页面设计的怎么样
  • 申请备案网站首页网站的建设有什么好处
  • 网站搭建平台demo免费做购票系统网站
  • 增城百度做网站多少钱网站的营销推广
  • 深入了解linux网络—— TCP网络通信(下)
  • 论文速览:从ConvNeXt 到 ConvNeXt V2
  • 《P1544 三倍经验》