IDEA2019.3配置Hibernate的详细教程(未使用IDEA的自动化)

yizhihongxing

下面就为你详细讲解“IDEA2019.3配置Hibernate的详细教程(未使用IDEA的自动化)”。

1. 下载Hibernate框架及其相关依赖

首先,要使用Hibernate框架,你需要先下载Hibernate框架及其相关依赖。可以从官方网站https://hibernate.org/orm/下载最新版的Hibernate框架。另外需要注意的是,Hibernate的运行需要JPA(Java Persistence API)的支持,所以还需要下载JPA规范的相关jar包(例如javax.persistence-api.jar)。

2. 配置Hibernate的使用环境

在IDEA中配置Hibernate的使用环境,需要先在Project Structure中为项目添加相关依赖。具体步骤如下:
1. 打开 Project Structure:File -> Project Structure
2. 在左侧菜单中选择 Modules,然后点击“+”号,在弹出的依赖菜单中选择“Jars or directories...”选项,添加下载好的Hibernate和JPA的jar包
3. 进入Project Structure面板的Modules选项卡下的Sources选项卡,将项目的根目录或src目录标记为Source
4. 在Project Structure面板的Modules选项卡下的Libraries选项卡中找到添加进去的JPA jar包,然后设置它们的Scope为Compile,这里示例代码块供参考:

<dependencies>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>5.4.26.Final</version>
    </dependency>
    <dependency>
        <groupId>javax.persistence</groupId>
        <artifactId>javax.persistence-api</artifactId>
        <version>2.2</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>5.4.26.Final</version>
    </dependency>
</dependencies>

3. 配置Hibernate的数据库连接

配置Hibernate可以连接使用的数据库,需要在项目的classpath下新建一个名为hibernate.cfg.xml的文件,该文件中包含了Hibernate的所有配置信息。示例代码块如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <!-- 数据库连接配置 -->
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test?characterEncoding=utf-8</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">123456</property>

        <!-- hibernate异步执行 -->
        <property name="hibernate.order_inserts">true</property>
        <property name="hibernate.jdbc.batch_size">50</property>
        <property name="hibernate.order_updates">true</property>

        <!-- 打印所有sql -->
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.format_sql">true</property>
        <property name="hibernate.use_sql_comments">true</property>

        <!-- 配置持久化对象 -->
        <mapping class="com.somewhat.test.User"/>

    </session-factory>
</hibernate-configuration>

其中示例代码配置的是MySQL数据库,数据库名称为test,用户名为root,密码为123456。

4. 新建实体类并映射

由于Hibernate的设计初衷是为了简化JDBC操作,因此其所操作的持久化对象(POJO)必须要有标准的setter()和getter()方法。定义实体类时,需要按照Hibernate的规范进行实现,并为实体类添加映射关系,将它与数据库中的表进行关联。
下面是一个定义实体类的示例代码:

@Entity
@Table(name = "user")
public class User {
    private Integer id;
    private String name;
    private Integer age;

    @Id
    @Column(name = "id", unique = true, nullable = false)
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    @Column(name = "name", nullable = false, length = 20)
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Column(name = "age", nullable = false)
    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

5. 编写Hibernate DAO层

在Hibernate中,持久化操作的实现都需要借助Hibernate的Session,每个线程的Session是非线程安全的,在使用完后需要进行关闭。可以借助org.springframework.orm.hibernate5.support.HibernateDaoSupport类,它可以封装Session的基本操作,提供一些常用的实现方法。
示例代码:

@Repository("userDao")
public class UserDaoImpl extends HibernateDaoSupport implements UserDao {

    @Autowired
    public UserDaoImpl(SessionFactory sessionFactory) {
        super.setSessionFactory(sessionFactory);
    }

    @Override
    public void add(User user) {
        this.getHibernateTemplate().save(user);
    }

    @Override
    public void delete(Integer id) {
        this.getHibernateTemplate().delete(this.get(id));
    }

    @Override
    public void update(User user) {
        this.getHibernateTemplate().update(user);
    }

    @Override
    public User get(Integer id) {
        return this.getHibernateTemplate().get(User.class, id);
    }

    @Override
    public List<User> queryAll() {
        return (List<User>) this.getHibernateTemplate().find("from User");
    }
}

6. 测试代码

在完成Hibernate DAO层后,我们可以编写一个简单的测试代码,来测试hibernate的增删改查操作是否正常。示例代码如下:

@RunWith(SpringRunner.class)
@SpringBootTest
public class UserDaoImplTest {

    @Autowired
    private UserDao userDao;

    @Test
    public void add() {
        User user = new User();
        user.setName("测试");
        user.setAge(20);

        userDao.add(user);
    }

