SlideShare a Scribd company logo
1 of 28
Download to read offline
System Design Tools
Albert Guo
junyuo@gmail.com
12009年1月4日星期日
Agenda
Scenario
System Design Process
Design ER Diagram
by JDeveloper
Generate DB
schema diagram via
SchemaSpy
Generate artifacts
by MyEclipse
Refactor artifacts
automatically via
ant
Q&A
22009年1月4日星期日
Scenario
32009年1月4日星期日
System Design Process
42009年1月4日星期日
Design ER Diagram by JDeveloper
52009年1月4日星期日
JDeveloper Studio
JDeveloper Studio
It contains all the features of the product - including ADF,
SOA, J2EE, UML, Database, Java, and XML. This
download includes JDK 5.0.5 and is supported on Windows
XP, 2003 and 2000.
I used this tool to do schema design and draw ER diagram.
It will create / update / delete tables, columns and
constraints synchrnously as I edit ER diagram.
62009年1月4日星期日
JDeveloper Studio
Download: http://www.oracle.com/technology/software/
products/jdev/htdocs/soft10131.html
Documentation: http://www.oracle.com/technology/
documentation/jdev.html
72009年1月4日星期日
82009年1月4日星期日
Generate DB schema diagram via
SchemaSpy
92009年1月4日星期日
SchemaSpy
SchemaSpy
SchemaSpy is a Java-based tool that analyzes the
metadata of a schema in a database and generates a visual
representation of it in a browser-displayable format.
Download: http://schemaspy.sourceforge.net/
SchemaSpy requires:
1. Java 1.4 or higher
2. Graphviz: http://www.graphviz.org/
I use ant to execute command to generate schema
document.
102009年1月4日星期日
SchemaSpy
Regarding its commands, please go to
here to check: http://
schemaspy.sourceforge.net/
I had integrated its commands into ant
script, so I can reuse it easily.
112009年1月4日星期日
Ant build script
<?xml version="1.0" encoding="UTF-8"?>
<project name="schemaspy" default=" schemaspy ">
<property name="reports.dir" value="C:rs-schema"/>
<tstamp>
<format property="CURRENT_DATETIME" pattern="yyyy/MM/dd HH:mm" />
</tstamp>
<target name="schemaspy">
<java jar="D:/jar/schemaSpy_4.1.1.jar"
output="${reports.dir}/output.log"
error="${reports.dir}/error.log"
fork="true">
<arg line="-cp d:/jar/ojdbc14.jar;C:/Program Files/Graphviz 2.21/bin"/>
<arg line="-t orathin"/>
<arg line="-host 10.9.164.101"/>
<arg line="-port 1521"/>
<arg line="-db RSDB"/>
<arg line="-u username"/>
<arg line="-p password"/>
<arg line="-s RSDB"/>
<arg line="-o ${reports.dir}"/>
<arg line="-ahic"/>
</java>
<tstamp>
<format property="CURRENT_DATETIME" pattern="yyyy/MM/dd HH:mm" />
</tstamp>
<echo>Schema Report had been generated to ${reports.dir} at ${CURRENT_DATETIME}</echo>
</target>
122009年1月4日星期日
SchemaSpy Analysis Report
list all tables in this list
132009年1月4日星期日
SchemaSpy Analysis Report
show the table relationships
142009年1月4日星期日
Generate artifacts by MyEclipse
152009年1月4日星期日
Generate artifacts by MyEclipse
Artifacts include
Entities
DAOs
persistence.xml
162009年1月4日星期日
select tables which you want to do
DTO generation in database explore
view
172009年1月4日星期日
decide these artifacts will be
generated into which project and in
which package
check this checkbox to tell MyEclipse to
geneate DTOs, and also update these DTOs
to persistence.xml
click Finish button to get DTOs
generation process done.
182009年1月4日星期日
MyEclipse had generated DTOs
and also updated its
persistence.xml
192009年1月4日星期日
DTOs which generated by
MyEclipse. It just full of
getter and setter method.
202009年1月4日星期日
Then we go to Database
Explorer view to generate
DAOs
212009年1月4日星期日
decide these artifacts should be
generated to which project and
which package.
check this checkbox to tell MyEclipse
to generate DAOs
Click on the Finish button to
get the DAOs generation
process done.
222009年1月4日星期日
The artifacts which had been
generated by MyEclipse
232009年1月4日星期日
These methods which had been
generated, you may can
customize it to fulfill your
requirements.
242009年1月4日星期日
Refactor artifacts automatically via ant
252009年1月4日星期日
Refactor artifacts automatically via ant
Refactor rules for entities
1. implement one more interface: Persistable
2. import one more class: import
ht.fc.entity.essential.Persistable;
3. modify object ID generation rules:
@Id@TableGenerator(name = "IDGEN", table =
"htsequence", pkColumnName = "sequence",
allocationSize=1)
4. eliminate @Basic(optional = false), and its import class
262009年1月4日星期日
Refactor artifacts automatically via ant
<property name="entity.dir" value="D:worktestsrcjavacomhtchrentity"/>
<target name="refactorEntity">
<echo>refactor entities...</echo>
<replace dir="${entity.dir}" value='@Id@TableGenerator(name = "IDGEN", table = "htsequence", pkColumnName = "sequence", allocationSize=1)'>
<include name="**/*.java" />
<replacetoken>@Id</replacetoken>
</replace>
<replace dir="${entity.dir}" value="">
<include name="**/*.java" />
<replacetoken>@Basic(optional = false)</replacetoken>
</replace>
<replace dir="${entity.dir}" value="">
<include name="**/*.java" />
<replacetoken>import javax.persistence.Basic;</replacetoken>
</replace>
<replace dir="${entity.dir}" value='import ht.fc.entity.essential.Persistable;import java.io.Serializable;import javax.persistence.TableGenerator;'>
<include name="**/*.java" />
<replacetoken>import java.io.Serializable;</replacetoken>
</replace>
<replace dir="${entity.dir}" value="implements Serializable, Persistable">
<include name="**/*.java" />
<replacetoken>implements Serializable</replacetoken>
</replace>
<tstamp>
<format property="CURRENT_DATETIME" pattern="yyyy/MM/dd HH:mm" />
</tstamp>
<echo>refactor entities had finished at ${CURRENT_DATETIME}</echo>
</target>
272009年1月4日星期日
Q&A
282009年1月4日星期日

