设为首页 加入收藏

TOP

hibernate入门(二)
2023-08-26 21:11:19 】 浏览:68
Tags:hibernate 入门
on.commit(); } /** * 执行sql查询操作 * @param callback 回调函数 * @return 回调函数的返回值 * @param <R> 回调函数的返回值 */ public static <R> R query(Function<Session, R> callback) { Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); try { R r = callback.apply(session); transaction.commit(); return r; } catch (Exception e) { transaction.rollback(); e.printStackTrace(); return null; } } }

Dao层

package org.example.dao;

import org.example.entity.User;
import org.example.util.SessionFactoryUtil;

import java.util.List;

public class UserDao {

    public void save(User user) {
        SessionFactoryUtil.execute(session -> session.persist(user));
    }

    public void update(User user) {
        SessionFactoryUtil.execute(session -> session.merge(user));
    }

    public void delete(User user) {
        SessionFactoryUtil.execute(session -> session.remove(user));
    }

    public User findById(Long id) {
        return SessionFactoryUtil.query(session -> session.get(User.class, id));
    }

    public List<User> findAll() {
        return SessionFactoryUtil.query(session -> session.createQuery("from User", User.class).list());
    }

    public List<User> findByName(String likeContent) {
        return SessionFactoryUtil.query(session ->
                // 创建query,使用HQL(Hibernate Query Language)查询
                // 1.不用select *
                // 2.参数用?1 ?2 ?3这样的占位符
                // 3.参数的序号从1开始
                session.createQuery("from User as u where u.name like ?1", User.class)
                        // 设置参数
                        .setParameter(1, "%" + likeContent + "%")
                        // 获取list
                        .list());
    }
}
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇由put方法深入了解HashMap 下一篇SpringBoot3文件管理

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目