- 浏览: 29958 次
-
文章分类
最新评论
-
herman_liu76:
我们的action中不写逻辑,只处理http有关的数据准备与返 ...
有没有人在struts2的action这一层做事务控制? -
xiaoxin5230:
呵呵,沙市小吃我觉得是最好吃的,物美价廉
沙市美食-过早篇 -
Durian:
面向数据库设计不能使用oo的全部特性。
ER Studio从设计模型生成JPA Entity -
xiaofengtoo:
我比较喜欢楼主的想法。对于老板与客户不关注那么多,能快速开发, ...
ER Studio从设计模型生成JPA Entity -
魔力猫咪:
ER的模型是数据库模型不是对象模型。
ER Studio从设计模型生成JPA Entity
主要是参考ER Studio设计模型 代码生成 。脚本如下:
ER Studio的模型难道就不是对象?难道必须写成JAVA Class才是对象?
'利用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的文件吗 ?
对于老板与客户不关注那么多,能快速开发,并能实际应用才是最好的东西。
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模型, 规范化 - 事务处理与并发控制 14. **即时通讯系统**: - 即时通讯协议:XMPP, WebSocket - 消息队列:RabbitMQ, ActiveMQ - 实时同步与推送技术 以上只是部分论文题目涉及的知识点,每...
2. 设计阶段:绘制系统架构图,设计数据库表结构,编写ER图。 3. 编码实现: - 创建前后端项目,配置开发环境。 - 实现用户登录注册模块,使用JWT进行权限验证。 - 设计RESTful API接口,前后端分离通信。 - ...
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
ACM动态规划模板-区间修改线段树问题模板
# 踏入C语言的奇妙编程世界 在编程的广阔宇宙中,C语言宛如一颗璀璨恒星,以其独特魅力与强大功能,始终占据着不可替代的地位。无论你是编程小白,还是有一定基础想进一步提升的开发者,C语言都值得深入探索。 C语言的高效性与可移植性令人瞩目。它能直接操控硬件,执行速度快,是系统软件、嵌入式开发的首选。同时,代码可在不同操作系统和硬件平台间轻松移植,极大节省开发成本。 学习C语言,能让你深入理解计算机底层原理,培养逻辑思维和问题解决能力。掌握C语言后,再学习其他编程语言也会事半功倍。 现在,让我们一起开启C语言学习之旅。这里有丰富教程、实用案例、详细代码解析,助你逐步掌握C语言核心知识和编程技巧。别再犹豫,加入我们,在C语言的海洋中尽情遨游,挖掘无限可能,为未来的编程之路打下坚实基础!
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
本项目为Python语言开发的PersonRelationKnowledgeGraph设计源码,总计包含49个文件,涵盖19个.pyc字节码文件、12个.py源代码文件、8个.txt文本文件、3个.xml配置文件、3个.png图片文件、2个.md标记文件、1个.iml项目配置文件、1个.cfg配置文件。该源码库旨在构建一个用于表示和查询人物关系的知识图谱系统。
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
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永磁风机飞轮储能二次调频,系统频率特性如下,可改变调频参数改善频率。 参考文献详细,两区域系统二次调频。 ,核心关键词: 1. Simulink 2. 永磁风机 3. 飞轮储能 4. 二次调频 5. 系统频率特性 6. 调频参数 7. 改善频率 8. 参考文献 9. 两区域系统 以上关键词用分号(;)分隔,结果为:Simulink;永磁风机;飞轮储能;二次调频;系统频率特性;调频参数;改善频率;参考文献;两区域系统。,基于Simulink的永磁风机与飞轮储能系统二次调频研究:频率特性及调频参数优化
MATLAB驱动的ASR防滑转模型:PID与对照控制算法对比,冰雪路面条件下滑移率与车速轮速对照展示,MATLAB驱动的ASR防滑转模型:PID与对照控制算法对比,冰雪路面条件下滑移率与车速轮速对照图展示,MATLAB驱动防滑转模型ASR模型 ASR模型驱动防滑转模型 ?牵引力控制系统模型 选择PID控制算法以及对照控制算法,共两种控制算法,可进行选择。 选择冰路面以及雪路面,共两种路面条件,可进行选择。 控制目标为滑移率0.2,出图显示车速以及轮速对照,出图显示车辆轮胎滑移率。 模型简单,仅供参考。 ,MATLAB; ASR模型; 防滑转模型; 牵引力控制系统模型; PID控制算法; 对照控制算法; 冰路面; 雪路面; 控制目标; 滑移率; 车速; 轮速。,MATLAB驱动的ASR模型:PID与对照算法在冰雪路面的滑移率控制研究
芯片失效分析方法介绍 -深入解析芯片故障原因及预防措施.pptx
4131_127989170.html
内容概要:本文提供了一个全面的PostgreSQL自动化部署解决方案,涵盖智能环境适应、多平台支持、内存与性能优化以及安全性加强等重要方面。首先介绍了脚本的功能及其调用方法,随后详细阐述了操作系统和依赖软件包的准备过程、配置项的自动生成机制,还包括对实例的安全性和监控功能的强化措施。部署指南给出了具体的命令操作指导,便于新手理解和执行。最后强调了该工具对于不同硬件条件和服务需求的有效应对能力,特别是针对云计算环境下应用的支持特点。 适合人群:对PostgreSQL集群运维有一定基础并渴望提高效率和安全性的数据库管理员及工程师。 使用场景及目标:本脚本能够帮助企业在大规模部署时减少人工介入时间,确保系统的稳定性与高性能,适用于各类需要稳定可靠的数据库解决方案的企业或机构,特别是在大数据量和高并发事务处理场合。 其他说明:文中还提及了一些高级功能如自动备份、流复制等设置步骤,使得该方案不仅可以快速上线而且能满足后续维护和发展阶段的要求。同时提到的技术性能数据也为用户评估其能否满足业务需求提供了直观参考。
房地产开发合同[示范文本].doc
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
工程技术承包合同[示范文本].doc
蓝桥杯开发赛【作品源码】