More Related Content

Similar to System Design Tools

Android 3D by Ivan Trajkovic and Dotti Colvin
Android 3D by Ivan Trajkovic and Dotti ColvinAndroid 3D by Ivan Trajkovic and Dotti Colvin
Android 3D by Ivan Trajkovic and Dotti Colvinswengineers
 
Introduction to Database Design with Entity Relationship Diagrams
Introduction to Database Design with Entity Relationship DiagramsIntroduction to Database Design with Entity Relationship Diagrams
Introduction to Database Design with Entity Relationship DiagramsMark A
 
UEMB270: Software Distribution Under The Hood
UEMB270: Software Distribution Under The HoodUEMB270: Software Distribution Under The Hood
UEMB270: Software Distribution Under The HoodIvanti
 
obiee 12c installation guidelines
obiee 12c installation guidelinesobiee 12c installation guidelines
obiee 12c installation guidelineskumud thakur
 
James Williams_IT110_IP1.doc.docxIT110-1404A-02 Introduction.docx
James Williams_IT110_IP1.doc.docxIT110-1404A-02 Introduction.docxJames Williams_IT110_IP1.doc.docxIT110-1404A-02 Introduction.docx
James Williams_IT110_IP1.doc.docxIT110-1404A-02 Introduction.docxpriestmanmable
 
Beginning Android Development
Beginning Android DevelopmentBeginning Android Development
Beginning Android DevelopmentJosé Ferreiro
 
Composer at Scale, Release and Dependency Management
Composer at Scale, Release and Dependency ManagementComposer at Scale, Release and Dependency Management
Composer at Scale, Release and Dependency ManagementJoe Ferguson
 
HoloLens Unity Build Pipelines on Azure DevOps
HoloLens Unity Build Pipelines on Azure DevOpsHoloLens Unity Build Pipelines on Azure DevOps
HoloLens Unity Build Pipelines on Azure DevOpsSarah Sexton
 
Uploading Data Using Oracle Web ADI
Uploading Data Using Oracle Web ADIUploading Data Using Oracle Web ADI
Uploading Data Using Oracle Web ADIRapidValue
 
Jde world to e1 v9 upgrade v2
Jde world to e1 v9 upgrade   v2Jde world to e1 v9 upgrade   v2
Jde world to e1 v9 upgrade v2InSync Conference
 
Jde world to e1 v9 upgrade v2
Jde world to e1 v9 upgrade   v2Jde world to e1 v9 upgrade   v2
Jde world to e1 v9 upgrade v2InSync Conference
 
