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

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  
不建议使用这种方式。看上去好像方便了,其实是把主次关系搞反了。面向对象设计中对象是核心,不是数据库。如果先设计数据库,然后图省事生成对象,则是面向数据库设计。

相关推荐

    计算机的毕业论文题目大全.pdf

    - 数据库设计:ER模型, 规范化 - 事务处理与并发控制 14. **即时通讯系统**: - 即时通讯协议:XMPP, WebSocket - 消息队列:RabbitMQ, ActiveMQ - 实时同步与推送技术 以上只是部分论文题目涉及的知识点,每...

    学生管理系统的开发代码及制作过程

    2. 设计阶段:绘制系统架构图,设计数据库表结构,编写ER图。 3. 编码实现: - 创建前后端项目,配置开发环境。 - 实现用户登录注册模块,使用JWT进行权限验证。 - 设计RESTful API接口,前后端分离通信。 - ...

    实时监控体系:基于Prometheus的API性能指标可视化方案.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    5个提升DeepSeekAPI生成质量的调参技巧,开发者必看!.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    ACM动态规划模板-区间修改线段树问题模板

    ACM动态规划模板-区间修改线段树问题模板

    深度解析C语言调试技巧:VSCode+GDB实战排错指南.pdf

    # 踏入C语言的奇妙编程世界 在编程的广阔宇宙中,C语言宛如一颗璀璨恒星,以其独特魅力与强大功能,始终占据着不可替代的地位。无论你是编程小白,还是有一定基础想进一步提升的开发者,C语言都值得深入探索。 C语言的高效性与可移植性令人瞩目。它能直接操控硬件,执行速度快,是系统软件、嵌入式开发的首选。同时,代码可在不同操作系统和硬件平台间轻松移植,极大节省开发成本。 学习C语言,能让你深入理解计算机底层原理,培养逻辑思维和问题解决能力。掌握C语言后,再学习其他编程语言也会事半功倍。 现在,让我们一起开启C语言学习之旅。这里有丰富教程、实用案例、详细代码解析,助你逐步掌握C语言核心知识和编程技巧。别再犹豫,加入我们,在C语言的海洋中尽情遨游,挖掘无限可能,为未来的编程之路打下坚实基础!

    10个高效调用DeepSeekAPI的技巧:从请求优化到缓存策略.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    基于Python语言的PersonRelationKnowledgeGraph设计源码

    本项目为Python语言开发的PersonRelationKnowledgeGraph设计源码,总计包含49个文件,涵盖19个.pyc字节码文件、12个.py源代码文件、8个.txt文本文件、3个.xml配置文件、3个.png图片文件、2个.md标记文件、1个.iml项目配置文件、1个.cfg配置文件。该源码库旨在构建一个用于表示和查询人物关系的知识图谱系统。

    成本优化指南:通过Token计算模型将API费用降低57%的秘诀.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    大华智能物联平台,的对接其他接口的API,可以获得视频拉流的flv/hls/rstp 的拉流地址,demo项目为springBoot项目,可以通过摄像头的视频通道,获取到实时拉流的uRl

    rtsp实时预览接口URL:/evo-apigw/admin/API/MTS/Video/StartVideo HLS、FLV、RTMP实时预览接口方式 :接口URL/evo-apigw/admin/API/video/stream/realtime 参数名 必选 类型 说明 data true string Json串 +channelId true string 视频通道编码 +streamType true string 码流类型:1=主码流, 2=辅码流,3=辅码流2 +type true string 协议类型:hls,hlss,flv,flvs,ws_flv,wss_flv,rtmp hls:http协议,m3u8格式,端口7086; hlss:https协议,m3u8格式,端口是7096; flv:http协议,flv格式,端口7886; flvs:https协议,flv格式,端口是7896; ws_flv:ws协议,flv格式,端口是7886; wss_flv:wss协议,flv格式,端口是7896; rtmp:rtmp协议,端口是1975;

    Simulink永磁风机飞轮储能系统二次调频技术研究:频率特性分析与参数优化,Simulink永磁风机飞轮储能二次调频技术:系统频率特性详解及参数优化研究参考详实文献及两区域系统应用,simulink

    Simulink永磁风机飞轮储能系统二次调频技术研究:频率特性分析与参数优化,Simulink永磁风机飞轮储能二次调频技术:系统频率特性详解及参数优化研究参考详实文献及两区域系统应用,simulink永磁风机飞轮储能二次调频,系统频率特性如下,可改变调频参数改善频率。 参考文献详细,两区域系统二次调频。 ,核心关键词: 1. Simulink 2. 永磁风机 3. 飞轮储能 4. 二次调频 5. 系统频率特性 6. 调频参数 7. 改善频率 8. 参考文献 9. 两区域系统 以上关键词用分号(;)分隔,结果为:Simulink;永磁风机;飞轮储能;二次调频;系统频率特性;调频参数;改善频率;参考文献;两区域系统。,基于Simulink的永磁风机与飞轮储能系统二次调频研究:频率特性及调频参数优化

    MATLAB驱动的ASR防滑转模型:PID与对照控制算法对比,冰雪路面条件下滑移率与车速轮速对照展示,MATLAB驱动的ASR防滑转模型:PID与对照控制算法对比,冰雪路面条件下滑移率与车速轮速对照图

    MATLAB驱动的ASR防滑转模型:PID与对照控制算法对比,冰雪路面条件下滑移率与车速轮速对照展示,MATLAB驱动的ASR防滑转模型:PID与对照控制算法对比,冰雪路面条件下滑移率与车速轮速对照图展示,MATLAB驱动防滑转模型ASR模型 ASR模型驱动防滑转模型 ?牵引力控制系统模型 选择PID控制算法以及对照控制算法,共两种控制算法,可进行选择。 选择冰路面以及雪路面,共两种路面条件,可进行选择。 控制目标为滑移率0.2,出图显示车速以及轮速对照,出图显示车辆轮胎滑移率。 模型简单,仅供参考。 ,MATLAB; ASR模型; 防滑转模型; 牵引力控制系统模型; PID控制算法; 对照控制算法; 冰路面; 雪路面; 控制目标; 滑移率; 车速; 轮速。,MATLAB驱动的ASR模型:PID与对照算法在冰雪路面的滑移率控制研究

    芯片失效分析方法介绍 -深入解析芯片故障原因及预防措施.pptx

    芯片失效分析方法介绍 -深入解析芯片故障原因及预防措施.pptx

    4131_127989170.html

    4131_127989170.html

    PostgreSQL自动化部署与优化脚本:智能化安装、安全加固与监控集成

    内容概要:本文提供了一个全面的PostgreSQL自动化部署解决方案,涵盖智能环境适应、多平台支持、内存与性能优化以及安全性加强等重要方面。首先介绍了脚本的功能及其调用方法,随后详细阐述了操作系统和依赖软件包的准备过程、配置项的自动生成机制,还包括对实例的安全性和监控功能的强化措施。部署指南给出了具体的命令操作指导,便于新手理解和执行。最后强调了该工具对于不同硬件条件和服务需求的有效应对能力,特别是针对云计算环境下应用的支持特点。 适合人群:对PostgreSQL集群运维有一定基础并渴望提高效率和安全性的数据库管理员及工程师。 使用场景及目标:本脚本能够帮助企业在大规模部署时减少人工介入时间,确保系统的稳定性与高性能,适用于各类需要稳定可靠的数据库解决方案的企业或机构,特别是在大数据量和高并发事务处理场合。 其他说明:文中还提及了一些高级功能如自动备份、流复制等设置步骤,使得该方案不仅可以快速上线而且能满足后续维护和发展阶段的要求。同时提到的技术性能数据也为用户评估其能否满足业务需求提供了直观参考。

    房地产开发合同[示范文本].doc

    房地产开发合同[示范文本].doc

    成本优化实战:DeepSeekAPI的Tokens计算与计费策略拆解.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    安全必读:DeepSeek接口调用中的数据加密与合规实践.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    工程技术承包合同[示范文本].doc

    工程技术承包合同[示范文本].doc

    蓝桥杯开发赛作品源码【基于C语言】

    蓝桥杯开发赛【作品源码】

Global site tag (gtag.js) - Google Analytics