快速生成实体类介绍

快速生成实体类介绍

快速生成实体类有多种方式,这次主要介绍两种:

    1、idea 从数据库快速生成Spring Data JPA实体类。

    2、通过Mybatis generator工具生成实体类。

  • idea 从数据库快速生成Spring Data JPA实体类

 方法一  通过groovy模板快速生成

     配置数据库

    view -> Tool Windows -> Database

快速生成实体类介绍_第1张图片

    + -> Data source -> Oracle(其他数据库同理)

快速生成实体类介绍_第2张图片

配置数据库信息

快速生成实体类介绍_第3张图片

建立存放实体的包

快速生成实体类介绍_第4张图片

导入必要maven依赖

  如果是oracle数据库,添加oracle依赖



    com.oracle
    ojdbc6
    11.2.0.1.0

   如果是mysql,添加mysql依赖

    
        
            mysql
            mysql-connector-java
            5.1.21
        
       

    其他依赖


        
            org.springframework.boot
            spring-boot-starter-data-jpa
        
        
        
            org.projectlombok
            lombok
            true
        

在database视图区域任意地方右键,然后Scripted Extensions -> Go to Scripts Directory

快速生成实体类介绍_第5张图片

 

快速生成实体类介绍_第6张图片

若没有Generate POJOs.groovy文件,新增Generate POJOs.groovy文件。 Groovy 模板引擎

文件内容为:

import com.intellij.database.model.DasTable
import com.intellij.database.model.ObjectKind
import com.intellij.database.util.Case
import com.intellij.database.util.DasUtil


/*
* Available context bindings:
*   SELECTION   Iterable
*   PROJECT     project
*   FILES       files helper
*/


packageName = "com.sample;"
typeMapping = [
  (~/(?i)int/)                      : "long",
  (~/(?i)float|double|decimal|real/): "double",
  (~/(?i)datetime|timestamp/)       : "java.sql.Timestamp",
  (~/(?i)date/)                     : "java.sql.Date",
  (~/(?i)time/)                     : "java.sql.Time",
  (~/(?i)/)                         : "String"
]


FILES.chooseDirectoryAndSave("Choose directory", "Choose where to store generated files") { dir ->
  SELECTION.filter { it instanceof DasTable && it.getKind() == ObjectKind.TABLE }.each { generate(it, dir) }
}


def generate(table, dir) {
  def className = javaName(table.getName(), true)
  def fields = calcFields(table)
  new File(dir, className + ".java").withPrintWriter { out -> generate(out, className, fields) }
}


def generate(out, className, fields) {
  out.println "package $packageName"
  out.println ""
  out.println ""
  out.println "public class $className {"
  out.println ""
  fields.each() {
    if (it.annos != "") out.println "  ${it.annos}"
    out.println "  private ${it.type} ${it.name};"
  }
  out.println ""
  fields.each() {
    out.println ""
    out.println "  public ${it.type} get${it.name.capitalize()}() {"
    out.println "    return ${it.name};"
    out.println "  }"
    out.println ""
    out.println "  public void set${it.name.capitalize()}(${it.type} ${it.name}) {"
    out.println "    this.${it.name} = ${it.name};"
    out.println "  }"
    out.println ""
  }
  out.println "}"
}


def calcFields(table) {
  DasUtil.getColumns(table).reduce([]) { fields, col ->
    def spec = Case.LOWER.apply(col.getDataType().getSpecification())
    def typeStr = typeMapping.find { p, t -> p.matcher(spec).find() }.value
    fields += [[
                 name : javaName(col.getName(), false),
                 type : typeStr,
                 annos: ""]]
  }
}


def javaName(str, capitalize) {
  def s = com.intellij.psi.codeStyle.NameUtil.splitNameIntoWords(str)
    .collect { Case.LOWER.apply(it).capitalize() }
    .join("")
    .replaceAll(/[^\p{javaJavaIdentifierPart}[_]]/, "_")
  capitalize || s.length() == 1? s : Case.LOWER.apply(s[0]) + s[1..-1]
}

在database视图区域选择你想要生成的表,然后Scripted Extensions -> Generate POJOs.groovy 可以使用Shift和Ctrl多选

快速生成实体类介绍_第7张图片

快速生成实体类介绍_第8张图片

 方法二 通过Persistence快速生成

配置数据库连接同上(方法一中的数据库连接)

调出 Persistence 窗口 

配置数据库连接同上(方法一中的数据库连接)

调出 Persistence 窗口

File—>Project Structure—>model—> + —>JPA

快速生成实体类介绍_第9张图片

打开 Persistence窗口

快速生成实体类介绍_第10张图片

配置生成实体类的参数

1.数据源,即链接数据库的信息,按要求填写数据库信息即可

2.生成实体类的位置.

3.实体类名称前缀.

4.实体类名称后缀. 这里我写Entity. 比如数据库表名为 user,那么生成实体类为 UserEntity

5.选择哪些表的哪些字段生成实体类.这里我全选.

6.生成的实体类自动添加 JPA注解.

快速生成实体类介绍_第11张图片

快速生成实体类介绍_第12张图片

快速生成实体类介绍_第13张图片

  • 通过Mybatis generator工具生成实体类

 

 

方法一:通过idea自动生成

选择上面配置的数据源,并在中找到需要生成的对应的数据库表。

快速生成实体类介绍_第14张图片

选择mybatis-generator,并制定对应entity,dao,mapper的生成位置。

快速生成实体类介绍_第15张图片

 

方法二:

1、IDEA创建maven工程(略)

2、 在maven项目的pom.xml 添加mybatis-generator-maven-plugin 插件和MySQL数据库驱动依赖

 
    
      
        org.mybatis.generator
        mybatis-generator-maven-plugin
        1.3.5
        
          true
          true
        
      
    
  


      mysql
      mysql-connector-java
      5.1.25

3、在maven项目下的src/main/resources 目录下建立名为 generatorConfig.xml的配置文件,作为mybatis-generator-maven-plugin 插件的执行目标,模板如下:




    
    
    
        
        
            
            
            
        

        

        
        
            
            
        

        
        
            
        

        
        
            
        

 
        

MyBatis Generator 详解。参考:

https://blog.csdn.net/isea533/article/details/42102297

4、使用maven运行mybatis-generator-maven-plugin插件:工程名->Plugins->mybatis-generator->mybatis-generator:generate->Run Maven Build

快速生成实体类介绍_第16张图片快速生成实体类介绍_第17张图片

5、自动生成的结构如下:

快速生成实体类介绍_第18张图片快速生成实体类介绍_第19张图片

如果你觉得这篇文章对你有帮助或启发,也可以来请我喝咖啡。

快速生成实体类介绍_第20张图片

 

你可能感兴趣的:(Java,工具,intellij,idea,java,mybatis,maven)