hibernate框架入门(增删改查)

您所在的位置:网站首页 php实现增删改查期末总结报告 hibernate框架入门(增删改查)

hibernate框架入门(增删改查)

2023-07-19 23:25| 来源: 网络整理| 查看: 265

转载请标明出处:https://blog.csdn.net/men_ma/article/details/106847165. 本文出自 不怕报错 就怕不报错的小猿猿 的博客

hibernate框架入门(增删改查) hibernate框架简介1.基于maven项目上用hibernate做增删改查(步骤)1.1 配置pom.xml(注意版本号) 1.2 配置web.xml1.3 配置hibernate.cfg.xml(文件名必须一样)1.4 编写实体类User.java(根据数据库)1.5 写测试类(增删改查)1.5.1 查询功能1.5.2 增加功能1.5.3 修改功能1.5.4 删除功能 总结

hibernate框架简介

它是一个ORM框架/持久层框架,也是jdbc的一个框架,object reference mapping(全称:对象关系映射),什么意思呢,以前我们操作数据库分六部走,加载驱动、执行sql到关闭资源这一过程六个步骤,那么hibernate呢,他就做到一点,只需一步,操作数据库就可以了,不用我们写SQL语句,也不用配置servlet,可以动态调用方法,它简化的是我们数据库的操作这一块

1.基于maven项目上用hibernate做增删改查(步骤) 1.1 配置pom.xml(注意版本号)

pom.xml:

4.0.0 com.xiaoqing xiao_hibernateFirst war 0.0.1-SNAPSHOT xiao_hibernateFirst Maven Webapp http://maven.apache.org 4.0.1 3.8.1 5.1.44 1.2 8.0.47 5.2.12.Final junit junit ${junit.version} test javax.servlet javax.servlet-api ${servlet.version} provided mysql mysql-connector-java ${Mysql.version} javax.servlet jstl ${JSTL.version} org.apache.tomcat tomcat-jsp-api ${tomcat.version} org.hibernate hibernate-core ${hibernate.version} xiao_hibernateFirst org.apache.maven.plugins maven-compiler-plugin 3.7.0 1.8 1.8 UTF-8

检查jar包是否下载完整:

在这里插入图片描述

1.2 配置web.xml

web.xml:

