This article mainly introduces Hibernate's example code for database deletion, search, and update operations. It has certain reference value. Interested friends can refer to it.
This section continues hibernate's other operations on the database. Operation, delete, query, modify.
Hibernate's data deletion operation
To delete a piece of data in the User table, you need to delete it with the primary key id value of the User table . First, the corresponding object is queried from the database based on the id value. There are two methods that can be used: one is the get method of session, and the other is the load method of session.
Get method of Session: Calling this method will return an Object object. Then we cast it. Useruser = (User)session.get(User.class,” 402881e5441c035e01441c0360510003”); When we pass the id value to find no corresponding result in the data, the get method will return a null value.
Difference: When the get method is loaded, it will immediately issue a sql statement to query, while the load method does not immediately issue a sql statement to query when it is executed, and a proxy User is generated, but no real User is generated. The real User will be loaded when we actually use this user. Load() supports lazy loading, while Get() does not. Get returns a null object when the loaded object does not exist, and Load() throws an ObjectNotFoundException when the loaded object does not exist.
Load method of Session: This method is also called to return an Object object, and then forced conversion is performed.
Then we load the object corresponding to the user table id through get or load, and then call the delete method of session to delete the object and delete a record in the table. The code is as follows Show.
The first deletion method
publicvoid testDel1() { Sessionsession =null; try { session= HibernateUtils.getSession(); //开启事务. session.beginTransaction(); //采用load查询不存在的数据,hibernate会抛出object not found exception Useruser = (User)session.load(User.class,"402881e5441c035e01441c0360510003"); //删除表中的记录. //删除,建议用此种方式删除,先加载再删除. session.delete(user); //提交事务.把内存的改变提交到数据库上. session.getTransaction().commit(); }catch(Exception e){ e.printStackTrace(); session.getTransaction().rollback(); }finally{ HibernateUtils.closeSession(session); } }
The second deletion method is to manually construct the detached object and then delete. The code is shown below.
//测试方法以test开头.测试del方法.返回存在的加载的. publicvoid testDel2() { Sessionsession =null; try { session= HibernateUtils.getSession(); //开启事务. session.beginTransaction(); //手动构造的Detached对象. Useruser =new User(); user.setId("402881e4441b3d1c01441b3f5dfe0001"); session.delete(user); //提交事务.把内存的改变提交到数据库上. session.getTransaction().commit(); }catch(Exception e){ e.printStackTrace(); session.getTransaction().rollback(); }finally{ HibernateUtils.closeSession(session); } }
Hibernate performs data query operations
General query, the code is as follows.
//查询方法. publicvoid testQuery1() { Sessionsession =null; try { session= HibernateUtils.getSession(); session.beginTransaction(); //参数是一个字符串,是HQL的查询语句.注意此时的的UserU为大写,为对象的,而不是表的. Queryquery = session.createQuery("from User"); //使用List方法. ListuserList = query.list(); //迭代器去迭代. for(Iteratoriter=userList.iterator();iter.hasNext();) { Useruser =(User)iter.next(); System.out.println("id="+user.getId() + "name="+user.getName()); } session.getTransaction().commit(); }catch(Exception e){ e.printStackTrace(); session.getTransaction().rollback(); }finally{ HibernateUtils.closeSession(session); } }
PagingQuery, the code is as follows.
//分页查询,从什么地方查,查几个; publicvoid testQuery2() { Sessionsession =null; try { session=HibernateUtils.getSession(); session.beginTransaction(); //参数是一个字符串,是HQL的查询语句.注意此时的的UserU为大写,为对象的,而不是表的. Queryquery = session.createQuery("from User"); //从第一个开始查起.可以设置从第几个查起. query.setFirstResult(0); //最大条数为两个 query.setMaxResults(2); //使用List方法. ListuserList = query.list(); //迭代器去迭代. for(Iteratoriter=userList.iterator();iter.hasNext();) { Useruser =(User)iter.next(); System.out.println("id="+user.getId() + "name="+user.getName()); } session.getTransaction().commit(); }catch(Exception e){ e.printStackTrace(); session.getTransaction().rollback(); }finally{ HibernateUtils.closeSession(session); } }
Hibernate's data update operation
Manually construct the detached object and call the session's update() Method, the code is as follows.
//测试方法以test开头.测试update方法.返回存在的加载的. publicvoid testUpdate1() { Sessionsession =null; try { session= HibernateUtils.getSession(); //开启事务. session.beginTransaction(); //采用load查询不存在的数据,hibernate会抛出object not found exception //手动构造的Detached对象. Useruser =newUser(); user.setId("402881e5441bfb0601441bfb075b0002"); user.setName("周六"); session.update(user); //提交事务.把内存的改变提交到数据库上. session.getTransaction().commit(); }catch(Exception e){ e.printStackTrace(); session.getTransaction().rollback(); }finally{ HibernateUtils.closeSession(session); } }
Load the object, call the update() method of the session, and perform the update operation when the object is in the persistent state. The code is as follows shown.
//测试方法以test开头.测试update方法.返回存在的加载的. publicvoid testUpdate2() { Sessionsession =null; try { session= HibernateUtils.getSession(); //开启事务. session.beginTransaction(); //采用load查询不存在的数据,hibernate会抛出object not found exception //先把要更新的查出来. //建议采用此种方式,先加载再更新的方式. Useruser = (User)session.load(User.class,"402881e5441bfb0601441bfb075b0002"); //查出来的话就直接放入了.处于持久化状态. user.setName("周日"); //显示的调用,因为为持久化状态也可以不显示调用. session.update(user); //提交事务.把内存的改变提交到数据库上. session.getTransaction().commit(); }catch(Exceptione){ e.printStackTrace(); session.getTransaction().rollback(); }finally{ HibernateUtils.closeSession(session); } }
【Related recommendations】
1. Special recommendation: "php Programmer Toolbox" V0.1 version download
The above is the detailed content of Detailed explanation of the code for Hibernate to complete CRUD operations. For more information, please follow other related articles on the PHP Chinese website!

Bytecodeachievesplatformindependencebybeingexecutedbyavirtualmachine(VM),allowingcodetorunonanyplatformwiththeappropriateVM.Forexample,JavabytecodecanrunonanydevicewithaJVM,enabling"writeonce,runanywhere"functionality.Whilebytecodeoffersenh

Java cannot achieve 100% platform independence, but its platform independence is implemented through JVM and bytecode to ensure that the code runs on different platforms. Specific implementations include: 1. Compilation into bytecode; 2. Interpretation and execution of JVM; 3. Consistency of the standard library. However, JVM implementation differences, operating system and hardware differences, and compatibility of third-party libraries may affect its platform independence.

Java realizes platform independence through "write once, run everywhere" and improves code maintainability: 1. High code reuse and reduces duplicate development; 2. Low maintenance cost, only one modification is required; 3. High team collaboration efficiency is high, convenient for knowledge sharing.

The main challenges facing creating a JVM on a new platform include hardware compatibility, operating system compatibility, and performance optimization. 1. Hardware compatibility: It is necessary to ensure that the JVM can correctly use the processor instruction set of the new platform, such as RISC-V. 2. Operating system compatibility: The JVM needs to correctly call the system API of the new platform, such as Linux. 3. Performance optimization: Performance testing and tuning are required, and the garbage collection strategy is adjusted to adapt to the memory characteristics of the new platform.

JavaFXeffectivelyaddressesplatforminconsistenciesinGUIdevelopmentbyusingaplatform-agnosticscenegraphandCSSstyling.1)Itabstractsplatformspecificsthroughascenegraph,ensuringconsistentrenderingacrossWindows,macOS,andLinux.2)CSSstylingallowsforfine-tunin

JVM works by converting Java code into machine code and managing resources. 1) Class loading: Load the .class file into memory. 2) Runtime data area: manage memory area. 3) Execution engine: interpret or compile execution bytecode. 4) Local method interface: interact with the operating system through JNI.

JVM enables Java to run across platforms. 1) JVM loads, validates and executes bytecode. 2) JVM's work includes class loading, bytecode verification, interpretation execution and memory management. 3) JVM supports advanced features such as dynamic class loading and reflection.

Java applications can run on different operating systems through the following steps: 1) Use File or Paths class to process file paths; 2) Set and obtain environment variables through System.getenv(); 3) Use Maven or Gradle to manage dependencies and test. Java's cross-platform capabilities rely on the JVM's abstraction layer, but still require manual handling of certain operating system-specific features.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SublimeText3 Chinese version
Chinese version, very easy to use

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function