iOSDevCamp 2011 - Getting "Test"-y: Test Driven Development & Automated Deplo...
iOSDevCamp 2011 - Getting "Test"-y: Test Driven Development & Automated Deplo...iOSDevCamp 2011 - Getting "Test"-y: Test Driven Development & Automated Deplo...
iOSDevCamp 2011 - Getting "Test"-y: Test Driven Development & Automated Deplo...Rudy Jahchan
 
Entity Framework 4 In Microsoft Visual Studio 2010 - ericnel
Entity Framework 4 In Microsoft Visual Studio 2010 - ericnelEntity Framework 4 In Microsoft Visual Studio 2010 - ericnel
Entity Framework 4 In Microsoft Visual Studio 2010 - ericnelukdpe
 
"Project Tye to Tie .NET Microservices", Oleg Karasik
"Project Tye to Tie .NET Microservices", Oleg Karasik"Project Tye to Tie .NET Microservices", Oleg Karasik
"Project Tye to Tie .NET Microservices", Oleg KarasikFwdays
 
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docx
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docxBroncosbuild.xmlBuilds, tests, and runs the project Broncos..docx
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docxcurwenmichaela
 
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docx
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docxBroncosbuild.xmlBuilds, tests, and runs the project Broncos..docx
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docxhartrobert670
 

Similar to System Design Tools (20)

Android 3D by Ivan Trajkovic and Dotti Colvin
Android 3D by Ivan Trajkovic and Dotti ColvinAndroid 3D by Ivan Trajkovic and Dotti Colvin
Android 3D by Ivan Trajkovic and Dotti Colvin
 
Introduction to Database Design with Entity Relationship Diagrams
Introduction to Database Design with Entity Relationship DiagramsIntroduction to Database Design with Entity Relationship Diagrams
Introduction to Database Design with Entity Relationship Diagrams
 
Bis 245
Bis 245Bis 245
Bis 245
 
UEMB270: Software Distribution Under The Hood
UEMB270: Software Distribution Under The HoodUEMB270: Software Distribution Under The Hood
UEMB270: Software Distribution Under The Hood
 
obiee 12c installation guidelines
obiee 12c installation guidelinesobiee 12c installation guidelines
obiee 12c installation guidelines
 
05 160723204945
05 16072320494505 160723204945
05 160723204945
 
James Williams_IT110_IP1.doc.docxIT110-1404A-02 Introduction.docx
James Williams_IT110_IP1.doc.docxIT110-1404A-02 Introduction.docxJames Williams_IT110_IP1.doc.docxIT110-1404A-02 Introduction.docx
James Williams_IT110_IP1.doc.docxIT110-1404A-02 Introduction.docx
 
Beginning Android Development
Beginning Android DevelopmentBeginning Android Development
Beginning Android Development
 
Composer at Scale, Release and Dependency Management
Composer at Scale, Release and Dependency ManagementComposer at Scale, Release and Dependency Management
Composer at Scale, Release and Dependency Management
 
HoloLens Unity Build Pipelines on Azure DevOps
HoloLens Unity Build Pipelines on Azure DevOpsHoloLens Unity Build Pipelines on Azure DevOps
HoloLens Unity Build Pipelines on Azure DevOps
 
Uploading Data Using Oracle Web ADI
Uploading Data Using Oracle Web ADIUploading Data Using Oracle Web ADI
Uploading Data Using Oracle Web ADI
 
Jde world to e1 v9 upgrade v2
Jde world to e1 v9 upgrade   v2Jde world to e1 v9 upgrade   v2
Jde world to e1 v9 upgrade v2
 
Jde world to e1 v9 upgrade v2
Jde world to e1 v9 upgrade   v2Jde world to e1 v9 upgrade   v2
Jde world to e1 v9 upgrade v2
 
iOSDevCamp 2011 - Getting "Test"-y: Test Driven Development & Automated Deplo...
iOSDevCamp 2011 - Getting "Test"-y: Test Driven Development & Automated Deplo...iOSDevCamp 2011 - Getting "Test"-y: Test Driven Development & Automated Deplo...
iOSDevCamp 2011 - Getting "Test"-y: Test Driven Development & Automated Deplo...
 
Entity Framework 4 In Microsoft Visual Studio 2010 - ericnel
Entity Framework 4 In Microsoft Visual Studio 2010 - ericnelEntity Framework 4 In Microsoft Visual Studio 2010 - ericnel
Entity Framework 4 In Microsoft Visual Studio 2010 - ericnel
 