Archetype Created Web Application encodingFiter com.xiaoqing.util.EncodingFiter encodingFiter /* struts2Filter org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter struts2Filter *.action 1.3 配置hibernate.cfg.xml(文件名必须一样)

目录: 在这里插入图片描述 数据库表: 在这里插入图片描述

hibernate.cfg.xml配置DTD约束(方法,技巧): 目的:出现如下图所示 在这里插入图片描述 方法及技巧: 在这里插入图片描述 展开之后再滑到最后 在这里插入图片描述 在这里插入图片描述 现成代码如下:hibernate.cfg.xml(整个配置)

root 123 jdbc:mysql://localhost:3306/t243?useUnicode=true;characterEncoding=UTF-8;userSSL=false com.mysql.jdbc.Driver org.hibernate.dialect.MySQLDialect thread true true 1.4 编写实体类User.java(根据数据库)

在这里插入图片描述

User.java:

public class User implements Serializable{ private Integer id; private String userName; private String userPwd; private String realName; private String sex; private Date birthday; private Timestamp createDatetime; private String remark; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUserPwd() { return userPwd; } public void setUserPwd(String userPwd) { this.userPwd = userPwd; } public String getRealName() { return realName; } public void setRealName(String realName) { this.realName = realName; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public Timestamp getCreateDatetime() { return createDatetime; } public void setCreateDatetime(Timestamp createDatetime) { this.createDatetime = createDatetime; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } @Override public String toString() { return "User [id=" + id + ", userName=" + userName + ", userPwd=" + userPwd + ", realName=" + realName + ", sex=" + sex + ", birthday=" + birthday + ", createDatetime=" + createDatetime + ", remark=" + remark + "]"; } public User(Integer id, String userName, String userPwd, String realName, String sex, Date birthday, Timestamp createDatetime, String remark) { this.id = id; this.userName = userName; this.userPwd = userPwd; this.realName = realName; this.sex = sex; this.birthday = birthday; this.createDatetime = createDatetime; this.remark = remark; } public User( String userName, String userPwd, String realName, String sex, Date birthday,String remark) { this.userName = userName; this.userPwd = userPwd; this.realName = realName; this.sex = sex; this.birthday = birthday; this.remark = remark; } public User() { } }

根据实体类再配置一个User.hbm.xml文件(注意:有多少个实体类就配置多少个xml文件,并且xml文件要与实体类User放同一目录下):

这里的xml也要配置DTD约束,与前面的 hibernate.hbm.xml步骤差不多,最后一步有点区别

在这里插入图片描述 在这里插入图片描述

展开之后再滑到最后

在这里插入图片描述

User.hbm.xml:

记得配置好之后再回到hibernate.cfg,xml中的后面加上实体类映射文件(千万别忘了) 在这里插入图片描述

1.5 写测试类(增删改查) 1.5.1 查询功能

查询QueryDemo:

package com.xiaoqing.one.test; import java.util.List; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; /** * hibernate 中的查询案例 * @author 晴sister * */ public class QueryDemo { public static void main(String[] args) { // 对hibernate.cfg.xml进行建模拿到sessionfactory工厂 Configuration configure = new Configuration().configure("hibernate.cfg.xml"); SessionFactory sessionFactory = configure.buildSessionFactory(); // 通过工厂获取到session会话(操作数据库的) Session session = sessionFactory.openSession(); // 直接操作数据库 List list = session.createQuery(" from User").list(); for (Object object : list) { System.out.println(object); } // 关闭资源 session.close(); } }

结果: 在这里插入图片描述

1.5.2 增加功能

增加AddDome:

/** * hibernate中的增加案例 * @author 晴sister * */ public class AddDemo { public static void main(String[] args) { // 对hibernate.cfg.xml进行建模拿到sessionfactory工厂 Configuration configure = new Configuration().configure("hibernate.cfg.xml"); SessionFactory sessionFactory = configure.buildSessionFactory(); // 通过工厂获取到session会话(操作数据库的) Session session = sessionFactory.openSession(); // 获取事务对象 Transaction transaction = session.beginTransaction(); // 直接操作数据库 session.save(new User("xiaoqing", "123456", "小晴", "男", new Date(System.currentTimeMillis()), "暂无")); // 提交事务 transaction.commit(); // 关闭资源 session.close(); } }

结果: 在这里插入图片描述

在这里插入图片描述

1.5.3 修改功能

修改EditDome:

/** * hibernate中的修改案例 * @author 晴sister * */ public class EditDemo { public static void main(String[] args) { // 对hibernate.cfg.xml进行建模拿到sessionfactory工厂 Configuration configure = new Configuration().configure("hibernate.cfg.xml"); SessionFactory sessionFactory = configure.buildSessionFactory(); // 通过工厂获取到session会话(操作数据库的) Session session = sessionFactory.openSession(); // 获取事务对象 Transaction transaction = session.beginTransaction(); // 直接操作数据库 // 修改方式一: /* User user=new User("xiaoqing2", "123456", "小晴", "男", new Date(System.currentTimeMillis()), "暂无2"); user.setId(15); session.update(user);*/ // 修改方式二:常用 User user=session.get(User.class, 15); System.out.println(user); user.setRealName("小晴3"); // 提交事务 transaction.commit(); // 关闭资源 session.close(); } }

结果: 在这里插入图片描述 在这里插入图片描述

1.5.4 删除功能

删除DelDemo:

/** * hibernate中的删除案例 * @author 晴sister * */ public class DelDemo { public static void main(String[] args) { // 对hibernate.cfg.xml进行建模拿到sessionfactory工厂 Configuration configure = new Configuration().configure("hibernate.cfg.xml"); SessionFactory sessionFactory = configure.buildSessionFactory(); // 通过工厂获取到session会话(操作数据库的) Session session = sessionFactory.openSession(); // 获取事务对象 Transaction transaction = session.beginTransaction(); // 直接操作数据库 User user=new User(); user.setId(15); session.delete(user); // 提交事务 transaction.commit(); // 关闭资源 session.close(); } }

结果: 在这里插入图片描述

总结

今天就分享到这里啦!!!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3