`
colin4k
  • 浏览: 29865 次
文章分类
社区版块
存档分类
最新评论

ER Studio从设计模型生成JPA Entity

阅读更多
主要是参考ER Studio设计模型 代码生成 。脚本如下:
'利用ER/Studio的Macro生成JPA Entity
'目前对于多对多关联和复合主键的支持还没有完成
'By Colin 2009/3/24
Sub Main()
	Dim fso As Object
	Dim entNames As Variant
	Dim entCount As Variant
	Dim entLoop As Integer
	'ER/Studio variables
	Dim mdl As Model
	Dim subMdl As SubModel
	Dim ent As Entity
	Dim classPath As Variant
	
	classPath = "d:\entity\"

	Set mdl = DiagramManager.ActiveDiagram.ActiveModel
	Set subMdl = mdl.ActiveSubModel
	'get the entities list & count
	subMdl.EntityNames(entNames, entCount)
	'sort the entities by name(alphabetic sort)
	Call dhQuickSort(entNames)
	For entLoop = 0 To entCount - 1
		Set ent = mdl.Entities.Item(entNames(entLoop))
		Set fso = CreateObject("Scripting.FileSystemObject")
		'DAO class file
		Set csFile = fso.CreateTextFile(classPath & AttributeName(StrConv(ent.EntityName,vbLowerCase)) & ".java", True)

		Call WriteEntity(csFile, ent, subMdl.Name)
		csFile.Close
	Next
End Sub
Sub WriteEntity(csFile As Object,ent As Entity, subModelName As String)
	Dim content As String
	'DAO class
	Call Write2File(csFile, NamespaceStart(ent.EntityName, subModelName))
	content = content & vbTab & "/// <summary>" & vbCrLf
	content = content & vbTab & "/// Data Access Object for " & ent.EntityName & vbCrLf
	content = content & vbTab & "/// </summary>" & vbCrLf
	content = content & vbTab & "@Entity" & vbCrLf
	content = content & vbTab & "@Table(name = """ & ent.TableName & """, catalog = ""wcs_db"", uniqueConstraints = {})" & vbCrLf
	content = content & vbTab & "public class  " & AttributeName(StrConv(ent.EntityName,vbLowerCase)) & " extends BaseEntity" & vbCrLf
	content = content & vbTab & "{" & vbCrLf
	content = content & EntityPrivateDeclare(ent) & vbCrLf
	content = content & vbTab & vbTab & "/// <summary>" & vbCrLf
	content = content & vbTab & vbTab & "/// default constructor for " & ent.EntityName & vbCrLf
	content = content & vbTab & vbTab & "/// </summary>" & vbCrLf
	content = content & vbTab & vbTab & "public " & AttributeName(StrConv(ent.EntityName,vbLowerCase)) & "()" & vbCrLf
	content = content & vbTab & vbTab & "{" & vbCrLf
	content = content & vbTab & vbTab & "}" & vbCrLf & vbCrLf
	content = content & EntityPublicDeclare(ent)
	content = content & EntityOverrideMethod(ent)
	content = content & vbTab & "}"
	Call Write2File(csFile, content)
End Sub
Function DataType2ClassType(attr As AttributeObj)
	'return the .net data type corresponding to the sql type
	Dim classType As String
	Select Case attr.Datatype
		Case "CHAR"
				classType = "String"
		Case "VARCHAR2"
				classType = "String"
		Case "NVARCHAR"
				classType = "String"
		Case "NVARCHAR2"
				classType = "String"
		Case "VARCHAR"
				classType = "String"
		Case "NTEXT"
				classType = "String"
		Case "DATETIME"
				classType = "Date"
		Case "DATE"
				classType = "Date"
		Case "DECIMAL"
				classType = "java.math.BigDecimal"
		Case "FLOAT"
				classType = "Float"
		Case "NUMERIC"
			If attr.DataScale = 0 Then
				If attr.DataLength > 9 Then
						classType = "java.math.BigDecimal"
				Else
						classType = "Integer"
				End If
			Else
				If attr.DataScale < 29 Then
						classType = "java.math.BigDecimal"
				Else
						classType = "Double"
				End If
			End If
		Case "INTEGER"
				classType = "Integer"
		Case "BIGINT"
				classType = "Long"
		Case "BIT"
				classType = "Boolean"
		Case Else
				classType = "String"
	End Select
	DataType2ClassType = classType
End Function
Function AttributePrivateName(entName As String)
	Dim length As Integer
	Dim result As String
	length = Len(entName)
	If length >0 Then
		result = StrConv(Left$(entName,1),vbLowerCase) & Right$(entName,length-1)
	End If
	AttributePrivateName = result
End Function
Function AttributeName(entName As String)
	Dim result As String
	Dim t As Integer
	Dim tempStr As String
	Dim length  As Integer
	length = Len(entName)
	entName = StrConv(Left$(entName,1),vbUpperCase) & Right$(entName,length-1)
	t=InStr(1,entName,"_")
	If t > 0 Then
		tempStr = Right$(entName,length - t)
		length = Len(tempStr)
		tempStr = StrConv(Left$(tempStr,1),vbUpperCase) & Right$(tempStr,length-1)
		result = result & Left$(entName,t-1) & tempStr
	Else
		result = entName
	End If

	Do While t>0
		length = Len(result)
        t=InStr(1,result,"_")
		tempStr = Right$(result,length-t)
		length = Len(tempStr)
		tempStr = StrConv(Left$(tempStr,1),vbUpperCase) & Right$(tempStr,length-1)
		If t>0 Then
			result = Left$(result,t-1) & tempStr
		End If
    Loop

    AttributeName = result
End Function
Function EntityPrivateDeclare(ent As Entity)
	Dim result As String
	Dim attr As AttributeObj
	Dim Index As Integer
	Dim parent As Entity
	Dim child As Entity
	Dim rl As Relationship
	Dim prl As Relationship

	For Index=1 To ent.Attributes.Count
		Set attr=FindAttribute(ent.Attributes, Index)
		If Not attr Is Nothing Then
			If attr.PrimaryKey Then
				result=result & vbTab & vbTab & "private " & DataType2ClassType(attr) & " id;" & vbCrLf
			Else
				If attr.ForeignKey Then
					'Set parent = attr.GetParent()
					'result=result & vbTab & vbTab & "private " & AttributeName(StrConv((parent.EntityName),vbLowerCase)) & " " & AttributePrivateName(AttributeName(StrConv((parent.EntityName),vbLowerCase))) & ";" & vbCrLf
				Else
					result=result & vbTab & vbTab & "private " & DataType2ClassType(attr) & " " & AttributePrivateName(AttributeName(StrConv(attr.AttributeName,vbLowerCase))) & ";" & vbCrLf
				End If
			End If
		End If
	Next

    For Each rl In ent.ChildRelationships
		Set parent = rl.ParentEntity
		result=result & vbTab & vbTab & "private " & AttributeName(StrConv((parent.EntityName),vbLowerCase)) & " " & AttributePrivateName(AttributeName(StrConv((parent.EntityName),vbLowerCase))) & ";" & vbCrLf
    Next

	For Each prl In ent.ParentRelationships
		Set child = prl.ChildEntity
		result=result & vbTab & vbTab & "private Set<" & AttributeName(StrConv((child.EntityName),vbLowerCase)) & "> " & AttributePrivateName(AttributeName(StrConv((child.EntityName),vbLowerCase))) & "s = new HashSet<" & AttributeName(StrConv((child.EntityName),vbLowerCase)) & ">();" & vbCrLf
    Next




	EntityPrivateDeclare=result
End Function
Function EntityPublicDeclare(ent As Entity)
	Dim result As String
	Dim attr As AttributeObj
	Dim Index As Integer
	Dim parent As Entity
	Dim rl As Relationship
	Dim fk As FKColumnPair
	Dim keyID As String
	Dim child As Entity
	Dim prl As Relationship

	For Index=1 To ent.Attributes.Count
		Set attr = FindAttribute(ent.Attributes, Index)
		If Not attr Is Nothing Then

			'result = result & vbTab & vbTab & "private " & DataType2ClassType(attr) & " " & attr.AttributeName & ";" & vbCrLf

			If attr.PrimaryKey Then
				result = result & vbTab & vbTab & "/// <summary>" & vbCrLf
				result = result & vbTab & vbTab & "/// " & attr.AttributeName & vbCrLf
				result = result & vbTab & vbTab & "/// </summary>" & vbCrLf
				result = result & AnnotationColumn(attr)
				result = result & vbTab & vbTab & "@Override" & vbCrLf
				result = result & vbTab & vbTab & "public " & DataType2ClassType(attr) & " getId(){" & vbCrLf
				result = result & vbTab & vbTab & vbTab & "return this.id;" & vbCrLf
				result = result & vbTab & vbTab & "}" & vbCrLf
				result = result & vbTab & vbTab & vbCrLf
				result = result & vbTab & vbTab & "@Override" & vbCrLf
				result = result & vbTab & vbTab & "public void setId(" & DataType2ClassType(attr) & " id){" & vbCrLf
				result = result & vbTab & vbTab & vbTab & "this.id = id;" & vbCrLf
				result = result & vbTab & vbTab & "}" & vbCrLf
				result = result & vbTab & vbTab & vbCrLf
			Else
				If attr.ForeignKey Then

				Else
					result = result & vbTab & vbTab & "/// <summary>" & vbCrLf
					result = result & vbTab & vbTab & "/// " & attr.AttributeName & vbCrLf
					result = result & vbTab & vbTab & "/// </summary>" & vbCrLf
					result = result & AnnotationColumn(attr)
					result = result & vbTab & vbTab & "public " & DataType2ClassType(attr)  & " " & atrributeGetMethod(attr.ColumnName) & "(){" & vbCrLf
					result = result & vbTab & vbTab & vbTab & "return this." & AttributePrivateName(AttributeName(StrConv(attr.AttributeName,vbLowerCase))) & ";" & vbCrLf
					result = result & vbTab & vbTab & "}" & vbCrLf
					result = result & vbTab & vbTab & vbCrLf
					
					result = result & vbTab & vbTab & "public void " &  atrributeSetMethod(attr.ColumnName) & "(" & DataType2ClassType(attr) & " " & AttributePrivateName(AttributeName(StrConv(attr.AttributeName,vbLowerCase)))  & "){" & vbCrLf
					result = result & vbTab & vbTab & vbTab & "this." & AttributePrivateName(AttributeName(StrConv(attr.AttributeName,vbLowerCase))) & " = " & AttributePrivateName(AttributeName(StrConv(attr.AttributeName,vbLowerCase))) & ";" & vbCrLf
					result = result & vbTab & vbTab & "}" & vbCrLf
					result = result & vbTab & vbTab & vbCrLf
				End If
			End If
		End If
	Next
	For Each rl In ent.ChildRelationships
		Set parent = rl.ParentEntity
		If Not parent Is Nothing Then
			'result = result & vbTab & vbTab & "/// <summary>" & vbCrLf
			'result = result & vbTab & vbTab & "/// " & attr.AttributeName & vbCrLf
			'result = result & vbTab & vbTab & "/// </summary>" & vbCrLf
			'result = result & AnnotationColumn(attr)
			For Each fk In rl.FKColumnPairs
				keyID = fk.ParentAttribute.AttributeName
			Next
			result = result & AnnotationFK(parent,keyID)
			'result=result & vbTab & vbTab & "private " & AttributeName(StrConv((parent.EntityName),vbLowerCase)) & " " & AttributePrivateName(AttributeName(StrConv((parent.EntityName),vbLowerCase))) & ";" & vbCrLf
			result = result & vbTab & vbTab & "public " & AttributeName(StrConv(parent.EntityName,vbLowerCase))  & " " & atrributeGetMethod(parent.EntityName) &  "(){" & vbCrLf
			result = result & vbTab & vbTab & vbTab & "return this." & AttributePrivateName(AttributeName(StrConv((parent.EntityName),vbLowerCase))) & ";" & vbCrLf
			result = result & vbTab & vbTab & "}" & vbCrLf
			result = result & vbTab & vbTab & vbCrLf
			
			result = result & vbTab & vbTab & "public void " &  atrributeSetMethod(parent.EntityName) & "(" & AttributeName(StrConv((parent.EntityName),vbLowerCase)) & " " & AttributePrivateName(AttributeName(StrConv(parent.EntityName,vbLowerCase)))  & "){" & vbCrLf
			result = result & vbTab & vbTab & vbTab & "this." & AttributePrivateName(AttributeName(StrConv(parent.EntityName,vbLowerCase))) & " = " & AttributePrivateName(AttributeName(StrConv(parent.EntityName,vbLowerCase))) & ";" & vbCrLf
			result = result & vbTab & vbTab & "}" & vbCrLf
			result = result & vbTab & vbTab & vbCrLf
		End If
    Next

    For Each prl In ent.ParentRelationships
		Set child = prl.ChildEntity
		If Not child Is Nothing Then
			result = result & AnnotationChild(ent)
			result = result & vbTab & vbTab & "public Set<" & AttributeName(StrConv(child.EntityName,vbLowerCase))  & "> " & atrributeGetMethod(child.EntityName) &  "s(){" & vbCrLf
			result = result & vbTab & vbTab & vbTab & "return this." & AttributePrivateName(AttributeName(StrConv((child.EntityName & "s"),vbLowerCase))) & ";" & vbCrLf
			result = result & vbTab & vbTab & "}" & vbCrLf
			result = result & vbTab & vbTab & vbCrLf
			
			result = result & vbTab & vbTab & "public void " &  atrributeSetMethod(child.EntityName & "s") & "(Set<" & AttributeName(StrConv((child.EntityName),vbLowerCase)) & "> " & AttributePrivateName(AttributeName(StrConv(child.EntityName,vbLowerCase)))  & "s){" & vbCrLf
			result = result & vbTab & vbTab & vbTab & "this." & AttributePrivateName(AttributeName(StrConv(child.EntityName,vbLowerCase))) & "s = " & AttributePrivateName(AttributeName(StrConv(child.EntityName,vbLowerCase))) & "s;" & vbCrLf
			result = result & vbTab & vbTab & "}" & vbCrLf
			result = result & vbTab & vbTab & vbCrLf
		End If
    Next

	EntityPublicDeclare=result
End Function
Function atrributeGetMethod(attr As String)
	atrributeGetMethod = "get" & AttributeName(StrConv(attr,vbLowerCase))
End Function
Function atrributeSetMethod(attr As String)
	atrributeSetMethod = "set" & AttributeName(StrConv(attr,vbLowerCase))
End Function
Function AppendToString(attr As AttributeObj, Val As String)
	Dim result As String
	result=Val
	If Len(Val)>0 Then
		result = result & "id.toString()"
	Else
		result = "id.toString()"
	End If
	AppendToString=result
End Function
Function AppendGetHashCode(attr As AttributeObj, Val As String)
	Dim result As String
	result=Val
	If Len(Val)>0 Then
		result = result & " + " & "id.hashCode()"
	Else
		result ="id.hashCode()"
	End If
	AppendGetHashCode=result
End Function
Function AppendEquals(ent As Entity, attr As AttributeObj, Val As String)
	Dim result As String
	result=Val
	If Len(Val)>0 Then
		result = result & "&& (id) &  == (obj instanceof " & AttributeName(StrConv(ent.EntityName,vbLowerCase)) & ")." & AttributeName(StrConv(attr.AttributeName,vbLowerCase)) & ")"
	Else
		result = "( id  == ((" & AttributeName(StrConv(ent.EntityName,vbLowerCase)) & ")obj).getId() )"
	End If
	AppendEquals=result
End Function
Function EntityOverrideMethod(ent As Entity)
	Dim result As String, toString As String, hashCode As String, equals As String
	Dim attr As AttributeObj
	Dim existsPrimary As Boolean
	For Each attr In ent.Attributes
		If attr.PrimaryKey Then
			toString = AppendToString(attr, toString)
			hashCode = AppendGetHashCode(attr, hashCode)
			equals   = AppendEquals(ent, attr, equals)
			existsPrimary=True
		End If
	Next

	If existsPrimary Then

		result = result & vbTab & vbTab & "/// <summary>" & vbCrLf
		result = result & vbTab & vbTab & "///" & vbCrLf
		result = result & vbTab & vbTab & "/// </summary>" & vbCrLf
		result = result & vbTab & vbTab & "/// <returns></returns>" & vbCrLf
		result = result & vbTab & vbTab & "@Override" & vbCrLf
		result = result & vbTab & vbTab & "public String toString()" & vbCrLf
		result = result & vbTab & vbTab & "{" & vbCrLf
		result = result & vbTab & vbTab & vbTab & "return " & toString & ";" & vbCrLf
		result = result & vbTab & vbTab & "}" & vbCrLf
		result = result & vbTab & vbTab & "/// <summary>" & vbCrLf
		result = result & vbTab & vbTab & "///" & vbCrLf
		result = result & vbTab & vbTab & "/// </summary>" & vbCrLf
		result = result & vbTab & vbTab & "/// <returns></returns>" & vbCrLf
		result = result & vbTab & vbTab & "@Override" & vbCrLf
		result = result & vbTab & vbTab & "public int hashCode()" & vbCrLf
		result = result & vbTab & vbTab & "{" & vbCrLf
		result = result & vbTab & vbTab & vbTab & "return " & hashCode & ";" & vbCrLf
		result = result & vbTab & vbTab & "}" & vbCrLf
		result = result & vbTab & vbTab & "/// <summary>" & vbCrLf
		result = result & vbTab & vbTab & "///" & vbCrLf
		result = result & vbTab & vbTab & "/// </summary>" & vbCrLf
		result = result & vbTab & vbTab & "/// <returns></returns>" & vbCrLf
		result = result & vbTab & vbTab & "@Override" & vbCrLf
		result = result & vbTab & vbTab & "public boolean equals(Object obj)" & vbCrLf
		result = result & vbTab & vbTab & "{" & vbCrLf
		result = result & vbTab & vbTab & vbTab & "boolean result = false;" & vbCrLf
		result = result & vbTab & vbTab & vbTab & "if (obj instanceof " & AttributeName(StrConv(ent.EntityName,vbLowerCase)) & ")" & vbCrLf
		result = result & vbTab & vbTab & vbTab & "{" & vbCrLf
		result = result & vbTab & vbTab & vbTab & vbTab & "result = " & equals & ";" & vbCrLf
		result = result & vbTab & vbTab & vbTab & "}" & vbCrLf
		result = result & vbTab & vbTab & vbTab & "return result;" & vbCrLf
		result = result & vbTab & vbTab & "}" & vbCrLf

	End If
	EntityOverrideMethod=result
End Function
Function AnnotationColumn(attr As AttributeObj)
		Dim result As String
		If Not attr Is Nothing Then
			If attr.PrimaryKey Then
				result = vbTab & vbTab & "@Id" & vbCrLf
				result = result & vbTab & vbTab & "@GeneratedValue(strategy = GenerationType.AUTO)" & vbCrLf
			End If
			If attr.ForeignKey Then
				result = vbTab & vbTab & "@ManyToOne(cascade = {CascadeType.PERSIST,CascadeType.MERGE})" &vbCrLf
				result = result & vbTab & vbTab & "@JoinColumn(name=""" & attr.ColumnName  & """)"  & vbCrLf
			Else
				result = vbTab & vbTab & "@Column(name = """ & attr.ColumnName & """, unique = false, nullable = "
				If attr.NullOption	= "NULL" Then
					result = result & "false"
				Else
				  result = result & "true"
				End If
				result = result & ", insertable = true, updatable = true, length = " & attr.DataLength & ")" &vbCrLf
			End If
		End If
		AnnotationColumn = result
End Function
Function AnnotationFK(parent As Entity,keyID As String)
		Dim result As String
		If Not parent Is Nothing Then
			result = vbTab & vbTab & "@ManyToOne(cascade = {CascadeType.PERSIST,CascadeType.MERGE})" &vbCrLf
			result = result & vbTab & vbTab & "@JoinColumn(name=""" & keyID  & """)"  & vbCrLf
		End If
		AnnotationFK = result
End Function
Function AnnotationChild(ent As Entity)
		Dim result As String
		If Not ent Is Nothing Then
			result = vbTab & vbTab & "@OneToMany(mappedBy=""" & AttributePrivateName(AttributeName(StrConv(ent.EntityName,vbLowerCase ))) & """)" &vbCrLf
		End If
		AnnotationChild = result
End Function
Function NamespaceStart(entName As String, subModelName As String)
	Dim result As String
	result = "//*******************************************" & vbCrLf
	result = result & "// ** Description:  Data Access Object for " & entName & vbCrLf
	result = result & "// ** Author     :  Code generator" & vbCrLf
	result = result & "// ** Created    :   " & Now & vbCrLf
	result = result & "// ** Modified   :" & vbCrLf 
	result = result & "//*******************************************" & vbCrLf & vbCrLf
	result = result & "package apps.demo.entity;" & vbCrLf & vbCrLf
	result = result & "import java.util.*;" & vbCrLf
	result = result & "import javax.persistence.*;" & vbCrLf
	result = result & "import core.hibernate.BaseEntity;" & vbCrLf
	NamespaceStart = result
End Function
Function FindAttribute(attrs As Attributes, Index As Integer)
	Dim result As AttributeObj
	Dim attr As AttributeObj
	Set result = Nothing
	For Each attr In attrs
		If attr.SequenceNumber=Index Then
			Set FindAttribute=attr
			Exit Function
		End If
	Next
	Set FindAttribute=Nothing
End Function

Sub Write2File(fileObj As Object, wordLine As String)
        fileObj.WriteLine (wordLine)
End Sub
Const dhcMissing = -2
'sort the entities by name(alphabetic sort)
Sub dhQuickSort(varArray As Variant, Optional intLeft As Integer = dhcMissing, Optional intRight As Integer = dhcMissing)
    Dim i As Integer
    Dim j As Integer
    Dim varTestVal As Variant
    Dim intMid As Integer

    If intLeft = dhcMissing Then intLeft = LBound(varArray)
    If intRight = dhcMissing Then intRight = UBound(varArray)

    If intLeft < intRight Then
        intMid = (intLeft + intRight) \ 2
        varTestVal = UCase(varArray(intMid))
        i = intLeft
        j = intRight
        Do
            Do While UCase(varArray(i)) < varTestVal
                i = i + 1
            Loop
            Do While UCase(varArray(j)) > varTestVal
                j = j - 1
            Loop
            If i <= j Then
                SwapElements varArray, i, j
                i = i + 1
                j = j - 1
            End If
        Loop Until i > j
        If j <= intMid Then
            Call dhQuickSort(varArray, intLeft, j)
            Call dhQuickSort(varArray, i, intRight)
        Else
            Call dhQuickSort(varArray, i, intRight)
            Call dhQuickSort(varArray, intLeft, j)
        End If
    End If
End Sub
Private Sub SwapElements(varItems As Variant, intItem1 As Integer, intItem2 As Integer)
    Dim varTemp As Variant

    varTemp = varItems(intItem2)
    varItems(intItem2) = varItems(intItem1)
    varItems(intItem1) = varTemp
End Sub
分享到:
评论
6 楼 Durian 2009-05-20  
面向数据库设计不能使用oo的全部特性。
5 楼 xiaofengtoo 2009-04-13  
我比较喜欢楼主的想法。
对于老板与客户不关注那么多,能快速开发,并能实际应用才是最好的东西。


ER的模型设计 可以针对对象的设置,在于怎么使用。

不过这里我有个问题 楼主 ,你能生成出来的文件 是UTF8的文件吗 ?
4 楼 魔力猫咪 2009-03-25  
ER的模型是数据库模型不是对象模型。
3 楼 colin4k 2009-03-24  
魔力猫咪 写道
不建议使用这种方式。看上去好像方便了,其实是把主次关系搞反了。面向对象设计中对象是核心,不是数据库。如果先设计数据库,然后图省事生成对象,则是面向数据库设计。

ER Studio的模型难道就不是对象?难道必须写成JAVA Class才是对象?
2 楼 kjj 2009-03-24  
同意楼上的做法
1 楼 魔力猫咪 2009-03-24  
不建议使用这种方式。看上去好像方便了,其实是把主次关系搞反了。面向对象设计中对象是核心,不是数据库。如果先设计数据库,然后图省事生成对象,则是面向数据库设计。

相关推荐

    ER数据库模型转换jpa entity实体maven插件.zip

    maven安装与配置 安装和配置Maven的步骤如下:12 确保已安装JDK。Maven 3.9+版本需要JDK 8或更高版本。可以通过输入java -version来检查JDK是否安装以及其版本。 下载Maven。访问Maven官网下载最新版本,例如...

    Intellij Idea 数据库生成JPA实体的模板

    生成JPA的实体,带annotation,包括@Entity,@Table(name=xx),@Id,@GeneratedValue,@Column(name=xx) 输出表和字段的comment,包含字段的类型长度 自动生成包名

    jpa自动代码生成工具

    本工具可以根据数据库表自动生成JPA开发所需的实体JavaBean(带有jpa主注解)、repository及service类,提高开发效率;目前支持数据库:MYSQL;并提供配合演示使用的demo项目。

    JPA Entity framework, inside of a Glassfish container

    JPA框架的核心是Entity,它代表数据库中的一个表或者视图。在Glassfish容器中使用JPA Entity Framework,开发者可以充分利用Java EE服务器提供的服务,如事务管理、安全管理以及资源注入等。 Glassfish是一款开源的...

    jpa代码自动生成工具-springboot

    总结起来,"jpa代码自动生成工具-springboot"是利用JPA和Spring Boot特性,配合特定工具,帮助开发者快速构建包含领域模型、数据访问、业务逻辑和前端控制的完整应用。通过这种方式,开发者可以更专注于业务创新,而...

    用Eclipse生成JPA元模型的方法

    "Eclipse 生成 JPA 元模型的方法" Eclipse 是一个功能强大且广泛应用的集成开发环境(IDE),它提供了许多实用的功能和插件来帮助开发者快速开发和管理项目。Java 持久化 API(JPA)是 Java 平台上的一种标准化的...

    ER元模型创建方法

    ER元模型创建方法是数据库设计中的一个重要环节,它主要用于构建数据模型,以便更好地理解和组织数据库结构。在本教程中,我们将深入探讨如何创建ER(实体关系)元模型,并将其同步到数据库,确保数据的准确性和一致...

    JPA代码生成器

    JPA代码生成器 1.生成domain dao ,service, mvc文件 2.对应的框架有JPA,spring MVC ,HIBERNATE 3.默认文件生成目录在D:\CODEGEN,直接修改工程源码即可 4.运行方法:JDBCCodeGenerator ,修改public static void ...

    myeclipse反向生成jpa

    这一过程允许开发者从现有的数据库结构自动生成Java持久化实体类(即JPA实体类),并进一步生成基本的增删查改(CRUD)操作代码,极大地提高了开发效率和减少了手动编码的工作量。 ### 什么是JPA? Java ...

    myabtis jpa代码生成器

    这个工具可能包含一些预设模板,可以根据数据库模式自动生成实体类(Entity)、映射接口(Mapper Interface)以及对应的 XML 映射文件。然而,由于它需要用户进行部分代码修改才能使用,这意味着生成的代码可能只是...

    Java自动生成entity、dao、service、controller代码

    Java自动生成entity、dao、service、controller代码

    springboot jpa 自动生成实体类的 文件 Generate POJOs.groovy

    springboot jpa 自动生成实体类的 文件 可以拿走直接用 Generate POJOs.groovy

    JPA_由数据库生成JavaBean

    - 通过使用JPA的注解,如`@Entity`(表示这是一个实体类)、`@Table`(指定数据库表名)、`@Id`(标识主键)、`@GeneratedValue`(主键生成策略)等,可以对JavaBean进行更精细的配置。 5. **使用生成的JavaBean**...

    04_JPA详解_第一个JPA实例与JPA主键生成策略.zip

    本压缩包文件"04_JPA详解_第一个JPA实例与JPA主键生成策略.zip"包含了关于如何在实际项目中运用JPA,以及理解JPA主键生成策略的详细教程。 ### JPA基础 1. **JPA简介**: JPA是Java EE的一部分,它提供了一套规范,...

    JPA环境搭建及JPA实例与JPA主键生成策略

    通过以上步骤,你就成功地搭建了JPA环境,并理解了如何创建JPA实体和设置主键生成策略。继续深入学习,你将能够利用JPA的强大功能,如查询语言(JPQL)、级联操作、事务管理等,来更高效地进行数据库操作。

    SAP JPA 1[1].0, EJB 3.0 and Web Service -Modeling Your First JPA Entity in CE 7.1

    本文将详细介绍如何通过一个简单的员工数据模型来创建、配置、调用并部署一个 SAP JPA 1.0 实体。我们的示例应用仅包含一个实体——“Employee”。该实体允许您执行以下操作:创建新员工、根据唯一标识符查找现有...

    springboot集成jpa代码,自动生成表

    当Spring Boot应用启动时,JPA会自动扫描`@Entity`类并根据它们生成对应的数据库表。如果表已存在且与实体类匹配,则不会进行更改。如果表不存在,JPA将根据实体类创建表。 6. **使用Repository** 一旦表创建完成...

    数据库 快速生成JPA表对象 脚本

    数据库 快速生成JPA表对象 脚本

    jpa例子jpajpa

    它提供了一种方式,让开发者可以用面向对象的编程模型来操作数据库,而无需直接编写SQL语句。JPA允许你在Java应用程序中以对象的形式处理数据,这些对象可以自动转换为数据库中的记录。 在JPA的例子中,我们通常会...

    SpringBoot+Redis+JPA +IDEA中的简单操作数据库逆向生成

    4. 使用Spring Data JPA的@Entity注解定义Java实体类,对应数据库表结构。 5. 创建一个Repository接口,继承JpaRepository,IDEA会自动生成对应的数据访问方法。 6. 如果数据库已存在,可以使用IDEA的逆向工程工具,...

Global site tag (gtag.js) - Google Analytics