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

下面就为你详细讲解“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日

相关文章

  • Jenkins远程部署war包过程图解

    下面是“Jenkins远程部署war包过程图解”的完整攻略: 1. 概述 Jenkins是一款自动化构建工具,可以实现代码的编译、测试、构建、部署等一系列自动化流程。Jenkins支持远程部署,可以将构建好的war包部署到远程服务器上。 2. 准备工作 在开始远程部署之前,需要做以下准备工作: 确认jenkins服务器和目标服务器之间能够互相访问 在目标服务…

    Java 2023年6月2日
    00
  • CentOS Tomcat 的启动服务脚本

    下面是 CentOS 上启动 Tomcat 服务的脚本完整攻略。 准备工作 首先,在 CentOS 中需要安装 Tomcat 和 JDK。 可以通过如下命令安装: # 安装 JDK yum install java-1.8.0-openjdk # 安装 Tomcat yum install tomcat 编写启动脚本 进入 Tomcat 的 bin 目录,创…

    Java 2023年5月20日
    00
  • 分析Tomcat的工作原理

    分析Tomcat的工作原理 Tomcat是什么 Tomcat是一个开源的Java Servlet容器,Web服务器软件,由Apache软件基金会开发。它使得Java代码可以在Web服务器上运行,是Web应用程序的开发和部署的重要组件。 工作原理 接收请求 Tomcat通过监听指定端口,侦听客户端请求。当客户端请求到达时,Tomcat会创建一个Socket对象…

    Java 2023年5月19日
    00
  • IDEA 格式化SQL代码技巧分享

    下面我将详细讲解“IDEA 格式化 SQL 代码技巧分享”的完整攻略。 格式化 SQL 代码的重要性 在使用 IDEA 进行 SQL 开发时,代码的格式化是非常重要的。优秀的代码格式化可以让我们的代码更加易读、易维护、易扩展,从而提高我们的开发效率。 IDEA 格式化 SQL 代码的几种方式 1.使用快捷键 在 IDEA 中,我们可以使用快捷键来格式化 SQ…

    Java 2023年5月20日
    00
  • SpringMvc请求处理参数 和 响应数据处理的示例详解

    Spring MVC是一种基于Java的Web框架,它提供了一种灵活的方式来处理Web请求和响应。在Spring MVC中,我们可以使用多种方式来处理请求参数和响应数据。本文将详细介绍Spring MVC请求处理参数和响应数据处理的方法,并提供两个示例来说明这些方法的使用。 Spring MVC请求处理参数 在Spring MVC中,我们可以使用多种方式来处…

    Java 2023年5月17日
    00
  • bootstrap 下拉多选框进行多选传值问题代码分析

    下面给出“bootstrap下拉多选框进行多选传值问题代码分析”的完整攻略。 1. 背景 在使用bootstrap开发Web应用时,经常会使用下拉多选框进行多选,但如何将所选的值传递给后端服务器,还是一个值得探讨的问题。 2. 问题 bootstrap的下拉多选框有一个data-selected-text-format属性,它可以控制选中的值的格式,如可以将…

    Java 2023年6月15日
    00
  • Java + Jpcap实现监控 IP包流量

    Java + Jpcap实现监控 IP包流量 说明:本设计是计算机网络课程的课设,因为代码是提前实现的,本博客于后期补上,又因为代码没写注释自己也看不懂了,所以,仅供参考,就当提供一种实现方式。 文中提供的《Jpcap中文API文档》来源于网络,本文仅用于学习交流,如有侵权,可联系我进行删除。 效果图: 1)课程设计要求 1.1 课程设计目的 通过本实课程设…

    Java 2023年4月17日
    00
  • springmvc字符编码过滤器CharacterEncodingFilter的使用

    当我们使用Spring MVC开发Web应用时,可能会发现在处理请求参数时存在中文乱码的问题,这时候我们需要使用字符编码过滤器(CharacterEncodingFilter)来解决这个问题。 以下是使用Spring MVC中字符编码过滤器的步骤: 步骤一:添加依赖项 首先,在项目的pom.xml文件中添加以下依赖项: <dependency> …

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