    @Test
    public void delete() {
        userDao.delete(1);
    }

    @Test
    public void update() {
        User user = userDao.get(1);
        user.setAge(30);

        userDao.update(user);
    }

    @Test
    public void get() {
        User user = userDao.get(1);
        System.out.println(user.getName() + ", " + user.getAge());
    }

    @Test
    public void queryAll() {
        List<User> userList = userDao.queryAll();
        for (User user : userList) {
            System.out.println(user.getName() + ", " + user.getAge());
        }
    }
}

至此,我们就完成了IDEA2019.3配置Hibernate的详细教程(未使用IDEA的自动化)。

希望我的回答能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:IDEA2019.3配置Hibernate的详细教程(未使用IDEA的自动化) - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • JSP实现从不同服务器上下载文件的方法

    下面我将详细讲解“JSP实现从不同服务器上下载文件的方法”的完整攻略。 一、实现思路 要实现从不同服务器上下载文件的功能,我们需要对文件的源服务器进行读取和对下载请求的目标服务器进行写入。由于JSP的服务器端脚本特性,我们可以通过JSP页面来实现这一功能。 JSP页面可以在后台通过Java代码读取文件,并将文件以二进制流的形式输出到前端,从而达到下载文件的目…

    Java 2023年6月15日
    00
  • SSH框架网上商城项目第16战之Hibernate二级缓存处理首页热门显示

    首先对于这个攻略的标题,我们可以进行分析理解。 “SSH框架网上商城项目”:这个部分是指网上商城项目所使用的技术框架或开发方式,其中SSH框架通常指的是Spring + Struts2 + Hibernate。 “第16战”:这个部分是指在整个项目中,这是第16个完成的模块或任务。 “Hibernate二级缓存处理”:这个部分是指在这个模块中,我们要讲解的是…

    Java 2023年5月20日
    00
  • ibatis学习之搭建Java项目

    下面是关于“ibatis学习之搭建Java项目”的完整攻略: 第一步:项目环境搭建 在开始使用ibatis进行Java开发之前,我们首先需要搭建好开发环境,包括: 安装JDK环境:首先需要安装Java Development Kit(JDK),并配置好环境变量。 安装Eclipse IDE:选择一个常用的IDE,如Eclipse IDE,安装并配置好开发环境…

    Java 2023年5月19日
    00
  • Hibernate5新特性介绍

    Hibernate5新特性介绍 Hibernate是一个广泛使用的ORM(对象关系映射)框架,致力于使得数据库的操作变得更为容易和快捷。而在Hibernate5中,新增了一些重要的特性,既改善了ORM的用法,又增强了其性能和扩展性。本篇文章将会介绍Hibernate5中的一些新特性,并带有相应的示例,以便让读者更好地理解和使用。 JPA2.1规范的实现 Hi…

    Java 2023年5月19日
    00
  • springboot使用spring-data-jpa操作MySQL数据库

    下面是使用Spring Boot和Spring Data JPA操作MySQL数据库的完整攻略: 第一步:创建Spring Boot项目 我们可以使用Spring Initializr创建一个新的Spring Boot项目。在创建项目时,勾选“Spring Web”和“Spring Data JPA”两个选项,这样Spring Boot就会自动添加相关依赖。…

    Java 2023年5月20日
    00
  • Java之Spring Boot创建和使用

    下面我将为您讲解Java中Spring Boot创建和使用的完整攻略,包含以下内容: 什么是Spring Boot Spring Boot的优点和缺点 Spring Boot的创建和环境搭建 Spring Boot的配置文件 Spring Boot的依赖管理及Maven配置 Spring Boot的注解 Spring Boot的常用开发模式 Spring B…

    Java 2023年5月19日
    00
  • 详解Springboot之整合JDBCTemplate配置多数据源

    我来详细讲解“详解Springboot之整合JDBCTemplate配置多数据源”的完整攻略。 什么是JDBCTemplate? Spring框架中提供了JDBCTemplate作为JDBC的一个轻量级封装,使得代码更加简洁,大量减少代码冗余,同时提供了异常处理与事务处理的支持。 JDBCTemplate的作用 JDBCTemplate主要进行以下操作:- …

    Java 2023年5月20日
    00
  • 强烈推荐-ajax开发者必看的文章第3/3页

    让我为您详细讲解一下“强烈推荐-ajax开发者必看的文章第3/3页”的完整攻略。 强烈推荐-ajax开发者必看的文章第3/3页 1. Ajax简介 Ajax是一种基于现有标准的web开发技术,主要运用JavaScript、XML、CSS、DOM等技术实现异步加载数据和局部刷新的效果。它的优点是可以提高web应用的交互效率,减轻服务器压力,提升用户体验。 2.…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部