217卷积码viterbi译码器fpga实现方案doc.docx
《217卷积码viterbi译码器fpga实现方案doc.docx》由会员分享,可在线阅读,更多相关《217卷积码viterbi译码器fpga实现方案doc.docx(11页珍藏版)》请在冰豆网上搜索。
217卷积码viterbi译码器fpga实现方案doc
1.商品标题:
J2EE开发购物网站解析
2.本商品最适合那类职业人群:
JavaEE应用程序员
3.本商品可以解决他们什么问题:
本文通过实战全程编写一个购物网站来讲解如何使用J2EE来建立企业级的网络应用!
4.商品内容:
本文通过实战全程编写一个购物网站来讲解如何使用J2EE来建立企业级的网络应用!
一、搭建开发平台
本文从实战出发,所以关于一些概念性的问题就不多讲了,首先准备下面的家伙:
1.oracle
2.weblogic
3.Jbuilder
其它:
struts-console-2.2(用作struts视图开发)PowerBulider(方便数据库操作)Dreamweaver(美化前台页面)开发平台为Windows2000。
以下以一般性的配置为例详细介绍搭建J2EE的开发平台。
用机配置:
P4赛扬1.7G,256MB20GHDD操作系统:
Windowsdows2000SP3
数据库:
oracle8i
J2EE应用平台:
weblogic6.1sp2
EJB,JSP,JAVABEAN开发:
Jbuilder7weblogic版
第一步,安装配置oracle数据库
安装oracle最新版的9i什么事都没有,但如果你在P4的机器上装8i可能就会出现问题,点了安装之后没有反应(P4赛扬也存在这个问题)。
如果您是P4的机器又要装8i的话,那么先按如下方法做。
(1)创建一临时目录,并将Oracle8i的安装源程序拷贝到此目录。
找到目录stage\Components\oracle.swd.Jre\1.1.7.30\1\DataFiles\Expanded\Jre\Windows32\bin下的symcJit.dll的文件,并改名为symcJit.old。
注意OEM目录下还有一个symcJit.dll文件要改名。
(2)搜索到oraparam.ini文件,打开它,改变行RE_MEMORY_OPTIONS=-mx48m的参数为JRE_MEMORY_OPTIONS=-noJit-ms16m-mx32m
(3)其它的参数保持不变。
(4)执行本地硬盘install\Windows32\setup.exe目录下的Setup.exe文件。
此时调用的是修改过的参数文件oraparam.ini。
(5)安装时选择自定义模式,并且不创建数据库。
(7)Oracle8i安装完成后,安装目录中的下列每一个文件都有需要作相应修改。
(如果不修改点任何应用都没有反应)
assistants\dbca\dbassist.cl
assistants\dbma\dbmig.cl
assistants\ifa\ifa.cl
bin\elogin.cl
bin\owm.cl
ldap\oidamdin\oidadmin.cl
network\tools\netasst.cl
network\tools\netca.cl
owm\install\instelogin.cl
owm\install\instowm.cl
用编辑工具依次打开上述文件,增加参数-noJit,以dbassist.cl文件为例示意如下:
Command=("C:
\ProgramFiles\Oracle\Jre\1.1.7\BIN\JREW"-noJit-classpath....)
用相同的方法修改所列出的每一个.cl文件内容。
修改完后运行databaseadministrator下的DatabaseConfigurationAssistant就可以创建数据库了,这可是一个漫长的过程,在创建数据库时要创建全局标识,搞个好记的就行,以后好配置数据库连接。
创建完后,默认的DBA用户名为system,密码为manager。
第二步,安装配置weblogic6.1SP2,并连接oracle
Windows平台的weblogic基本上都可以直接安装,但要注意不要把它装到带有空格的目录里如ProgramFiles,或是中文目录中,默认为c:
\bea,按默认点下一步,就可以完成安装,这个基本没有意外!
(最简单的安装操作),最后要记住设的管理密码!
为了调试方便,不将weblogic设为自动服务启动。
设定您的管理密码,进入控制台,启动服务都需要。
为了方便,我将目录安到了D盘,并将domain改为maxuan,server改为max,接下来我们将配置JDBC连接oracle数据库。
首先打开D:
\bea\wlserver6.1\config\maxuan(maxuan为我改后的名字,默认的为mydomain),用文本编辑器如:
记事本或editplus打开startWebLogic.cmd,找到“setPATH=”这一行,加入“.\bin\oci817_8”,如本人的为“setPATH=.\bin;.\bin\oci817_8;%PATH%”
为了使启动weblogic不需要每次都输入密码,在“setWLS_PW=”输入安装时所设定的密码即可。
双击startWebLogic.cmd或在程序中直接运行StartDefaultServer启动weblogic服务(注意不要将这个窗口关了)
启动weblogic然后在程序中运行StartDefaultConsole,进入控制台操作,在出现的对话框中输入管理用户名system,密码为你设的密码即可进入!
点开左边的Services,你可以看到JDBC;
点开它,点击在下面的ConnectionPools,右边会出现配置项目,点击ConfigureanewJDBCConnectionPool出现配置项,在Configuration下的General标签下配置:
name:
这里我填写的是“mytest”;
URL填写为“Jdbc:
weblogic:
oracle”;
DriverClassname:
填写为“weblogic.Jdbc.oci.Driver”;
Properties(key=value):
填写为:
user=system
password=manager
server=oradb
这里的oradb即是所安装的oracle所创建的数据库的全局标识。
user和password我用的是默认的DBA,你可以用自己创建的用户名和密码。
点击Apply按钮完成。
点击Targets下的Servers标签,把Available下的Tgets-Server移到Chosen下,然后点Apply按钮。
接着配置下面的DataSources,在右边用“ConfigureanewJDBCDataSource”创建新的DataSources,这里的Name和PoolName均填上面的设定“mytest”,JNDIName填写“oradb”,同上面一样,点击Targets下的Servers标签,把Available下的Targets-Server移到Chosen下,然后点Apply按钮。
这时点开StartDefaultServer窗口应当看到已经启动JDriver/Oracle了!
第三步,安装配置JBuilder7
这里我安装的是weblogic版。
安装JBuilder不要把它装到带有空格的目录里如PrograihFiles,或是中文目录中,不然编译时会出错的。
安装很简单,不必多言,这里着重讲一下配置
小技巧一:
大家觉得JBuilder运行时也许很慢,因为Jbuilder默认使用32MB内存,如果你的内存够大的话,可以加大一点,具体办法如下:
在JBuilder安装目录BIN下找到Jbuilder.config文件,编辑它,改变Vmparams后的参数,启动JBuilder,在Help下的AboutJbuilder下可以看到Javaheap已经增加了,运行也快了许多,起码以后可以编译较大的文件。
小技巧二:
运行JBuilder时,发现编写代码很不方便,所选的代码与实际所见的总是差一个,这是因为字体的原因,解决方法如下,在Tools的EditorOptions下的Display里,将Editorfont里的FontFamily改为新宋体即可。
二、配置weblogic服务
用JBuilder可以整合weblogic,这样可以把在JBuilder下开发的EJB或打包成WAR的网站直接发布到weblogic!
首先在tools下选择ConfigureServers,在下面的userHome下,你可以看到“webLogicApplicationServer6.X-7.0”项,点击它,在右边会出现ServerSettings,将Enableserver打上勾,在下面的General下选择homedirectory和Workingdirectory。
然后点Custom项,选择JDKinstallationdirectory。
BEAhomedirectory。
接着输入密码和设定的Domainname和Servername这些都是你安装weblogic时设定的,如果目录选择正确,在下面的version下会自动出现你的weblogci的版本号。
点击OK即完成!
下面,我们做一个试验,看看weblogic是不是和Jbuilder整合了!
首先,我们新建一个工程,选Application,在name里填写你的工程名,接着按完成即可。
在新建工程项目时顺便看一看Server是不是用的Weblogic
然后再选新建,在出现的ObJectGallery下选Web,因为我们是要发布WEB应用,所以选取WebApplication,为它命个名,这将是网站包的名字,指定它的工作目录后选择Generatewar,点OK即可。
接下来,我们要新建一个JSP文件,一样点新建,在WEB下选择JAVAServerPage,按它的默认点下一步即可,它会自动创建一个JAVABEAN。
首先,我们要把自动生成的这个BEAN编译为class,选中它,点右键,在出现的菜单选Rebuild编译,然后编译你的WebApplication,它会自动生成WAR包,点这个包发布即可发布网站。
接下来打开浏览器输入http:
//127.0.0.1:
7001/tds/index.Jsp即可看到该页面。
三、创建数据库
Oracle8i和Oracle9i确实有些不一样,不过在界面上区别不大,还是以我的Oracle8i为例为大家讲解一下吧!
既然是实战,首先我们为自己新建一个开发用户,并创建一个表。
在oracle里创建新用户和表的方法比较多,只要你有管理员的权限,首先用最简单的。
在Oracle8i的程序组中启动DBAStudio程序项,在出现的数据库链接信息中输入管理用户名和口令即可,当然,在oracle中,你可以用用户名斜杠口令的方法登陆,连接身份选SYSDBA。
创建用户:
在登陆后,单击安全,在第一项,你就会看到用户,用右键你可以创建新用户,或者给用户授于角色,不同的角色拥有不同的权限!
Oracle8i预定义的角色,我在下面会讲。
咱们先断开system的数据库连接,可以在文件中选择,也可以用右键。
然后用我们创建的用户来登陆,并且在方案中找到表,然后就可以直接创建,由于是图形可视化,而且又是全中文的,我就不缀述了!
大家可以多试试!
用SQLPLUS工具创建用户和数据库:
在oracle中可以使用sqlplus这个工具来书写SQL语句,对于SQL高手来说,这是发挥才能的好地方。
咱们来试试吧,首先一样要先登陆,为了创建新用户,咱们仍以system来登陆。
在主机字符串中填入数据标识(oradb)
在登陆进去后,出现“SQL>”我们就可以在它后面书写SQL语句,grantconnect,resoucetomaxuanidentifiedbymax,这一句是创建用户maxuan,口令为max,并赋予connect,resource权限,在出现授权成功后,我们用connmaxuan/max这句来以maxuan连接数据库,这时的角色已经不是DBA了!
接下来的是些基本的SQL建表语句,不用多说了,在sqlplus中,每条语句结束用分号标识,在完成后,我们可以用quit或exit命令断开。
这里我说几个Oracle8i的预定义角色。
1、CONNECT角色:
授于最终用户的典型最基本的权利
ALTERSESSION--修改会话
CREATECLUSTER--建立聚簇
CREATEDATABASELINK--建立数据库链接
CREATESEQUENCE--建立序列
CREATESESSION--建立会话
CREATESYNONYM--建立同义词
CREATEVIEW--建立视图
2、RESOURCE角色:
是授予开发人员的
CREATECLUSTER--建立聚簇
CREATEPROCEDURE--建立过程
CREATESEQUENCE--建立序列
CREATETABLE--建表
CREATETRIGGER--建立触发器
CREATETYPE--建立类型
3、DBA角色:
拥有系统所有系统级权限
4、IMP_FULL_DATABASE角色、EXP_FULL_DATABASE角色:
BACKUPANYTABLE--备份任何表
EXECUTEANYPROCEDURE--执行任何操作
SELECTANYTABLE--查询任何表
5、DELETE_CATALOG_ROLE角色:
授予用户这个角色,用户就可以从表sys.aud$中删除记录,sys.aud$表中记录着审计后的记录,使用这个角色可以简化审计踪迹管理。
6、SELECT_CATALOG_ROLE角色、EXECUTE_CATALOG_ROLE角色:
SELECT_CATALOG_ROLE角色具有从数据字典查询的权利,EXECUTE_CATALOG_ROLE角色具有从数据字典中执行部分过程和函数的权利。
在前面我们掌握了些基本的oracle操作,如创建、授权用户,创建数据库等。
在OEM(OracleEnterpriseManager)可视化的窗口环境中,虽然我们也可以很方便地做这些事,但是事实上,用SQL语言书写在开发上更有效率!
oracle提供的SQL*Plus就是个不错的工具,如果大家喜欢窗口的开发环境,用SQLPlusWorksheet也行。
SQL(StructureQueryLanguage)语言是结构化查询语言,是数据库的核心语言,是面向集合的描述性非过程化语言。
SQL语言共分为四大类:
数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据库控制语言DCL。
1、数据查询语言DQL的基本结构是由select子句,from子句,where子句组成的查询块:
select<字段名表>
from<表或视图名>
where<查询条件>
2、数据操纵语言DML完成在数据库中确定、修改、添加、删除某一数据值的任务(以下是部分常用DML语句):
insert增加数据行到表
delete从表中删除数据行
Update更改表中数据
3、数据定义语言DDL完成定义数据库的结构,包括数据库本身、数据表、目录、视图等数据库元素(以下是部分常用DDL语句)
createtable创建表
createindex创建索引
createview创建视图
altertable增加表列,重定义表列,更改存储分配
droptable删除表
dropindex删除索引
4、数据库控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。
如:
grant将权限或角色授予用户或其它角色
revoke回收用户权限
roll回滚,是当某个对话更改了数据库中的数据后,由于某种原因用户不想提交此更改时,oracle所采取的保护操作。
这是一个把信息恢复到用户使update、insert、delete前最后提交的状态。
commit提交。
在完成数据库的插入,删除和修改操作时,只有当事务提交到数据库才算完成,有提交前只有操作数据库的本人才能看到,别人只有在最后提交完成才可以看到。
接下来,我们在SQL*Plus中实战一下,为我们下面将要做的打好基础。
用system登陆到SQL*Plus后,我们做如下操作:
SQL>createusermaxuanidentifiedbymax;
#创建口令为max的用户maxuan
SQL>grantconnect,resourcetomaxuan;
#为用户maxuan授权
SQL>connmaxuan/max;
#以用户maxuan进行连接
L>createtabletest(anumber);
#建立一个名为test的表,
只有字段名为A的一列,数据类型为数字
SQL>insertintotestvalues
(1);
#插入一条记录
SQL>select*fromtest;
#查询记录,此时A列的第一行为1
SQL>updatetestseta=2;
#更改记录,此时A列的第一行已改为2
SQL>commit;
#提交
SQL>deletefromtest;
#删除test表中所有的记录,此时test表中没有记录
SQL>roll;
#回滚到提交前,
此时再查询test表,A列第一行值又回复到2
oracle的数据类型
在数据库中创建数据表的时候,我们需要定义表中所有字段的类型,数据类型大致分为:
character,numberic,date,lob和raw等,这些是最基本的数据类型。
当然在oracle中也允许自定义数据类型。
在oracle中提供的character数据类型:
char():
固定长度字符串,最大长度为2000字节,如果不指定长充,缺省为1个字节长。
varchar2():
可变长度的字符串,最大长度为4000字节,具体定义时指明最大长度,这咱类型可以放数字、字母以及ASCII码字符集(或者EBCDIC等数据库系统接受的字符集标准)中的所有符号。
如果数据长度没有达到最大值,oracle会根据数据大小自动调节字段长度。
是最长用的数据类型。
nchar():
根据字符集而定的固定长度字符串,最大长度2000字节。
nvarchar2():
根据字符集而定的可变长度字符串,最大长度4000字节。
long:
可变长字符列,最大长度限制为2GB,用于不需要作字符串搜索的长串数据。
此类型是一个遗留下来的而且将来不会被支持的数据类型,逐渐被BLOB,CLOB,NCLOB等大的数据类型所取代。
numberic数据类型用来存储负的和正的整数,分数和浮点型数据,在oracle中提供的numberic数据类型:
number:
可变长的数值列,允许0、正值及负值,m是所有的有效数字的位数,n是小数点以后的位数。
在oracle中提供的date数据类型:
date:
缺省格式是dd-mon-yy(日-月-年)
在oracle中提供的lob数据类型:
blob、clob、nclob:
三种大型对象(lob),用来保存较大的图形文件或带格式的文本文件,如word文档,以及音频、视频等非文本文件,最大长充是4GB。
晕些数据存储在数据库内部保存。
bfile:
在数据库外部保存的大型二进制对象文件,最大长度是4GB,这种外部的LOB类型,通过数据库记录变化情况,但是数据的具体保存是在数据库外部进行的。
在oracle中提供的raw数据类型:
raw():
可变长二进制数据,具体定义字段时必须指明最大长度,这种格式用来保存较小的图形文件或带格式的文本文件,它也是一种较老的数据类型,将被lob数据类型所取代。
longraw:
可变长二进制数据,最大长度是2GB,可以用来保存较大的图形或带格式的文本文件,以及音频、视频等非文本文件,这也是一种较老的数据类型,将被lob数据类型所取代。
其它的数据类型:
rowid:
这是oracle数据表中的一个伪例,它是数据表中每行数据内在的唯一标识
integer:
整数类型
四、创建购物网站后台数据库
现在我们回到用J2EE体系开发购物网站的主题,开始实战建购物网站的后台数据库。
为了实现购物网站的基本的功能,我们需要建立四个表:
商品列表(products)、商品类型表(item)、订单列表(orders)和管理员列表(admin)。
表结构如下所示:
item表结构(商品类型表)
字段名称数据类型允许空主键/外键备注
type_idINTEGER(自动编号)否主键商品类别ID标记
typevarchar2(30)否商品类别名称
product表结构(商品列表)
字段名称数据类型允许空主键/外键备注
product_idINTEGER(自动编号)否主键商品ID标记
titlevarchar2(30)否商品名称
type_idINTEGER否外键商品类别标记
infovarchar2(80)是商品简介
pricenumber(16,2)否商品价格
orders表结构(订单列表)
字段名称数据类型允许空主键/外键备注
order_idINTEGER(自动编号)否主键订单ID标记
namevarchar2(20)否顾客姓名
addressvarchar2(100)是发货地址
telnumber(16)是联系电话
emailvarchar2(30)否联系email
btimedate是订购日期
product_idINTEGER否外键商品标记
uwordvarchar2(100)是顾客留言
admin表结构(管理员列表)
字段名称数据类型允许空主键/外键备注
admin_idINTEGER(自动编号)否主键管理员ID标记
adminnamevarchar2(20)否管理员名称
passwordvarchar2(20)否管理员密码
设计完表结构后,我们就要开始创建了。
创建表我想已经不是什么难事了,那么我们要注意的是product、item、orders这三个表之间的关联,还有自动编号。
下面是完整的SQL语句,在后面我会给出详细的说明,你可以在SQL*Plus里对照着输入,也可以将它存为SQL脚本文件,在SQL*Plus或SQLPlusWorksheet里执行。
当然也可以把代码直接拷贝到SQL*Plus里执行!
rem///BYMAXUAN开始///
createtableitem(
type_idintegernotnull,
typevarchar2(30),
constraintitem_pkprimarykey(type_id)
);
createtableproduct(
product_idintegernotnull,
titlevarchar2(30)notnull,
type_idintegernotnull,
infovarchar2(80),
pricenumber(16,2)notnull,
constrai