"Project Tye to Tie .NET Microservices", Oleg Karasik
"Project Tye to Tie .NET Microservices", Oleg Karasik"Project Tye to Tie .NET Microservices", Oleg Karasik
"Project Tye to Tie .NET Microservices", Oleg Karasik
 
tut0000021-hevery
tut0000021-heverytut0000021-hevery
tut0000021-hevery
 
tut0000021-hevery
tut0000021-heverytut0000021-hevery
tut0000021-hevery
 
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docx
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docxBroncosbuild.xmlBuilds, tests, and runs the project Broncos..docx
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docx
 
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docx
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docxBroncosbuild.xmlBuilds, tests, and runs the project Broncos..docx
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docx
 

More from Guo Albert

AWS IAM (Identity and Access Management) Policy Simulator
AWS IAM (Identity and Access Management) Policy SimulatorAWS IAM (Identity and Access Management) Policy Simulator
AWS IAM (Identity and Access Management) Policy SimulatorGuo Albert
 
TOEIC 準備心得
TOEIC 準備心得TOEIC 準備心得
TOEIC 準備心得Guo Albert
 
DBM專案環境建置
DBM專案環境建置DBM專案環境建置
DBM專案環境建置Guo Albert
 
JPA Optimistic Locking With @Version
JPA Optimistic Locking With @VersionJPA Optimistic Locking With @Version
JPA Optimistic Locking With @VersionGuo Albert
 
OCEJPA Study Notes
OCEJPA Study NotesOCEJPA Study Notes
OCEJPA Study NotesGuo Albert
 
OCEJPA(1Z0-898) Preparation Tips
OCEJPA(1Z0-898) Preparation TipsOCEJPA(1Z0-898) Preparation Tips
OCEJPA(1Z0-898) Preparation TipsGuo Albert
 
JPA lifecycle events practice
JPA lifecycle events practiceJPA lifecycle events practice
JPA lifecycle events practiceGuo Albert
 
XDate - a modern java-script date library
XDate -  a modern java-script date libraryXDate -  a modern java-script date library
XDate - a modern java-script date libraryGuo Albert
 
How to avoid check style errors
How to avoid check style errorsHow to avoid check style errors
How to avoid check style errorsGuo Albert
 
NIG系統報表開發指南
NIG系統報表開發指南NIG系統報表開發指南
NIG系統報表開發指南Guo Albert
 
Ease Your Effort of Putting Data into History Table
Ease Your Effort of Putting Data into History TableEase Your Effort of Putting Data into History Table
Ease Your Effort of Putting Data into History TableGuo Albert
 
NIG 系統開發指引
NIG 系統開發指引NIG 系統開發指引
NIG 系統開發指引Guo Albert
 
NIG系統開發文件閱讀步驟
NIG系統開發文件閱讀步驟NIG系統開發文件閱讀步驟
NIG系統開發文件閱讀步驟Guo Albert
 
Form Bean Creation Process for NIG System
Form Bean Creation Process for NIG SystemForm Bean Creation Process for NIG System
Form Bean Creation Process for NIG SystemGuo Albert
 
A Short Intorduction to JasperReports
A Short Intorduction to JasperReportsA Short Intorduction to JasperReports
A Short Intorduction to JasperReportsGuo Albert
 
Apply Template Method Pattern in Report Implementation
Apply Template Method Pattern in Report ImplementationApply Template Method Pattern in Report Implementation
Apply Template Method Pattern in Report ImplementationGuo Albert
 
Utilize Commons BeansUtils to do copy object
Utilize Commons BeansUtils to do copy objectUtilize Commons BeansUtils to do copy object
Utilize Commons BeansUtils to do copy objectGuo Albert
 
Apply my eclipse to do entity class generation
Apply my eclipse to do entity class generationApply my eclipse to do entity class generation
Apply my eclipse to do entity class generationGuo Albert
 
Nig project setup quickly tutorial
Nig project setup quickly tutorialNig project setup quickly tutorial
Nig project setup quickly tutorialGuo Albert
 
Spring JDBCTemplate
Spring JDBCTemplateSpring JDBCTemplate
Spring JDBCTemplateGuo Albert
 

More from Guo Albert (20)

AWS IAM (Identity and Access Management) Policy Simulator
AWS IAM (Identity and Access Management) Policy SimulatorAWS IAM (Identity and Access Management) Policy Simulator
AWS IAM (Identity and Access Management) Policy Simulator
 
TOEIC 準備心得
TOEIC 準備心得TOEIC 準備心得
TOEIC 準備心得
 
