Intellij IDEA 如何通过数据库表生成带注解的实体类(图文详细教程)

 更新时间:2019年11月22日 09:35:34   作者:悠悠-我心  
这篇文章主要介绍了Intellij IDEA 如何通过数据库表生成带注解的实体类(图文详细教程),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

第一步:新建一个Maven项目。项目的名称为JpaDemo。

我这里是通过idea插件对应的spring项目生成器https://start.spring.io,直接生成项目。如图:

下一步,修改成对应项目的基本信息。如图:

选择相应的依赖jar包。

选择项目的位置

完成创建

温馨提示,之前需要安装好maven。

第二步:配置数据库连接。

选择Mysql。

配置数据库基本信息

其实配置了这个数据库连接之后,是可以直接通过脚本进行导出数据库实体类了,但是这个导出的实体类比较简陋,需要进行修改比较多,或是需要自己进行修改生成脚本语句。如:

通过generate POJOs.clj即可导出实体类。

需要选一下实体类放置的地方。

效果如下:

但是以上的实体类没有带注解。那么我们通过项目中用到hibernate,或是jpa需要加注解怎么办,总不能一个个注解加上去吧。idea当然不会这么干啦。

使用IntelliJ IDEA快编码速度:我们程序员的工作不是写程序,而是写程序解决问题。那我们删了之前生成的实体类。我们重新生成一份带注解的实体类。

第三步:配置hibernate文件。

如果没有配置该配置文件,idea则没有显示出生成实体类的工具选项。

配置一下hibernate配置文件。

在资源文件下新建一个hibernate.cfg.xml配置文件。并输入以下内容。

<?xml version='1.0' encoding='utf-8'?>
 
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
 
<hibernate-configuration>
 
    <session-factory>
 
        <!-- Database connection settings -->
 
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
 
        <property name="connection.url">jdbc:mysql://localhost/test</property>
 
        <property name="connection.username">root</property>
 
        <property name="connection.password">123456</property>
 
        <!-- JDBC connection pool (use the built-in) -->
 
        <!--
        <property name="connection.pool_size">1</property>
         -->
 
        <!-- SQL dialect -->
 
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
 
        <!-- Enable Hibernate's automatic session context management -->
 
        <property name="current_session_context_class">thread</property>
 
 
 
        <!-- Echo all executed SQL to stdout -->
 
        <property name="show_sql">true</property>
 
        <!-- Drop and re-create the database schema on startup -->
 
        <!--
        <property name="hbm2ddl.auto">update</property>
        -->
 
 
 
    </session-factory>
 
</hibernate-configuration>

如图:

第四步:调出idea实体类生成工具。

调出生成实体类的配置工具

保存后。在主面板左侧有persistence,在hibernate图标上点击右键-Generate Persistence Mapping-By Database Scheme。

一开始是没有选中数据源的。

配置选项

(1)数据源选择

(2)生成实体类的位置

(3)实体类的前缀和后缀

(4)可以全选表,或是全不选表

(5)可以生成hibernate的实体类对应的xml文件

(6)展开表之后可以修改对应之间的类型。

第五步:选中需要执行的数据库表。

第六步:查看导出的效果。

生成过程

导出的结果

可以查看其中的一个实体类,看看效果。

package com.souvc.entity;

 

import javax.persistence.Basic;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.Table;

 

/**

* Created by Administrator on 2017/3/22.

*/

@Entity

@Table(name = "authorities", schema = "test", catalog = "")

public class SouvcAuthoritiesEntity {

    private String username;

    private String authority;

 

    @Basic

    @Column(name = "username", nullable = false, length = 50)

    public String getUsername() {

        return username;

    }

 

    public void setUsername(String username) {

        this.username = username;

    }

 

    @Basic

    @Column(name = "authority", nullable = false, length = 50)

    public String getAuthority() {

        return authority;

    }

 

    public void setAuthority(String authority) {

        this.authority = authority;

    }

 

    @Override

