和之前的内容一样,这次首先需要将持久类中的主键从String改回为int,因为get()方法查询数据库是根据输入的int来查询的.
其次,由于要测试输出查询的内容,需要在持久类中覆写全参的toString()方法.
持久类的变动就这些.
package hiber1;
public class User {
private int uid;
private String username;
private String password;
private String address;
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "User [uid=" + uid + ", username=" + username + ", password=" + password + ", address=" + address + "]";
}
}
其次,创建一个新的测试类,此类需要从工厂类中获得session
package hiber1;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.jupiter.api.Test;
public class HiberGet {
@Test
public void testGet(){
//1.调用工具类(session的工厂类),得到sessionfactory
SessionFactory sessionF = HiberTool.getSessionFactory();
//2.获取session
Session session = sessionF.openSession();
//3.开启事务
Transaction tx = session.beginTransaction();
//4.根据id查询,获取User对象(重点)
User user = session.get(User.class, 2);//第一个参数:实体类.class||第二个参数:id值
System.out.println(user);//直接输出user记得要在User类中重写toString
//5.提交事务
tx.commit();
//6.关闭
session.close();
sessionF.close();
}
}
其余内容就不粘贴了,记得要在xml映射文件中写清楚要获取的数据表名称
最后,输出的内容如下:
- 大小: 58.2 KB
分享到:
相关推荐
- **get** 方法:一旦调用`get`方法,并且指定的ID对应的实体对象不在当前Session的缓存中,Hibernate将立即执行SQL查询语句从数据库加载数据。 - **load** 方法:只有当调用了`load`返回的对象的属性或方法时,...
在PHP开发中,Session是用于跟踪用户状态的一种机制,它在服务器端存储用户信息,而不仅仅是像Cookie那样在客户端存储。然而,PHP默认将Session数据保存在文件系统中,这在高并发或需要持久化Session数据的情况下...
5. `destroy`方法用于销毁一个session,从数据库中删除session数据。 6. `gc`方法是一个垃圾收集函数,在session关闭时调用,用于清理过期的session数据。 值得注意的是,PHP的内置垃圾收集器(session.gc_...
【将 PHP Session 存储到数据库中的方法】 在 PHP 开发中,为了增强安全性、可扩展性和便于管理,有时会需要将 session 数据存储到数据库中,而不是默认的文件系统。以下是一个具体的实例,展示了如何使用 ...
3. 查询数据库初始化配置:使用函数`SF_GET_PAGE_SIZE()`, `SF_GET_EXTENT_SIZE()`, `SF_GET_UNICODE_FLAG()`, `SF_GET_CASE_SENSITIVE_FLAG()` 和 `SF_GET_SYSTEM_PATH()` 来获取数据库的初始设置。 4. 查询数据库...
对于Struts2,我们不需要使用Spring的注解,而是直接在Action方法中获取session。 2. **获取session**:在Action方法中,可以通过`ActionContext`来获取当前的session。例如: ```java ActionContext context = ...
"重写hibernate的session简单增删改查"是一个针对初学者的实践教程,旨在帮助理解如何在Hibernate中自定义Session的操作,以便更好地控制数据库交互。 一、Hibernate Session Hibernate的Session是与数据库交互的...
网页和数据库的交互是Web应用开发中的核心环节,主要涉及数据的增删改查(CRUD)操作。在这个过程中,我们通常使用Java Server Pages (JSP) 作为前端展示,结合Java Database Connectivity (JDBC) 来实现后端与...
3. **GET方法的使用**:作者会详细讲解`Session.get()`方法的用法,包括其参数(通常是实体类的Class对象和对象ID)以及返回值(如果数据库中有匹配的对象,则返回该对象;否则返回null)。 4. **示例代码**:`...
在JSP中,我们可以通过`Class.forName()`加载数据库驱动,然后使用`DriverManager.getConnection()`建立连接,接着创建Statement或PreparedStatement对象来执行SQL语句。 对于用户注册功能,我们需要创建一个新的...
1. **创建数据库连接**:在JavaBean中,使用JDBC驱动建立到Access数据库的连接,这通常涉及到加载驱动、设置连接参数(如数据库路径)并调用`DriverManager.getConnection()`方法。 2. **执行SQL查询**:通过...
4. **删除(Delete)**: 类似于更新操作,用户选择要删除的记录,JSP通过DELETE SQL语句从数据库中移除相应记录。在执行删除操作前,通常会提示用户确认,以防止意外删除。 权限控制: 在Web应用中,权限控制是...
上述内容简要介绍了如何使用 Hibernate 操作数据库。Hibernate 是一个强大的 ORM(Object-Relational Mapping)框架,它将 Java 对象与数据库表映射,简化了数据库交互的过程。通过 Configuration 配置对象读取 ...
- 如果提供的 ID 值不存在于数据库中,`session.get()` 将返回 `null`。 - 当调用 `session.get()` 时,会立即执行 SQL 查询。 **3. session.load()** - **功能**: 类似于 `session.get()`,但只有在实际访问对象...
要从数据库中获取用户信息,我们需要配置Spring Security以连接到我们的数据库。这通常涉及到创建一个自定义的`UserDetailsService`实现,该接口用于加载用户信息。例如,我们可以创建一个名为`...
本教程将深入讲解如何使用Hibernate连接Oracle数据库,并通过代码实例演示数据库的增删改查操作。 首先,我们需要理解Hibernate的核心概念。它允许开发者用面向对象的方式来处理数据库,将Java类映射到数据库表,将...
3. 使用Session:现在,你可以在控制器的方法中像在ASP.NET MVC或Web Forms中一样访问Session。 ```csharp public class ValuesController : ApiController { public IHttpActionResult Get() { // 设置Session...
7. **扩展性**:要连接数据库,可以使用JDBC(Java Database Connectivity)来建立数据库连接,执行SQL查询,将商品信息存储在数据库表中,并将购物车中的操作映射为相应的数据库操作。 8. **安全性**:没有数据库...
`load`和`get`方法是Hibernate中用于检索实体的两种主要方式,它们都是从Session接口中调用,但有明显的区别和各自的适用场景。 1. `load`方法: - `load`方法主要用于根据主键加载对象,它返回一个代理对象,而...