DBM專案環境建置
DBM專案環境建置DBM專案環境建置
DBM專案環境建置
 
JPA Optimistic Locking With @Version
JPA Optimistic Locking With @VersionJPA Optimistic Locking With @Version
JPA Optimistic Locking With @Version
 
OCEJPA Study Notes
OCEJPA Study NotesOCEJPA Study Notes
OCEJPA Study Notes
 
OCEJPA(1Z0-898) Preparation Tips
OCEJPA(1Z0-898) Preparation TipsOCEJPA(1Z0-898) Preparation Tips
OCEJPA(1Z0-898) Preparation Tips
 
JPA lifecycle events practice
JPA lifecycle events practiceJPA lifecycle events practice
JPA lifecycle events practice
 
XDate - a modern java-script date library
XDate -  a modern java-script date libraryXDate -  a modern java-script date library
XDate - a modern java-script date library
 
How to avoid check style errors
How to avoid check style errorsHow to avoid check style errors
How to avoid check style errors
 
NIG系統報表開發指南
NIG系統報表開發指南NIG系統報表開發指南
NIG系統報表開發指南
 
Ease Your Effort of Putting Data into History Table
Ease Your Effort of Putting Data into History TableEase Your Effort of Putting Data into History Table
Ease Your Effort of Putting Data into History Table
 
NIG 系統開發指引
NIG 系統開發指引NIG 系統開發指引
NIG 系統開發指引
 
NIG系統開發文件閱讀步驟
NIG系統開發文件閱讀步驟NIG系統開發文件閱讀步驟
NIG系統開發文件閱讀步驟
 
Form Bean Creation Process for NIG System
Form Bean Creation Process for NIG SystemForm Bean Creation Process for NIG System
Form Bean Creation Process for NIG System
 
A Short Intorduction to JasperReports
A Short Intorduction to JasperReportsA Short Intorduction to JasperReports
A Short Intorduction to JasperReports
 
Apply Template Method Pattern in Report Implementation
Apply Template Method Pattern in Report ImplementationApply Template Method Pattern in Report Implementation
Apply Template Method Pattern in Report Implementation
 
Utilize Commons BeansUtils to do copy object
Utilize Commons BeansUtils to do copy objectUtilize Commons BeansUtils to do copy object
Utilize Commons BeansUtils to do copy object
 
Apply my eclipse to do entity class generation
Apply my eclipse to do entity class generationApply my eclipse to do entity class generation
Apply my eclipse to do entity class generation
 
Nig project setup quickly tutorial
Nig project setup quickly tutorialNig project setup quickly tutorial
Nig project setup quickly tutorial
 
Spring JDBCTemplate
Spring JDBCTemplateSpring JDBCTemplate
Spring JDBCTemplate
 