    public boolean equals(Object o) {

        if (this == o) return true;

        if (o == null || getClass() != o.getClass()) return false;

 

        SouvcAuthoritiesEntity that = (SouvcAuthoritiesEntity) o;

 

        if (username != null ? !username.equals(that.username) : that.username != null) return false;

        if (authority != null ? !authority.equals(that.authority) : that.authority != null) return false;

 

        return true;

    }

 

    @Override

    public int hashCode() {

        int result = username != null ? username.hashCode() : 0;

        result = 31 * result + (authority != null ? authority.hashCode() : 0);

        return result;

    }

}

hibernate主配置文件

<?xml version='1.0' encoding='utf-8'?>
 
<!DOCTYPE hibernate-configuration PUBLIC
 
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
 
<hibernate-configuration>
 
    <session-factory>
 
        <!-- Database connection settings -->
 
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
 
        <property name="connection.url">jdbc:mysql://localhost:3306/test</property>
 
        <!-- JDBC connection pool (use the built-in) -->
 
        <!--
 
        <property name="connection.pool_size">1</property>
 
         -->
 
        <!-- SQL dialect -->
 
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
 
        <!-- Enable Hibernate's automatic session context management -->
 
        <property name="current_session_context_class">thread</property>
 
 
 
        <!-- Echo all executed SQL to stdout -->
 
        <property name="show_sql">true</property>
 
        <mapping class="com.souvc.entity.SouvcAuthoritiesEntity"/>
 
        <mapping resource="com/souvc/entity/SouvcAuthoritiesEntity.hbm.xml"/>
 
        <mapping resource="com/souvc/entity/SouvcCustomEntity.hbm.xml"/>
 
        <mapping class="com.souvc.entity.SouvcCustomEntity"/>
 
        <mapping class="java.lang.String"/>
 
        <mapping resource="java/lang/java.lang.String.hbm.xml"/>
 
        <mapping class="com.souvc.entity.SouvcRcDataDictionaryEntity"/>
 
        <mapping resource="com/souvc/entity/SouvcRcDataDictionaryEntity.hbm.xml"/>
 
        <mapping class="com.souvc.entity.SouvcRcDataDictionaryListEntity"/>
 
        <mapping resource="com/souvc/entity/SouvcRcDataDictionaryListEntity.hbm.xml"/>
 
        <mapping class="com.souvc.entity.SouvcRcEmailAccountInfoEntity"/>
 
        <mapping resource="com/souvc/entity/SouvcRcEmailAccountInfoEntity.hbm.xml"/>
 
        <mapping class="com.souvc.entity.SouvcRcEmailInfoEntity"/>
 
        <mapping resource="com/souvc/entity/SouvcRcEmailInfoEntity.hbm.xml"/>
 
        <mapping class="com.souvc.entity.SouvcRcPermissionEntity"/>
 
        <mapping resource="com/souvc/entity/SouvcRcPermissionEntity.hbm.xml"/>
 
        <mapping resource="com/souvc/entity/SouvcRcRoleEntity.hbm.xml"/>
 
        <mapping class="com.souvc.entity.SouvcRcRoleEntity"/>
 
        <mapping class="com.souvc.entity.SouvcRcRolePermissionsEntity"/>
 
        <mapping resource="com/souvc/entity/SouvcRcRolePermissionsEntity.hbm.xml"/>
 
        <mapping class="com.souvc.entity.SouvcRcUserEntity"/>
 
        <mapping resource="com/souvc/entity/SouvcRcUserEntity.hbm.xml"/>
 
        <mapping class="com.souvc.entity.SouvcRcUserLoginLogsEntity"/>
 
        <mapping resource="com/souvc/entity/SouvcRcUserLoginLogsEntity.hbm.xml"/>
 
        <mapping class="com.souvc.entity.SouvcRcUserRoleEntity"/>
 
        <mapping resource="com/souvc/entity/SouvcRcUserRoleEntity.hbm.xml"/>
 
        <mapping class="com.souvc.entity.SouvcRoleEntity"/>
 
        <mapping resource="com/souvc/entity/SouvcRoleEntity.hbm.xml"/>
 
        <mapping class="com.souvc.entity.SouvcUserEntity"/>
 
        <mapping resource="com/souvc/entity/SouvcUserEntity.hbm.xml"/>
 
        <mapping class="com.souvc.entity.SouvcUserRoleEntity"/>
 
        <mapping resource="com/souvc/entity/SouvcUserRoleEntity.hbm.xml"/>
 
        <mapping class="com.souvc.entity.SouvcUsersEntity"/>
 
        <mapping resource="com/souvc/entity/SouvcUsersEntity.hbm.xml"/>
 
        <!-- Drop and re-create the database schema on startup -->
 
        <!--
 
        <property name="hbm2ddl.auto">update</property>
 
        -->
 
 
 
    </session-factory>
 
