当前位置: 首页 > news >正文

黄聪:CodeSmith和PowerDesigner的使用安装和数据库创建(原创系列教程)

最近要忙期考,但还是决定每天抽点空来写CodeSmith的系列文章了,在此实在不敢用教程这个词语,毕竟自己对CodeSmith了解的也不是很多,有很多牛人都在博客园发布了不少关于CodeSmith的文章了,但我还是想发表一下自己的心得,希望能给初学者更多的参考,教程中有错误或者表述不清的地方欢迎大家指出,我还是会秉承之前的风格,用尽量多的图来说明步骤,因为我觉得还是图文并茂的文章比较容易理解.

好了,废话少说,开始我们的CodeSmith旅程吧,我先讲讲这个系列教程要完成的目标吧,众所周知,CodeSmith其中一个强大的功能就是依照模板生成批量代码,这也是吸引着众多编程人士使用它的原因,它大大的节约了编程时间,省去了大量复制粘贴的废操作.

首先,既然要讲解如何使用CodeSmith和PowerDesigner快速生成批量代码,当然要先安装这2个软件啦,下面就简单说说如何安装破解这2款软件吧,当然破解只是学习之用,请大家不要用于商业用途哈,要支持正版,大家都是做软件的,知道开发一套软件实属不易啊.

CodeSmith安装方法:

1). 点击下载安装文件
2). 运行,安装步骤就不说了,选择你要安装的目录,一路下一步就OK了.
3). 运行
,选择CodeSmith的安装目录 ,一路下一步,就破解
完成啦,接着你就可以在开始--CodeSmith Professional 5.1--CodeSmith Studio运行程序啦.


PowerDesigner安装方法:
 http://dev.firnow.com/course/3_program/java/javajs/20090908/174375.html

安装完这2个软件了,接着就开始使用吧,还是和以前一样,先提出需求,再做实例,因为我们之所以使用它们,肯定是因为它们能巧妙的解决某种问题,不然我们干嘛花那么多时间和硬盘空间安装它们.

好,我们现在的需求是:希望当接到一个新的工程项目时,程序员只需要根据项目需求,设计出数据库的结构(表,表的字段,表间关系),之后只要按一个按键,就能立刻得到基于该数据库的所有分层架构代码文件.也就是说,我们希望能在不敲一行代码的情况下获取所有我们想要的代码!而这就是这2个软件能做到的事情,也是我们安装它们的目的.

好了,角色已经介绍完了,接着看看它们是如何演绎这场精彩的演出的吧:

首先我们需要创建一个测试数据库,为了简单,我们在这个数据库中只创建一个Student和一个Major.其表结构和关系如下所示.

看看怎样用PowerDesigner快速的创建出这个数据库吧.

1.现在开始使用PowerDesigner创建数据库,首先运行程序,进入主界面:

2.File—New Model—Physical Data Model—Physical Diagram—Model name 设置为test,DBMS属性设置为Microsoft SQL Server 2005:

3.首先用表格工具创建一个表格模板:

4.双击表格模板,设置属性,我们首先设置Major表:

5.设置好表名,点击Columns标签,设置字段属性,设置如图所示:

6.因为MajorID字段我们要设置为自动增长,所以要设置它的高级属性,选择MajorID字段,点击属性按钮,在General面板中勾选上Identity复选框:

7.确定后我们再创建一个Student表,字段设置如图所示:

8.接着是为Student创建一个MajorID外键,使用PowerDesigner可以很轻松的完成这个工作,选择关系设置工具,在Student表上按住左键不放,拖拽至Major表,便可为Student表添加一个MajorID的外键:

9.哈哈,现在测试表已经设置好了,接着设置一下我们要生成的数据库吧,这些表都将被创建到该数据库中,我们在设计面板空白处右键—Properties,在弹出的属性设置对话框设置如下:

 

10好了,在此我们对新数据库的设置已经完成,但是在SQL中还是空空如也啊,我们要怎么把这边设计好的结构移植到SQLServer 2005中呢?执行操作:Database—Generate Database,设置好存储过程导出目录和文件名,点击确定即可:

11.到你的导出目录,就可以看见导出的数据库创建存储过程了,打开SQL,执行一下,你就会看到数据库被神奇的创建好了:

12.好了,数据库的准备工作做好了,下一篇我们就将使用该数据库结合CodeSmith自动批量生成代码啦~

上述实践中生成的源代码:

SQL.sql
/* ============================================================== */
/* Database name: PD_test */
/* DBMS name: Microsoft SQL Server 2005 */
/* Created on: 2010/6/13 星期日 17:27:17 */
/* ============================================================== */


drop database PD_test
go

/* ============================================================== */
/* Database: PD_test */
/* ============================================================== */
create database PD_test
go

use PD_test
go

/* ============================================================== */
/* Table: Major */
/* ============================================================== */
create table Major (
MajorID
int identity ,
Name
nvarchar ( 20 ) not null ,
Remark
nvarchar ( Max ) null ,
constraint PK_MAJOR primary key (MajorID)
)
go

/* ============================================================== */
/* Table: Student */
/* ============================================================== */
create table Student (
StudentID
nvarchar ( 20 ) not null ,
MajorID
int null ,
Name
nvarchar ( 20 ) not null ,
Sex
bit not null ,
Age
int null ,
Remark
nvarchar ( Max ) null ,
constraint PK_STUDENT primary key (StudentID)
)
go

alter table Student
add constraint FK_STUDENT_REFERENCE_MAJOR foreign key (MajorID)
references Major (MajorID)
go

转载于:https://www.cnblogs.com/huangcong/archive/2010/06/14/1757957.html

相关文章:

  • 百度2010暑期实习笔试面试全面备战
  • 机房空调节能最佳办法 数据中心的亲身体验
  • 如何在C#中读写INI文件
  • 易经之乾卦
  • CodeDom系列五--动态编译
  • BufferedImage和Image
  • 三层体系结构存在优点
  • Netbeans用swing让窗体居中
  • c++ 知识点--extern C的作用
  • 怎么样监控邮件营销效果
  • Intel 5100无线网卡间歇性掉线问题解决方案
  • 下一代网络和思科运营商路由系统
  • fgetc, EOF 及其它
  • 原SUN网站:java.sun.com,developers.sun.com,bigadmin将合并到OTN
  • ASP中随机函数Randomize的使用
  • [译]CSS 居中(Center)方法大合集
  • C++类中的特殊成员函数
  • CEF与代理
  • PHP 小技巧
  • QQ浏览器x5内核的兼容性问题
  • Rancher-k8s加速安装文档
  • Spark学习笔记之相关记录
  • Spring声明式事务管理之一:五大属性分析
  • Unix命令
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 后端_MYSQL
  • 那些被忽略的 JavaScript 数组方法细节
  • 前嗅ForeSpider中数据浏览界面介绍
  • 手写一个CommonJS打包工具(一)
  • 数据仓库的几种建模方法
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 在electron中实现跨域请求,无需更改服务器端设置
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • #pragma once
  • ( 10 )MySQL中的外键
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • **PHP分步表单提交思路(分页表单提交)
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .bat文件调用java类的main方法
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .net 4.0发布后不能正常显示图片问题
  • .NET Core 中插件式开发实现
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .NET 反射 Reflect
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数
  • ??myeclipse+tomcat
  • @angular/cli项目构建--Dynamic.Form
  • [ 隧道技术 ] 反弹shell的集中常见方式(四)python反弹shell
  • [16/N]论得趣
  • [20180224]expdp query 写法问题.txt