Recently uploaded

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Recently uploaded (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

System Design Tools

  • 1. System Design Tools Albert Guo junyuo@gmail.com 12009年1月4日星期日
  • 2. Agenda Scenario System Design Process Design ER Diagram by JDeveloper Generate DB schema diagram via SchemaSpy Generate artifacts by MyEclipse Refactor artifacts automatically via ant Q&A 22009年1月4日星期日
  • 5. Design ER Diagram by JDeveloper 52009年1月4日星期日
  • 6. JDeveloper Studio JDeveloper Studio It contains all the features of the product - including ADF, SOA, J2EE, UML, Database, Java, and XML. This download includes JDK 5.0.5 and is supported on Windows XP, 2003 and 2000. I used this tool to do schema design and draw ER diagram. It will create / update / delete tables, columns and constraints synchrnously as I edit ER diagram. 62009年1月4日星期日
  • 7. JDeveloper Studio Download: http://www.oracle.com/technology/software/ products/jdev/htdocs/soft10131.html Documentation: http://www.oracle.com/technology/ documentation/jdev.html 72009年1月4日星期日
  • 9. Generate DB schema diagram via SchemaSpy 92009年1月4日星期日
  • 10. SchemaSpy SchemaSpy SchemaSpy is a Java-based tool that analyzes the metadata of a schema in a database and generates a visual representation of it in a browser-displayable format. Download: http://schemaspy.sourceforge.net/ SchemaSpy requires: 1. Java 1.4 or higher 2. Graphviz: http://www.graphviz.org/ I use ant to execute command to generate schema document. 102009年1月4日星期日
  • 11. SchemaSpy Regarding its commands, please go to here to check: http:// schemaspy.sourceforge.net/ I had integrated its commands into ant script, so I can reuse it easily. 112009年1月4日星期日
  • 12. Ant build script <?xml version="1.0" encoding="UTF-8"?> <project name="schemaspy" default=" schemaspy "> <property name="reports.dir" value="C:rs-schema"/> <tstamp> <format property="CURRENT_DATETIME" pattern="yyyy/MM/dd HH:mm" /> </tstamp> <target name="schemaspy"> <java jar="D:/jar/schemaSpy_4.1.1.jar" output="${reports.dir}/output.log" error="${reports.dir}/error.log" fork="true"> <arg line="-cp d:/jar/ojdbc14.jar;C:/Program Files/Graphviz 2.21/bin"/> <arg line="-t orathin"/> <arg line="-host 10.9.164.101"/> <arg line="-port 1521"/> <arg line="-db RSDB"/> <arg line="-u username"/> <arg line="-p password"/> <arg line="-s RSDB"/> <arg line="-o ${reports.dir}"/> <arg line="-ahic"/> </java> <tstamp> <format property="CURRENT_DATETIME" pattern="yyyy/MM/dd HH:mm" /> </tstamp> <echo>Schema Report had been generated to ${reports.dir} at ${CURRENT_DATETIME}</echo> </target> 122009年1月4日星期日
  • 13. SchemaSpy Analysis Report list all tables in this list 132009年1月4日星期日
  • 14. SchemaSpy Analysis Report show the table relationships 142009年1月4日星期日
  • 15. Generate artifacts by MyEclipse 152009年1月4日星期日
  • 16. Generate artifacts by MyEclipse Artifacts include Entities DAOs persistence.xml 162009年1月4日星期日
  • 17. select tables which you want to do DTO generation in database explore view 172009年1月4日星期日
  • 18. decide these artifacts will be generated into which project and in which package check this checkbox to tell MyEclipse to geneate DTOs, and also update these DTOs to persistence.xml click Finish button to get DTOs generation process done. 182009年1月4日星期日
  • 19. MyEclipse had generated DTOs and also updated its persistence.xml 192009年1月4日星期日
  • 20. DTOs which generated by MyEclipse. It just full of getter and setter method. 202009年1月4日星期日
  • 21. Then we go to Database Explorer view to generate DAOs 212009年1月4日星期日
  • 22. decide these artifacts should be generated to which project and which package. check this checkbox to tell MyEclipse to generate DAOs Click on the Finish button to get the DAOs generation process done. 222009年1月4日星期日
  • 23. The artifacts which had been generated by MyEclipse 232009年1月4日星期日
  • 24. These methods which had been generated, you may can customize it to fulfill your requirements. 242009年1月4日星期日
  • 25. Refactor artifacts automatically via ant 252009年1月4日星期日
  • 26. Refactor artifacts automatically via ant Refactor rules for entities 1. implement one more interface: Persistable 2. import one more class: import ht.fc.entity.essential.Persistable; 3. modify object ID generation rules: @Id@TableGenerator(name = "IDGEN", table = "htsequence", pkColumnName = "sequence", allocationSize=1) 4. eliminate @Basic(optional = false), and its import class 262009年1月4日星期日
  • 27. Refactor artifacts automatically via ant <property name="entity.dir" value="D:worktestsrcjavacomhtchrentity"/> <target name="refactorEntity"> <echo>refactor entities...</echo> <replace dir="${entity.dir}" value='@Id@TableGenerator(name = "IDGEN", table = "htsequence", pkColumnName = "sequence", allocationSize=1)'> <include name="**/*.java" /> <replacetoken>@Id</replacetoken> </replace> <replace dir="${entity.dir}" value=""> <include name="**/*.java" /> <replacetoken>@Basic(optional = false)</replacetoken> </replace> <replace dir="${entity.dir}" value=""> <include name="**/*.java" /> <replacetoken>import javax.persistence.Basic;</replacetoken> </replace> <replace dir="${entity.dir}" value='import ht.fc.entity.essential.Persistable;import java.io.Serializable;import javax.persistence.TableGenerator;'> <include name="**/*.java" /> <replacetoken>import java.io.Serializable;</replacetoken> </replace> <replace dir="${entity.dir}" value="implements Serializable, Persistable"> <include name="**/*.java" /> <replacetoken>implements Serializable</replacetoken> </replace> <tstamp> <format property="CURRENT_DATETIME" pattern="yyyy/MM/dd HH:mm" /> </tstamp> <echo>refactor entities had finished at ${CURRENT_DATETIME}</echo> </target> 272009年1月4日星期日