</hibernate-configuration>

其他配置文件 、

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.souvc.entity.SouvcAuthoritiesEntity" table="authorities" schema="test">
        <property name="username">
            <column name="username" sql-type="varchar(50)" length="50"/>
        </property>
        <property name="authority">
            <column name="authority" sql-type="varchar(50)" length="50"/>
        </property>
    </class>
</hibernate-mapping>

第七步:修正。

如果还没有符合项目的要求,那么我们可以自己进行修改一下。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Spring中的FactoryBean与BeanFactory详细解析

    Spring中的FactoryBean与BeanFactory详细解析

    这篇文章主要介绍了Spring中的FactoryBean与BeanFactory详细解析,在Spring框架中,FactoryBean和BeanFactory是两个关键的接口,用于创建和管理对象实例,它们在Spring的IoC(Inversion of Control,控制反转)容器中发挥着重要的作用,需要的朋友可以参考下
    2023-11-11
  • Java使用POI生成Word文档简单代码示例

    Java使用POI生成Word文档简单代码示例

    Java POI是一个用于操作Microsoft Office格式文件的Java库,包括 Word、Excel和PowerPoint等文件,这篇文章主要给大家介绍了关于Java使用POI生成Word文档的相关资料,需要的朋友可以参考下
    2024-08-08
  • 学习Java多线程之线程定义、状态和属性

    学习Java多线程之线程定义、状态和属性

    这篇文章主要为大家详细介绍了Java多线程之线程定义、状态和属性,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • 在Java中轻松使用工厂设计模式介绍

    在Java中轻松使用工厂设计模式介绍

    这篇文章主要介绍了在Java中轻松使用工厂设计模式介绍,工厂设计模式或工厂方法设计模式是一种广泛使用且易于理解的设计模式,文章通过围绕主题展开详细的内容介绍,感兴趣的朋友可以参考一下
    2022-09-09
  • 浅谈Java中SimpleDateFormat 多线程不安全原因

    浅谈Java中SimpleDateFormat 多线程不安全原因

    SimpleDateFormat是Java中用于日期时间格式化的一个类,本文主要介绍了浅谈Java中SimpleDateFormat 多线程不安全原因,感兴趣的可以了解一下
    2024-01-01
  • Java实现登录和注册案例

    Java实现登录和注册案例

    这篇文章主要为大家详细介绍了Java实现登录和注册案例,把用户信息存进集合,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • SpringMVC ajax请求的处理方法介绍

    SpringMVC ajax请求的处理方法介绍

    Ajax即异步的 JavaScript和XML,是一种无需重新加载整个网页的情况下,能够更新部分模块的网页技术,下面这篇文章主要给大家介绍了关于SpringMVC Ajax请求的处理,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • 基于mybatis中<include>标签的作用说明

    基于mybatis中<include>标签的作用说明

    这篇文章主要介绍了基于mybatis中<include>标签的作用说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Maven坐标和依赖的实现示例

    Maven坐标和依赖的实现示例

    本文主要介绍了Maven坐标和依赖的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-04-04
  • Springboot双mongodb配置方式

    Springboot双mongodb配置方式

    这篇文章主要介绍了Springboot双mongodb配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05

最新评论