mysql数据库范文
时间:2023-04-07 09:43:54
导语:如何才能写好一篇mysql数据库,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。
篇1
1、通过线程的互斥来同步操作数据库;
2、数据库采用事务处理表中的数据;
3、采用共享方式打开数据库,不能以独占方式打开数据库建立一个mysql连接表加上一个临界区,根据实际情况定大小。
篇2
网上有关于eclipse连接mySql数据库资料,在百度上搜索相关信息,完全符合标题的很多,但阐述的都不详细,现就eclipse连接mySql问题通过实例进行分析。
一、正确安装MySQL。
打开下载的mysql安装文件mysql-5.5.32-win32.zip正确安装,为了数据安全,不要把mysql安装在系统盘,如C:盘。如果是重新安装mysql的话,要注意先备份好mysql目录中的data目录,这个目录是所有用户的数据目录,非常重要。重装时,备份好数据后,先卸载掉旧的mysql,并删除原mysql安装目录。注意选择Custom选项,这样才能修改安装目录。
二、创建一个MySql数据库结果如图1所示。
三、打开Eclipse,创建一个项目(myTest),安装mysql直连驱动jar包。
步骤:右键点击myTest--->build Path--->add external Archiver...选择jdbc驱动,点击确定。
四、驱动已经导入,下面我们来写一个程序验证一下。在myTest工程下建Class文件,名为mySql_1,输入如下代码:
import java.sql.*;
public class mySql_1
{
public static void main(String args[])
{ try
{
Class.forName("com.mysql.jdbc.Driver"); //加载MYSQL JDBC驱动程序
//Class.forName("org.gjt.mm.mysql.Driver");
System.out.println("成功安装Mysql驱动!");
}
catch (Exception e) {
System.out.print("Error loading Mysql Driver!");
e.printStackTrace();
}
try
{
Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/myTest","root","z");
System.out.println("成功 Mysql服务!");
Statement stmt = connect.createStatement();
ResultSet rs = stmt.executeQuery("select * from test_1"); //z 为你表的名称
while (rs.next())
{
System.out.print(rs.getString("id")+" ");
System.out.print(rs.getString("name"));
System.out.println(rs.getString("age"));
} }
catch (Exception e) {
System.out.print("get data error!");
e.printStackTrace();
} } }
五、我们来写一个程序验证一下向MySQL数据库中插入数据。在myTest工程下建Class文件,名为mySql_2,输入如下代码,往MySQL的Test_1表中插入10条数据。
import java.sql.*;
public class mySql_2
{
public static void main(String args[])
{ try
{
Class.forName("com.mysql.jdbc.Driver"); //加载MYSQL JDBC驱动程序
//Class.forName("org.gjt.mm.mysql.Driver");
System.out.println("成功安装Mysql驱动!");
}
catch (Exception e)
{ System.out.print("错误安装Mysql驱动!");
e.printStackTrace();
} try
{ Connection connect = DriverManager.getConnection( "jdbc:mysql://localhost:3306/mytest","root","z");
int num=10;
PreparedStatement Statement=connect.prepareStatement("insert into test_1 values(?,?,?)");
for(int i=0;i
Statement.setString(1,"No."+i);//给第一个问号赋值;
Statement.setString(2,"姓名"+i); //给第二个问号赋值;
Statement.setInt(3,100+i); //给第三个问号赋;
Statement.executeUpdate();
}
// } catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
// System.out.println("An error has occurred:"+e.toString());
// e.printStackTrace();
}
catch(SQLException e)
{ } } }
篇3
【关键词】MYSQL;MSSQL;安全分析;漏洞探测
动态网站的安全是关系到网站是否正常运行的根本,而企业内部客户信息等数据的安全更是其命脉所在,这些数据通常都保存在网站的后台数据库中,那么安全可靠的数据库是至关重要的。目前中小型企业多使用MYSQL和MSSQL作为后台数据库。
本文将从数据库系统的用户权限、目录权限、漏洞探测和密码窃听四个方面对MYSQL和MSSQL数据库做安全性分析。
1.测试环境
Windows server 2003网络操作系统,默认系统管理员账户,在IIS6.0上配置网站和FTP服务器,系统支持asp,,PHP。安装有MySql5.1和SQL server2008数据库系统。
2.数据库安全性分析
2.1 用户权限
(1)当你试图联接一个MySQL服务器时,身份检查使用user表中3个字段(Host,User和Password)。服务器在user表条目中匹配你的主机名和用户名,并当你提供了正确的口令才接受连接。我们通过root用户和密码,连接数据库后,使用select命令查看用户和权限。如图1所示。
图1 Mysql初始用户及权限
第一条说明可在本机使用root用密码登陆,拥有删除记录,修改记录,删除表等权限,如果密码强壮,那么,这是安全的。
第二条表示在任何主机使用root不需密码登陆,拥有删除记录,修改记录,删除表等权限,’%’在Host列里意味着“任何主机”并且是不特定的。
第三条表示在本机(localhost)匿名登陆,拥有删除记录,修改记录,删除表等权限,空白User值意味着“任何用户”并且是最不特定的。
第四条表示可以在任何主机匿名登陆,但没有任何权限。
显然,第二,三,四都是不安全的!
解决方法:如果你不需要远程维护,删除掉第二条,delete from user where host=“%”and user=“root”;或者给它加个强壮的密码。删除第三条和第四条。
(2)MSSQL数据库的权限控制是基于master库的syslogins表,拥有所有权限的帐号是sa,其他还有sysadmin,db_owner等不同权限帐号。由于SQL Server不能删除Sa这个超级用户,所以必须对这个帐号进行最强的保护,如使用非常强壮的密码。新建立一个拥有与Sa一样权限的超级用户来管理数据库,只有当其它系统管理员不可用或忘了密码时才使用Sa。定期检查所有登陆帐号,查看是否有不符合要求的密码。
如下命令检查是否有空口令帐号存在。
Use master
Select name,Password from syslogins where password is null
尽可能的删除存储扩展,防止本地用户利用存储扩展执行恶意命令。
如下命令删除xp_cmdshell扩展。
use master
sp_dropextendedproc xp_cmdshell
2.2 目录权限
(1)一般不会让服务器主机上的其它用户拥有对数据库目录文件的写访问权,但仅仅是读访问权也非常危险。由于像GRANT和SET PASSWORD这样的查询都被记录到日志中去了,常规和更新日志文件包含了有关密码的敏感查询文本。如果一个攻击具有对这些日志的读访问权,那么他只要在日志文件中查找GRANT或PASSWORD这样的敏感单词,就很容易找到密码的明文。要消除这些安全漏洞,就要安排数据库目录及其中所有文件和目录的所有权。
MySQL默认安装到c:\mysql,c盘默认everyone有读取和运行权限,由于权限的继承性,everyone对c:\mysql也有读取和运行权限,如图2所示,显然这是不安全的。
图2 windows2003默认目录用户及权限
解决方法:把mysql目录文件改为只有某个管理员账户(如windows下的adminis-trator账户)可读写。
(2)MSSQL也是安装到c盘,由于存取控制问题,最好安装到d盘等非系统盘进行严格的权限控制。而且,由于MSSQL数据库与系统结合非常紧密,系统管理员在没有数据库密码的情况下也可以通过选择windows验证来操作数据库。因此,普通用户有可能通过系统漏洞提升自己的权限,对数据库进行破坏。
解决办法:除了严格的存取限制外,还要定期查看SQL Server日志检查是否有可疑的登录事件发生。
对于MSSQL的安全是和windows系统安全紧密结合的,操作系统中帐户设置越多,安全性就越差。因此网络服务器只允许一个指定系统管理员进行管理是至关重要的。
具体要遵循如下原则:
①将唯一的系统管理员Administrator重命名,改为一个不易猜出的长名字,从而为攻击增加一层障碍。
②将Guest帐号禁用,同时重命名为一个复杂的名字,增加口令。因为guest帐号不能被删除只能改名。有的黑客工具可以利用guest账号的弱点,将帐号权限从一般用户提升到管理员权限,从而破坏系统。
③给系统管理员帐号一个复杂的口令,长度最少在8位以上,且必须同时包含字母、数字、特殊字符。其次不要使用熟悉的单词、熟悉的键盘顺序、熟悉的数字等。因为口令是黑客攻击的重点,口令一旦被突破也就无任何系统安全可言了,而这往往是不少网管最易忽视的地方。
④口令必须定期更改,且最好记在心里,除此以外不要在任何地方做记录。
⑤针对密码破译,采用Windows Server 2003提供的账号锁定功能,设定登录最大允许的出错次数,一旦登录次数超过设定次数,系统会自动锁定账号,这样致使密码破译无法进行。另外,如果在日志审核中发现某个帐号被连续尝试,则必须立刻更改此帐号(包括用户名和口令)。
2.3 服务器漏洞探测
(1)MySQL安全漏洞
例1:MySQL CREATE TABLE调用绕过访问限制漏洞。
漏洞描述:CVE ID:CVE-2008-7247
当数据主目录包含有到不同文件系统的符号链接时,MySQL的ql/sql_table.cc允许通过认证的远程攻击者通过以特殊DATA DIRECTORY或INDEX DIRECTORY参数调用CREATE TABLE绕过预期的访问限制,执行各种非授权操作。
解决方法:下载厂商补丁http:///commits/59711
例2:MySQL SELECT语句(下转第35页)(上接第24页)处理拒绝服务漏洞。
MySQL的mysqld守护程序没有正确地处理在执行某些带有子查询的SELECT语句期间所产生的错误,在执行使用GeomFromWKB函数的语句期间没有保留某些null_value标记,这允许通过认证的远程攻击者通过提交特制语句导致守护程序崩溃。
目前厂商已经了升级补丁以修复这个安全问题,到厂商的主页下载:
http:///commits/88409
http:///commits/87482
(2)默认的情况下,MSSQL则会打开TCP的1433端口监听
虽然MSSQL可以人为的改变监听端口,但是通过微软未公开的1434端口的UDP探测可以很容易知道MSSQL使用的是什么TCP/IP端口。往UDP1434端口发送一个1个字节的内容为02的数据包,被探测的系统则会返回安装的MSSQL服务信息,这些信息包括:主机名称、实例名称、版本、管道名称以及使用的端口等。这个端口是微软自己使用,而且不象默认的1433端口那样可以改变,1434是不能改变的。由于利用了UDP端口,一般的过滤是很难防范的。
解决办法:安装防火墙,或者利用Windows 2003系统的IPSEC对网络连接进行IP限制,实现IP数据包的安全性。对IP连接进行限制,只保证自己的IP能够访问,拒绝其他IP进行的端口连接,把来自网络上的安全威胁进行有效的控制。重要的是,还要对端口作过滤,包括大部分的TCP和UDP端口,因为仅仅做IP限制的话,有可能恶意攻击者先攻击被数据库服务器信任的主机,控制之后作为跳板对数据库服务器进行攻击。
2.4 密码窃听
在单机环境下,基于用户口令本身的保密性(与口令长度、复杂性等有关),可以在一定程度上防止其他用户进入系统。但在网络环境下,存在另外一种威胁:攻击者可通过窃听通信信道或进行网络窥探的方法,在口令的明文传输过程中获得用户口令,使得这种身份认证方法变得极不安全。
MySQL和MSSQL系统客户与服务器构架的一个重要问题就是通过网络传送数据时的安全问题。如果客户与服务器间的交互以纯文本形式发生,黑客就可能“嗅出”被传送的数据包,从而获得机密信息。
解决方法:可以通过激活MySQL和MSSQL系统配置中的SSL,或应用一个OpenSSH这样的安全应用来为传送的数据建立一个安全的加密“通道”,以关闭这一漏洞。以这种形式加密客户与服务器连接可使未授权用户极难查阅往来的数据。另外的办法就是将口令加密传输,现在有多种加密技术,常用的是单向函数加密技术,如在系统中使用MD5算法来实现口令的加密存储与传输。
3.总结
网站后台数据库的安全分析,目的就是保证企业内部客户信息等数据的安全和企业网站的正常运行。从上面的安全分析结果来看,网站后台数据库的安全依赖于良好的安全管理和有效的安全策略。实际上数据库的安全是一个十分复杂的工程,这里只体现了其中的几个侧面,更精深的安全管理,有待于我们在实践和应用中不断地深入研究。
参考文献
篇4
【关键词】在线监测系统;MySQL数据库;C++builder
1.引言
对于在线监测仪来说,通常都是长时间连续运行的,数据量一般都巨大,并且需要在过程控制中实时修改运行参数,如何管理数据文件,运行条件参数和相关信息等就显得尤为重要。这需要借助专门的数据库来才能有效的管理。
近20年来,数据库技术不断发展,至今已经有很多成熟的商品化的数据库管理系统(DBMS),例如:SQL Server、Oracle和Access等,它们的应用越来越广泛,但对用户来说还存在不足之处。(a)SQL Server:SQL验证的登陆只对特定的服务器有效,也就是说,在一个多服务器的环境中管理比较困难;对于每一个数据库,必须分别地为其设定管理权限;移植性较差,不能跨平台移植;价格也不便宜;(b)Oracle:价格昂贵,服务费用也比较高;对硬件要求也比较高,使得整体投入非常高;(c)Access:主要用于单机桌面小型数据库管理系统,属于Local DBMS,难以支持大型应用;速度比较慢,功能还不够完善。
目前,采用开源数据库已开始成为一种潮流,如许多小型、中型或大型网站数据库服务器都选择MySQL数据库。MySQL是一个精巧的SQL数据库管理系统,以操作简便著称。由于其强大的功能、丰富的应用程序接口及精巧的系统结构设计,在基于数据库的应用软件开发中得到了广泛的应用。MySQL具有下述优势;(a)是目前运行速度最快的SQL语言数据库;(b)多样的数据类型和超大的容量可以方便完整地保存反映设备状态的各种数据;(c)支持多平台,可以在不同的操作系统下进行数据的准确移植;(d)可以免费获得,可以有效降低成本。
本文中在线监测系统硬件平台采用PC/104,具体如下:PC/104嵌入式主板采用SBC-4571(北京集智达公司),其是嵌入式Vortex86 CPU模块,带4串口,2个USB,支持CRT/LCD/音频/网络,板载128MB DRAM内存,1个增强IDE接口,显示屏采用元太 6.4"LCD显示屏。PC/104主板外加PC/104的I/O卡,就能方便的实现在线监测系统的控制中心。在线监测系统的软件平台为当前流行的Windows 2000操作系统上,采用MySQL数据库作为在线监测系统的数据库,应用软件在集成开发环境C++builder 6.0上开发。在此平台上研究在线设备的应用程序与MySQL数据库的连接、更新、插入,及数据库中关键字段的动态实时显示技术。本设计采用的MySQL版本为mysql-5.0.37-win32及其在windows下的驱动为mysql-connector-odbc-3.51.14-win32。下面从MySQL在线监测数据库的设计、C++ builder与MySQL数据库的ODBC连接,应用程序的设计三方面来论述。
2.MySQL在线监测数据库的设计
本设计是为了研究MySQL数据库在在线监测系统中应用的可行性,及关键技术的开发与研究。因此设计的onlinebase数据库就相对简单, 只包含一张反映在线设备运行结果的results的表。表results包括关键字段“id”、反映在线监测指标值的int类型字段“value”、反映在线监测的实时条件的int类型字段“conditon” 和在线检测指标时的备注字段“remark” 等4各字段。创建数据库onlinebase、数据表results后,可以通过命令desc results来查看表的具体描述,如图1所示。
3.C++ builder与MySQL数据库的ODBC连接
C++builder不能直接访问MySQL数据库,但可以通过ODBC来实现。因为ODBC屏蔽了各种数据库的差异,安装了MySQL数据库的ODBC驱动程序后,就可以通过ODBC对MySQL数据库进行操作。
创建ODBC源实际上就是一个写操作系统注册表的过程,可以在应用程序中实现,但为了简单方便,还是通过在操作系统中“控制面板\性能和维护\管理工具\数据源(ODBC)中创建。选择添加用户DSN,然后选择MySQL ODBC 3.51 Driver的数据源驱动,点击完成,出现图2的对话框。
在图2所示对话框中,在“Data Source Name”编辑框中输入onlineodbc,设置了ODBC数据源的名;在“description”编辑框中输入对DSN的说明;数据在“server”编辑框中输入local,设置为本地服务器;然后设置User和Password,这里以root用户访问,并输入root用户的密码;最后选择onlinebase作为数据源的数据库。点击下面的“Test”按钮可以测试通过ODBC数据源连接所选数据库是否成功。最后点击“ok”按钮,返回ODBC源数据管理器,如图3所示,就可以发现新增加的onlineodbc数据源。
图1 创建results表,
并查看results表的结构
图 2 创建onlinebase数据库的ODBC源
图3 创建onlieodbc数据源后
的ODBC数据源管理器窗口
4.应用程序的设计
C++builder6上开发的应用演示程序的功能是主要是:与MySQL数据库onlinebase的连接,并将数据表results在人机界面上动态显示;在线监测指标value字段数值也在曲线上的实时动态显示;可以在人机界面上手动添加记录,删除记录。最重要的是要模拟在线监测系统,每隔一段时间写一条results表中的记录,能在相应的显示表中和曲线中实时更新,动态显示。最终的应用程序运行界面如图4所示。
图4 应用程序与onlinebase数据库
连接后,运行的界面
(1)手动添加记录的实现
通过下列语句,可以在表results最后添加一条编辑框EdtRemark、EdtValue、EdtConditon中输入正确格式的记录。
Table1->Append();
Table1->FieldValues["id"] = nRecordID ;
Table1->FieldValues["remark"] = EdtRemark->Text ;
Table1->FieldValues["value"] = EdtValue->Text.ToInt() ;
Table1->FieldValues["conditon"] = EdtConditon->Text.ToInt() ;
添加记录后,刚增加的value字段内容也相应显示在Chart1上,具体实现语句如下:
double TempD = this->Chart1->Series[0]->XValues->Value[1] -
this->Chart1->Series[0]->XValues->Value[0] ;
this->Chart1->Series[0]->Delete(0) ;
Chart1->Series[0]->AddXY(this->Chart1->Series[0]->XValues->Last()+TempD,
this->Table1->FieldValues["value"],
this->Table1->FieldValues["id"],
clBlue ) ;
(2)动态绘制数据图表
为了模拟在线监测,实现了模拟动态监测的功能。首先从在组件模板的System标签页下拖动Timer1:TTimer组件到Form1上,在Object inspector中设置Timer1的Enabled属性为false,Interval属性为2000。
然后在Timer1中的OnTimer事件中先产生一个三角波,产生三角波的代码如下:
// 产生三角波波形
iCount = iCount % iPeriod ;
if( iCount
iValue = 10 * iCount ;
}else{
iValue = 10 * ( iPeriod - iCount ) ;
}
iCount = iCount + 1 ;
而后添加增加记录的代码,如下:
Table1->Append() ;
Table1->FieldValues["id"] = nRecordID ;
Table1->FieldValues[“remark”] = “正常” ;
Table1->FieldValues["value"] = iValue ;
Table1->FieldValues["conditon"] = 20 ;
最后添加实时显示的代码。这样只要在Auto按钮OnClick事件中使用一条 Timer1->Enabled = true; 语句就可以开始自动每隔2s增加一条记录,并实时显示value字段的值。图4 Chart1中显示的前两个三角形就是模拟在线监测显示的结果。
5.结论
本文在PC/104系统上的构建在线监测系统,软件平台采用Windows2000操作系统,在C++Build6.0环境下开发的应用软件借助MySQL数据库不仅可以在线显示监测数据和也可以从数据库中显示先关历史数据,软件界面友好,操作方便,运行稳定,性价比高。
参考文献
[1] Russell J.T Dyer.MYSQL 核心技术手册[M].李,李东梅.译.2 版.北京:机械工业出版社,2009:442-470.
[2]王军.Ian Gilfillan《MySQL4从入门到精通》[M].北京:电子工业出版社,2003.
[3]陆卫忠等.C++Builder 6程序设计教程(第二版)[M].科学出版社,2011.
作者简介:
毛成光(1990—),男,大学本科,现就读于温州医学院信息与工程学院生物医学工程专业。
篇5
摘要:Moodle平台作为一个优秀的开放式网络课程管理系统,可以方便地用来构建网络课程。本文主要论述了Moodle课程迁移到新的服务器后,由于服务器IP地址的改变而造成课程资源中部分链接失效的问题,分析了问题产生的原因,并找出了解决方案。
关键词:Moodle;课程;Mysql;迁移
中图分类号:G642
文献标识码:A
Moodle是Modular Object-Oriented Dynamic Learning Environment(模块化面向对象的动态学习环境)的缩写,是专门针对广大教师在信息化环境中设计、管理、实施和评价自己的课程与教学而开发的课程管理系统。Moodle自诞生之日起就以自由软件的形式出现,遵循GPL(GNU Public License)协议,这使它充满了无穷的活力,吸引了一大批开发者和使用者,目前主流版本是1.9版。
1Moodle数据迁移中存在的问题
Moodle可以运行在Windows环境下,首次使用需要安装,安装成功后,系统会生成一个名为config.php的文件,内含服务器的配置信息。如果要把Moodle整体迁移到另外一台服务器上,只要拷贝整个Moodle文件夹到新服务器上,并把config.php文件中wwwroot项对应的IP地址改为新服务器的IP地址,就可以了。
教师在使用Moodle建设课程资源的时候,往往用一台计算机作为服务器添加教学活动和课程资源,完成网络课程的制作。在这些课程资源建设完成后,若要迁移到另外一台服务器上,课程资源中的有些内容可以正常显示,但是有些图片或文件可能会因为链接无效而导致课程资源无法使用,这些问题可用通过修改Mysql数据库中的数据予以解决。
2原因分析
Moodle中可以添加多种资源,主要包括编写文本页、编写网页、链接到文件或站点、显示一个目录、部署IMS包和插入标签等,不同类型的资源在Mysql数据库对应表中的字段类型和长度等不同。表1中以显示一个图片为例,列出了使用“链接到文件”显示图片和使用“编写网页”显示一个嵌入式图片的区别,这两条记录都是存储在表mdl_resource中。
由表1可见,通过“链接到文件”所链接的图片,保存在reference字段中,保存的仅是文件名,是一种相对路径的存储,没有固定地和服务器IP地址对应,只要相对位置的图片还存在,在整个Moodle课程拷贝到其他服务器上时,仍然会正常显示;而通过“编写网页”在网页中嵌入图片,是在alltext字段中存储了该网页的html语句,其中的211.87.171.227是创建该网页时所使用服务器的IP地址,alltext字段中的内容不会因为服务器IP地址的改变而改变,该图片将因找不到IP地址所指向的文件而无法显示。
除了图片文件外,其他类型的文件也都存在这种相对位置引用和使用IP地址进行引用的问题。而“添加活动”在Mysql中的存储方式和资源的存储方式类似,只不过不同的活动存储在不同的表中。
3解决方案和步骤
Moodle平台后台数据库可用Mysql,在数据库管理方面,可以使用命令行,但是太多命令不利于记忆;可以借助于Mysql Administrator管理,但是在安装和使用方面不是很方便。
PhpMyadmin 是一个以PHP为基础,以Web-Base方式架构在网站服务器上的Mysql的数据库管理工具,可以管理整个Mysql服务器,界面简单友好,在Moodle中可以借助于PhpMyadmin进行数据库的管理。
3.1在Moodle中添加PhpMyadmin
Moodle1.9版中不包含PhpMyadmin,可以从官方下载站点/下载,解压后得到一个名为PhpMyadmin的文件夹,直接拷贝PhpMyadmin文件夹到..\server\moodle文件夹下。
3.2修改配置文件
进入..\PhpMyadmin\libraries目录,打开config.default.php文件,找到以下各项,将其后的字符串进行修改,如下:
$cfg['PmaAbsoluteUri'] = '211.87.165.136';
//新服务器的IP地址
$cfg['Servers'][$i]['host'] = 'localhost';
//通常用默认
$cfg['Servers'][$i]['user'] = 'root';
// Mysql的默认用户
$cfg['Servers'][$i]['password'] = '123456';
// 密码须与设置Moodle时相对应
$cfg['DefaultLang'] = 'zh';
//选择语言,zh代表简体中文
3.3Mysql数据库管理
打开IE浏览器,输入 211.87.165.136/PhpMyadmin,211.87.165.136就是新服务器的IP地址,就可以用PhpMyadmin管理包括Moodle数据库在内的Mysql数据库,如图1所示。
图1 用PhpMyadmin管理Moodle数据库
3.4修改资源的链接
为了能够使课程资源在迁移到新服务器上之后能正常使用,需要修改相关表中的内容,把用文本形式(VARCHAR或MULTITEXT等类型)记录的链接资源修改与新服务器相对应。Moodle数据库共有200多张表,在课程资源建设完成以后,逐个表进行检查和修改是不可行的,可以使用游标,用存储过程自动逐条进行修改。
在Moodle数据库中建立存储过程P_ChangeIP,找出含有VARCHAR、MULTITEXT或TEXT类型的字段及其表名,定义一个游标,每次返回的结果是表名和其中的字段名,用CONCAT函数拼接字符串构建SQL语句,在Update命令中使用Replace进行更新,用新服务器的IP地址替换原服务器的IP地址。
存储过程的代码如下:
CREATE PROCEDURE P_ChangeIP( )
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE tname,cname VARCHAR(64);
DECLARE cur1 CURSOR FOR
SELECT table_name,column_name
FROM information_schema.columns
where table_schema = "moodle" and
(data_type like "%varchar%" or data_ type like "%text%");
--information_schema是系统数据库,通过它可获取Moodle数据库的表名、列名等信息
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
OPEN cur1;
REPEAT
FETCH cur1 INTO tname,cname;
IF NOT done THEN
set @sql_text:=concat("update ",tname, "set ",cname ," = replace(",cname,",
'211.87.171.227','211.87.165.136')");
prepare stmt from @sql_text;
execute stmt;
deallocate prepare stmt;
END IF;
UNTIL done END REPEAT;
CLOSE cur1;
END
存储过程定义完成后,使用CALL Moodle.P_ChangeIP( )命令执行之,就可以一次性完成对相关链接数据的修改了。
4结束语
作为一个正在不断成长、日趋成熟的网络教学平台,Moodle的技术在不断改进之中, 其技术改进需要使用者共同参与,进一步优化软件功能,开发更多适合国情的教学模块,为教学提供更好的技术支持。随着功能的不断完善,Moodle必将为学校的网络课程资源建设提供强有力的支持,成为提升教学质量的有力工具。
参考文献:
[1] 刘贯南,刘荣光,刘晓琴. 基于Moodle网络课程的设计与实施探索[J]. 现代教育技术,2008(6).
[2] 曹效英,徐勤岸. 基于Moodle的网络课程开发[J]. 软件导刊,2008(4).
[3] 杨慧玲,张志洁. Moodle平台在网络教育资源建设中的应用[J]. 教育技术导刊,2007(8).
[4] 陈恒法,罗兵. 基于Moodle 教学辅助系统的应用实践[J]. 中国教育信息化,2007(5).
Solution to Moodle Course Migration Based on Mysql Database
QIAO Xian-liang
(Qingdao Ocean Shipping Mariners College, Qingdao 266071,China )
篇6
关键词PHPMySQLODBC
1.引言
在Internet应用中,将服务器端脚本技术和客户端脚本技术结合起来可以制作出丰富多彩的页面。CGI和ASP是比较流行的服务器端脚本技术。通常CGI在跨平台的开发中扮演着主要角色,可以使用VB、C或Perl等来实现,用它们写的CGI脚本是一个单独的程序,而不是嵌在HTML文档中再通过另一个程序解释替换的,所以它是一种“非嵌入式”的服务器端脚本。另外,每一次修改CGI程序都必须重新将其编译成执行文件,因此,这样的编写方式事实上是比较困难且没有效率。ASP则是嵌入式的服务器端脚本,每一次修改脚本并不需要重新编译成执行文件就可以直接执行,但ASP有一个致命的缺点:不具有跨平台开发能力。目前ASP只能在Windows环境下运行,而无法在Internet上的Unix平台下使用。在这种情况下PHP的问世,在WelCGI的领域里掀起了一场革命。
2.PHP介绍
PHP(PersonalHomePage)是一种跨平台的服务器端嵌入式脚本语言。它最初是RasmusLerdorf于1994年开发的。早期的版本,提供了访客留言本、访客计数器等简单功能。随后,在第二版中增加了对mSQL的支持。自此奠定了PHP在动态网页开发上的影响力,并迅速在Internet上流传开来。截止1999年,已有超过十五万个站点使用PHP。同时,PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱,随着新函数库的不断加入,使PHP无论在Unix或是Win32的平台上都可以有更多新的功能。如今,PHP已发展至4.0版。在语法方面,PHP混合了C、Java、Perl以及PHP以前版本的优点。它相当于Script与CGI的结合语言,但是其执行将效率却比CGI更好,程序编写也比HTML更便利且更富有弹性,程序的安全性及保密性也比Script好。在函数支持方面,PHP几乎覆盖了Web应用的各个方面,其中最有特色的是数据库函数,使用PHP完成一个含有数据库功能的网页非常简单,而PHP支持的数据库也非常丰富,目前包括:Oracle、Sybase、mSQL、MySQL、Informix等。
3.访问MySQL数据库
MySQL是一个快速、健壮和易用,且支持多线程、多用户的SQL数据库服务器。虽然PHP通过ODBC支持几乎所有的数据库。但对于开发数据驱动的网站而言,选择MySQL应该说是最佳组合,这不仅因为MySQL是免费的,更在于它具有许多同大型数据库相媲美甚至超过它们的优良性能。PHP实现对MySQL数据库的访问有两种方法:
1)利用PHP的数据库函数连接
这里主要用到四个数据库函数:
mysql_connect()建立与MySQL服务器的连接。
mysql_select_db():选择MySQL服务器中的数据库供以后的数据查询操作query处理。mysql_query():送出query字符串以帮助MySQL做相关的处理或执行。
mysql_fetch_row():用来将查询结果result单行移到数组变量中。数组的索引是数字
索引,第一个索引值是0。
2)通过ODBC连接
PHP通过ODBC连接MySQL数据库主要用到四个函数:
Odbc_connect():用来同ODBC数据源建立连接。
Odbc_do():用来在建立连接之后执行数据库查询。
Odbc_result():用于取得当前记录行中某个字段的值。
Odbc_fetch_row():用来把查询结果保存到数组,每个数组元素对应一条记录。
上述两种方法在与数据库建立连接的语法上,并没有太大差别。不过在相比较之下,通过ODBC方式存取数据库比PHP直接存取MySQL耗时间,但通过ODBC接口存取数据库不必担心使用何种数据库,如Oracle,Informix,Sybase等。它们都支持ODBC接口,这样可减少更换数据库时需要更改程序的问题。图1显了PHP连接数据库的两种方法。
PHP
MySQL
MySQL
图1PHP连接数据库说明图
4.一个应用实例
现在很多校园网站都提供成绩查询功能。PHP和MySQL数据库相结合使用可以方便的实现此功能。首先建立数据库Score及数据表Score。建表SQL语句如下:
CreattableScore(
Stu_novarchar(10)notnull,
namevarchar(10)notnull,
scoreltinyint(4),
score2tinyint(4),
PrimaryKey(stu_no)
);
1)通过PHP的数据库函数访问MySQL的代码如下:
〈?php
print(“〈html〉〈head〉\n”);
print(“〈title〉成绩查询〈/title〉〈/head〉\n”);
print(“〈body〉〈cennter〉”);
print(“〈fontsize=6color=”ff0000〉您的成绩如下〈/font〉”);
$comm=mysql_connect(“localhost”,“root”,"");
mysql_select_db(“Score”,$comm);
$str=“Select*FromScoreWherestu_no=’$pstu_no''''andname=’$pname''''”;
$reault=mysql_query($str,$comm);
print(“〈tablealign=center〉”);
$sqlrow=mysql_fetch_row($result));
print(“学号:$sqlrow[0]”);
print(“姓名:$sqlrow[1]”);
print(“成绩1:$sqlrow[2]”);
print(“成绩2:$sqlrow[3]”);
print(“〈/table〉〈body.〈/html〉”);
?〉
2)通过ODBC访问MySQL数据库的代码如下(省略的代码同上):
〈?php
…
$comm=odbc_connect(“Score”,"system","");
$str="Select*FromScoreWherename=’$pname’andstu_no=’$pstu_no’”;
$result=odbc_do($comm,$str);
…
while(odbc_fetch_row($result))
{
$pstu_no=odbc_result($result,"stu_no");
$pname=odbc_result($result,"name");
$score1=odbc_result($result,"score1");
$score2=odbc_result($result,"score2");
print(“学号:$pstu-no”);
print(“姓名:$pname”);
print(“成绩1:$score1”);
print(“成绩2:$score2”);
}
…?〉
5.结束语
对于Wed服务器端的开发,PHP是一种易开发、高效能的动态脚本编程语言。在未来的几年内,PHP必将成为主流的脚本语言,并被Wed研究和开发人员熟悉和掌握。
参考文献
篇7
随着Internet的发展和普及,越来越多的单位和个人都建立了自己的网站,以便更好地进行各种信息交流或者宣传自身,亦或者通过管理系统提高工作效率,迈入信息化、高效化的快节奏时代。Web开发人员比较青睐Wamp的开发环境,即WAMP(Windows+Apache+MySQL+PHP),是指是基于Windows 操作系统下,Apache作为 Web 服务器,MySQL 作为数据库以及PHP(部分网站也使用 Perl 或 Python)作为服务器端脚本解释器完美组合,也是目前较为广泛使用的WEB 应用程序平台。这其中MySQL数据库作为网站运行更新的桥梁纽带,起着举足轻重的作用。
【关键词】数据库 MySQL 管理系统
那什么叫数据库呢?可以理解为是存储数据的仓库。举例来说:比如你的记录本上有你的学生的学号、姓名、电话、家庭地址,这些记录就是数据。把这些数据按照学号、姓名、电话、家庭住址存放在一个表里,再把这样的表放到数据库里供我们或者人查询使用,这就是我们说的数据库。如今:已经存在Oracle、SQL Server等诸多优秀的数据库。同时,还有MySQL、PostgreSQL都是很优秀的开源数据库。
MySQL是一个小型关系型数据库管理系统,是一款非常优秀的自由软件。由瑞典 MySQ LAB 公司开发,它之所以流行,是因为它有着自己独特的优势:体积小、速度快、总体拥有成本低,最重要的是代码开源,共享。作为商业运行网站,为了降低网站总体成本而选择这样的数据库当然是显而易见的。
1 MySQL支持的语言---SQL
1.1 什么是SQL语言
结构化查询语言(Structured Query Language,简称SQL)是一种介于关系代数与关系演算之间,并且使用范围限定的形式化语言。它专门用于与关系数据库管理系统进行数据交互,并且能够完成数据查询、数据操作、数据定义和数据控制四个方面的功能,是一种通用的、功能性强大的关系数据库语言。
1.2 SQL语言的特点
(1)统一的语言。SQL语言可用于所有用户的数据库模型,包括系统管理员数据库管理员应用程序开发人员及许多其他类型终端用户。所有用SQL编写的程序都是可以移植的。
(2)语言简洁、易学易用。SQL语言用了九个动词完成率数据定义(CREATE、DROP、ALTER)、数据查询(SELECT)、数据操作(INSERT、UPDATE、DELETE)、数据控制(GTANT、REVOKE)的大部分功能.。
(3)高度非过程化。降低了数据库使用的复杂度,也提高了数据的独立性。
(4)SQL语言既可以交互式使用,也可以以嵌入形式使用
(5)面向集合的操作方式
(6)SQL语言支持关系数据库三级模式结构。数据库三级模式指:内模式对应于存储文件,模式对应于基本表,外模式对应于视图。
2 MySQL与其他数据库
2.1 甲骨文的Oracle
Oracle数据库是世界上第一个支持SQL语言的数据库。主要应用于大型系统。随着网格技术的发展和应用,Oracle公司推出以网格计算模型的关系型数据库管理系统。尽可能以最低成本和最高的服务质量提供信息,它提供了企业网格计算所需的集群、工作负载管理、数据中心自动化、易用性。
2.2 IBM的DB2
DB2是IBM公司研制的一种关系型数据库系统。主要应用于OS、Windows等平台下。DB2提供了高层次的数据利用性,数据的完整性好。而且DB2的安全性高,具有很强的可恢复性。DB2数据库主要用于大型系统当中。
2.3 开源的MySQL
MySQL数据库是一个开放源代码的数据库。是由瑞典MySQLAB公司开发的。MySQL广泛地应用于Internet上的中小型网站,针对不同客户群提供Community Server、Enterprise Server和Embedded Server3种套件,体现了良好的伸缩能力。SQL Server 数据库也是微软公司开发的。SQL Server是基于客服机/服务器模式的大型数据库管理系统,能够支持大吞吐量的事务处理,能在网络环境下进行数据的存取,能用于开发决策支持系统等软件。
2.4 微软的Access和SQL Server
Access 数据库是微软公司开发的小型数据库。Access数据库是Microsoft公司Office系列软件之一,在程序设计概念上更加接近大型DBMS。
3 MySQL数据库的价值
3.1 MySQL是开放源代码
MySQL是源代码可共享、开放的数据库,任何人都可以获取该数据库的源代码,基于此基础进行二次开发,修正MYSQL的缺陷,完善数据库代码,是一款可自由运用的数据库。
3.2 MySQL的跨平台性
MYSQL可以在Windows系列的操作系统上运行,还能在MacOS、UNIX、Linux等操作系统上运行。
3.3 功能强大
MySQL 是一个真正的多用户、多线程 SQL 数据库服务器。MySQL 是以一个客户机/服务器结构的实现,它由一个服务器守护程序 mysqld 和很多不同的客户程序和库组成。
总之,与其他的大型数据库如 Oracle、DB2、SQL Server 等相比,MySQL 虽有不足之处,如规模小、功能有局限等,但是这并没有浇灭Web开发人员对它的钟爱热情。因为对于一般的个人使用者和中小型企业来说,MySQL 提供的功能已经绰绰有余,目前互联网上流行的网站构架平台是 WAMP开发环境,MySQL 加 PHP 的结合在网际网路上的应用较常见,且获得了“动态配对”(Dynamic Duo)的雅号,它的强大功能、灵活性、丰富的应用编程接口(API)以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软件用户的青睐,因而MySQL一跃成为了当今最流行的数据库。
篇8
【关键词】PHP MySQL B/S
【中图分类号】 TP311 【文献标识码】A
Design of Library Bibliographic Recommendation System Based on PHP
Liu Xinxia
(Library of Nanjing University of Finances and Economics,Nanjing 210046,Jiangsu)
【Abstract】In order to expand the library service, make readers more convenient, more fully use of library resources, using Apache+PHP+MySQL to build a platform which given the current advanced network and mature PHP technology. Through the dynamic webpage making technology, developed a set based on Web and B/S bibliographic recommendation system. This paper mainly introduces that basic structure of the library bibliographic recommendation system, design of database, database on PHP data access and manipulation, and emphatically introduces the data import and Chinese garbled solution method which encountered in the system design.
【Key words】PHP MySQL B/S
1 引言
随着信息技术在图书馆中的广泛应用,通过互联网进行信息传播的数字化图书馆已经成为未来图书馆的发展方向。将馆藏文献资源书目数字化,直接通过图书馆网站进行书目信息阅读是图书馆展现馆藏特色、拓展读者服务的一种高效率手段。
目前网站的开发主流平台有LAMP(linux操作系统、Apache网络服务器、MySQL数据库、PHP编程语言),J2EE和“.NET”商业软件。由于PHP和MYSQL具有免费、开源等多方面优点,因此受到广大的Web自由软件爱好者、特别是系统开发者的青睐。
2 图书馆书目推荐系统设计
2.1平台环境搭建
PHP和MySQL是当今比较流行的开源代码技术,基于PHP和MySQL构建的Web系统,具有稳定性高和可移植性强等优点。本系统设计采用Apache+PHP+MySQL搭建开发环境,实现动态网页的。
使用phpMyAdmin管理MySQL。phpMyAdmin图形化管理工具是一款使用PHP开发的B/S模式的MySQL客户端软件,通过phpMyAdmin完全可以对数据库进行各种操作,如创建数据库、数据表和生成MySQL数据库脚本文件等,不必在命令提示符下通过命令实现,从而大大提高了程序开发效率。
2.2 图书馆书目推荐系统结构
该系统主要包括书目推荐的前台页面设计和后台管理页面设计。
前台页面也就是把图书信息展现给读者的页面,具体有新书推荐、精品图书推荐、借阅排行榜、冷门书推荐四个模块,每本图书都链接到OPAC系统,方便读者检索和阅读相应图书的详细信息。后台管理是给管理员进入添加、修改以及删除图书内容,动态、实时更新推荐的图书信息。
2.2 数据库设计
首先建立数据库,库表主要包括管理员信息、新书推荐、精品图书推荐、借阅排行榜、冷门书推荐几个数据表。
管理员信息表如表1所示。该表主要用来保存管理员登录名称(管理员ID)、密码、提升为管理员的时间等。该表中的用户只有在登录成功后才可以修改自己的会员信息、查看其他会员的详细信息并进行管理,如删除现有会员、推荐会员等。
新书推荐、精品图书推荐、借阅排行榜、冷门书推荐的图书信息表类似,主要包括图书的索书号、书名、作者、出版社、ISBN号等。
2.3 PHP对数据库的数据操作
PHP对MySQL数据库的数据访问和操作比较简易,包括连接数据库,选择数据库,通过mysql_query()、mysql_fetch_array()等语句可以直接实现对数据库数据的查找和获取。
例如,下面一段代码是对图书信息数据的获取显示:
3 网站设计中遇到的问题和解决办法
3.1书目推荐的数据导入数据库的问题
由于书目推荐的具体信息是由图书馆采编部提供的EXCEL表,要将其导入到数据库,而phpMyAdmin不能直接导入xls格式的数据,需要使用Access转换为.mdb格式,再使用MySQL-Front软件导入到MySQL。其方法和操作都很简单快捷,也方便图书馆采编部提供数据。
3.2中文乱码问题
PHP页面编码必须和数据库连接编码一致,否则就会出现乱码。
(一)PHP页面的编码
使用 标签设置页面编码 ,xxx可以为GB2312,GBK,UTF-8等,采用这种方式来告诉浏览器显示这个页面的时候采用什么编码,这样才不会造成编码错误而产生乱码。但是有的时候我们会发现有了这句还是不行,不管xxx是哪一种,浏览器采用的始终都是一种编码。
header("content-type:text/html; charset=xxx"); 这个函数header()的作用是把括号里面的信息发到http标头。https标头是服务器以HTTP协议传送HTML信息到浏览器前所送出的字串。meta标签是属于html信息的,而header()发送的内容先到达浏览器。加入一个php页面既有header("content-type:text/html; charset=xxx"),又有,浏览器就只认前者http标头而不认meta了。
(二)MySQL数据库编码
PHP 程序在查询数据库之前,首先执行 mysql_query(“SET NAMES ‘编码’”); SET NAMES 显示客户端发送的 SQL 语句中使用什么字符集,不仅告诉服务器将从客户端传来的信息采用的字符集,它还为服务器发送回客户端的结果指定了字符集。编码和PHP编码要一致,如果PHP编码是GB2312,那么MySQL编码就是GB2312,如果是UTF-8,那么MySQL编码就是 UTF8,这样插入或检索数据时就不会出现乱码了。
4 结论
本文利用现在发达的网络和成熟的PHP技术,将图书馆最新订购的图书和馆藏文献资源经过精心筛选,通过图书馆网站将书目信息展现给读者,是当前信息时代下宣传图书馆的又一种方式,不仅有利于读者更快捷、更方便地使用馆藏资源,而且有利于促进馆藏资源的开发和利用。
参考文献:
[1]邹天思,孙鹏.PHP从入门到精通[M].北京:清华大学出版社,2008.
[2]黄桂金,于永军,唐有明.PHP+MySQL完全学习手册[M].北京:清华大学出版社,2008.
[3]张旭东,陈华智,黄炳强.Dreamweaver8+PHP动态网站开发从入门到精通[M].北京:人民邮电出版社,2007.
[4]张军伟.基于PHP的高校教学管理系统设计[J].计算机与现代化,2011(1):63-65.
[5]唐宝福,黄建敬.基于PHP的图书馆信息数据库系统开发[J].龙岩学院学报,2007(3):133-135.
[6]孙星.浅谈PHP技术[J].信息技术,2011(10):31-32.
[7]贾素来.使用PHP和MySQL开发动态网站[J].大众科技,2011(3):14-15.
[8]朱海岩.PHP与MySQL Web应用平台中文乱码问题的研究[J].赤峰学院学报(自然科学版),2011(8):36-37.
[9]杜闯.PHP在动态网站开发中的优势[J].电脑知识与技术,2010(13):3342-3344.
[10]余肖生,易.基于PHP的开发环境搭建与网站设计实现[J].重庆理工大学学报(自然科学版),2011(3):74-77.
刘新霞(1985-),女,硕士,南京财经大学图书馆
篇9
1.引言:目前动态网站设计技术主要有:利用Perl/C++/Delphi等开发的CGI,两种有名的API-ISAPI/NSAPI,还有ColdFusion,以及最近几年流行起来的3p技术-ASP,PHP,JSP(据Internet上有关网站统计约有近百种);ASP-AtiveServerPage,由微软公司开发,是一个WEB服务器端的开发环境,主要采用脚本语言VBScript(或javascript/perl等)作为自己的开发语言,可用ODBC或直接驱动法访问Window平台的数据库。PHP-PersonServerPage,是由Rasmus个人创立的一种跨平台的服务器端的嵌入式脚本语言.它大量地借用C,Java和Perl语言的语法,并耦合PHP自己的特性,.是一种很有个性的网站开发语言,它支持目前绝大多数数据库。JSP-JavaServerPage,是Sun公司推出的新一代站点开发语言,Sun公司除Java应用程序和JavaApplet之外,又创立了JSP,其可以在Serverlet和JavaBean的支持下,完成功能强大的站点程序开发,特别是有许多访问数据库的方法。在电子商务平台设计中,主要需要解决"网站结构的设计","注册界面","交易界面","后台数据库",以及"配套模块"诸如购物/用户/论坛/反馈/搜索/会话等设计;考虑篇幅,本文只给出统一的前台界面及后台数据库的3p设计方法;可以说ASP,PHP,JSP与网络数据库的操作是电子商务网站平台设计的坚强基石。
2.构建三种设计技术的运行环境
2.1构建ASP的运行环境:NT5.0Server,IIS5.0,ASP3.0。安装Windows2000Server(NT5.0Server)时选择IIS5.0有关选项。安装完后ASP3.0便内嵌于IIS5.0中。测试ASP:启动浏览器,在地址栏处输入127.0.0.1:80/default.asp,若浏览到IIS服务器的ASP欢迎页面,说明安装成功
2.2构建PHP4的运行环境:NT5.0Server,Apache1.3.12php4.0安装支持PHP的web服务器Apache1.3.12,将Apache服务器压缩文件解压缩,根据提示进行整个安装过程,自己选择安装到目录d:\apache下。安装PHP4,将PHP4压缩文件解压缩到d:\php4即可,同时将其中的php.ini-dist文件拷贝到winnt目录中,将文件更名为php.ini,打开该文件将其中extension_dir设置为:d:/php4,并加载扩展模块:将文件中含有;extention=*.dll的各项前面的";"号去掉即可;修改设置Aphache服务器,用文本编辑器编辑目录d:\aphache目录下的子目录conf下名为httpd.conf的文本文件,首先将"#ServerName*"这一行下加入"ServerName127.0.0.1/",其次将"Port80"改为"Port81(或其他与IIS5.0不冲突的端口)",再其次设置更改Apache虚拟目录,将"Documentroot"d:/Apache/htdocs""改为Documentroot"d:/trade"(该目录即是电子商务网站目录,可用任意方法建立目录trade),最后加入支持php4的如下语句:ScriptAlias/php4/"d:/php4/"AddTypeapplication/x-httpd-php.phpAddTypeapplication/x-httpd-php.phtmlActionapplication/x-httpd-php4"/php4/php.exe";测试php:完成上述步骤后,在d:\trade目录下,用如何文本编辑器,生成扩展名为.php(或phtml)的文件test.php,在文件中输入如下php代码,存盘后,启动Apache,接着你在浏览器中输入:127.0.0.1:81/test.php,若看到php的版本和扩展模块等信息,说明环境安装设置成功。
2.3构建JSP的运行环境:NT5.0Server,Resin1.13,jdk1.3安装Java编译器jdk1.3:运行jdk1_3-win.exe,按照提示完成安装即可,将其安装在d:\java1.3目录,也可安装在其他目录。设置系统环境参数:控制面板/系统/环境页中选择path参数加入d:\jdk1.3\bin;增加新的环境参数classpath=d:\jdk1.3\lib\tools.jar;d:\jdk1.3\lib\dt.jar;,然后重新启动计算机即可安装支持JSP的web服务器Resin1.1.3,将RESIN-1.1.3.zip释放为d:\Resin1.1.3即可。配置服务器端口,打开d:/resin1.1.3/conf/目录下的resin.conf文件在
8080
标签处将端口设置为82(在我的NT5.0上装有三个服务器,这样三个服务器的端口分别为IIS:80;Apache:81;Resin:82其实也可设置为其他互不冲突的端口号).测试JSP:启动Resin服务器,启动浏览器,在地址栏处输入127.0.0.1:82/,若浏览到Resin服务器的JSP欢迎页面,说明安装成功
3生成三种格式的动态表单页面为了通用,这里采用可能用到的表单对象为例,至于下面设计具体数据表用到的字段,只要转成给出的表单域相应对象即可.
3.1用ASP动态生成与数据库进行数据交流的操作表单:form.asp:生成表单域头:生成普通文本:生成密码文本:生成滚动文本:生成单选:生成复选:生成列表框:生成提交按钮生成重填按钮生成表单域尾
3.2用PHP动态生成与数据库进行数据交流的操作表单:form.php生成表单域头:"?>生成普通文本:"?>生成密码文本:"?>生成滚动文本:"?>生成单选:"?>生成复选:"?>生成列表框:网络数据库Asp技术Php技术Jsp技术网站设计"?>生成提交按钮"?>生成重填按钮"?>生成表单域尾"?>
3.3用JSP动态生成与数据库进行数据交流的操作表单form.jsp生成表单域头:生成普通文本:生成密码文本:生成滚动文本:生成单选:生成复选:生成列表框:生成提交按钮生成重填按钮生成表单域尾
4设计用于存储商务网站交互数据的MySql数据库
4.1启动MySql数据库服务器(MySql的安装及ODBC驱动程序的安装与设置请参阅相关书籍)可在NT5.0下用启动服务法/NET命令法/命令窗口键入MySqld-shareware法,启动MySql数据库服务器,启动数据库服务器后,在d:\mysql\bin>提示符下键入mysql-h127.0.0.1-uroot即可出现mysql>提示符,从这开始即可进行对MySql数据库的各种操作。若要退出可键入quit/exit,若要关闭数据库服务器,可在d:\mysql\bin>提示符下键mysqladmin-urootshutdown4.2建立MySql数据库在MySql数据库的提示符mysql>键入Createdatabasetradedb;(或go)
4.2.建立MySql数据库表这里以商务网站中常用的几种数据表为例,主要用到的数据表和生成数据表的SQL代码如下:(这里的数据表字段只要分别对应上述表单域对象即可实际操作,数据表统一用tablename表示)客户登录管理数据表CREATETABLEusers(IDintnotnullauto_increment,UserNamevarchar(30)notnull,Passwordvarchar(20)notnull)客户信息数据表CREATETABLEusermessage(UserNamevarchar(30)notnull,Emailvarchar(80)notnull,Addressvarchar(120)notnull,Faxvarchar(40)null,Phonevarchar(40)notnull,Cerreycardvarchar(50)notnull)客户定购商品数据表CREATETABLEcatalog(ProductIdintnotnull,Namevarchar(64)notnull,Pricefloat(6,2)notnull,Descriptiontextnull)
5设计处理表单数据的3p程序
5.1设计处理表单数据的ASP程序form_cl.asp建立与数据库的连接:这里采用直接驱动法Setconn=Server.CreateObject("ADODB.Connection");conn.open"driver={MySQL};server=localhost;uid=user;pwd=xxxxxx;database=tradedb"获取表单提交的数据:data1=request("ptwbk");data2=request("mmwbk");data3=request("gdwbk")data4=request("dxk");data5=request("fxk");data6=request("lbk")用SQL语句对数据库进行操作查询数据记录:sql="select*fromtablename";setrs=conn.execute(sql)"增加数据记录:sql="insertintotablename(ptwbk,mmwbk,gdwbk,dxk,fxk,lbk)values(''''data1'''',''''data2'''',''''data3'''',''''data4'''',''''data5'''',''''data5'''')";setrs=conn.execute(sql)更改某条数据记录:sql="updatetablenamesetdata1="request(ptwbk)",whereID="num";setrs=conn.execute(sql)删除某条数据记录:sql="deletefromtablenamewhereID="num";setrs=conn.execute(sql)将SQL语句处理的数据结果输出Response.Write"
"Response.Write""Fori=0tors.Fields.Count-1Response.WRITE""&rs.Fields(i).Name&""NextResponse.Write"
"WhileNotrs.EOFResponse.Write""Fori=0tors.Fields.Count-1Response.WRITE""&rs.Fields(i).Value&""NextResponse.Write"
"rs.MoveNextWendResponse.Write"
"关闭数据库:rs.close;conn.Close
5.2设计处理表单数据的PHP程序form_cl.php建立与数据库的连接:这里采用PHP的MySql函数法(也可用ODBC函数法)$conn=odbc_connect("localhost","user","xxxxxx");选择数据库:mysql_select_db("tradedb","$conn");获去表单提交的数据:$data1=$ptwbk;$data2=$mmwbk;$data3=$gdwbk;$data4=$dxk;$data5=$fxk;$data6=$lbk;用SQL语句对数据库进行操作查询数据记录:$sql="select*fromtablename";$result=odbc_do($conn,$sql);增加数据记录:$sql="insertintotablename(ptwbk,mmwbk,gdwbk,dxk,fxk,lbk)values(''''$data1'''',''''$data2'''',''''$data3'''',''''$data4'''',''''$data5'''',''''$data6'''')";$result=odbc_do($conn,$sql);更改某条数据记录:$sql="updatetablenameset$data1=ptwbkwhereID=num"$result=odbc_do($conn,$sql);删除某条数据记录:$sql="deletefromtablenamewhereID=num";$result=odbc_do($conn,$sql);将SQL语句处理的数据结果输出odbc_result_all($result,"border=1");关闭数据库:odbc_close($conn);
5.3设计处理表单数据的JSP程序form_cl.jsp建立与数据库的连接:这里采用JDBC-ODBC桥生成JavaBean法创建一个JavaBean命名为conndb.java,并保存在d:/resin1.1.3/doc/web-inf/classes/trade目录下,代码如下:(限于篇幅这里没按标准书写,而采用不换行写法,其他类同)packagetrade;importjava.sql.*;publicclassconndb{Stringurl="jdbc:inetdae:localhost";Stringlogin="user";Stringpassword="xxxxxx";StringsDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";StringsConnStr="jdbc:odbc:Dsnmysql";Connectionconn=null;ResultSetrs=null;publicconndb(){try{Class.forName(sDBDriver);Connectionconn=DriverManager.getConnection(url,login,password);}catch(java.lang.ClassNotFoundExceptione){System.err.println("conndb():"+e.getMessage());}}Public/ResultSet/executeQuery(String/sql)/{rs=null;try{conn=DriverManager.getConnection(sConnStr);Statementstmt=conn.createStatement();rs=stmt.executeQuery(sql);}catch(SQLExceptionex){System.err.println("aq.executeQuery:"+ex.getMessage());}returnrs;}}然后用javac编译conndb.java生成与其同目录的conndb.class文件,在form_cl.jsp文件中加入如下标签即可建立与数据库的连接获去表单提交的数据:Stringdata1=request.getParameter("ptwbk");Stringdata2=request.getParameter("mmwbk")Stringdata3=request.getParameter("gdwbk")Stringdata4=request.getParameter("dxk")Stringdata5=request.getParameter("fxk")Stringdata5=request.getParameter("lbk")语句对数据库进行操作查询数据记录:Stringsql="select*fromtablename";connbean.executeQuery(sql);增加数据记录:Stringsql="insertintotablenamevalues(''''"+data1+"'''',''''"+data2+"'''',''''"+data3+"'''',''''"+data4+"''''+"'''',''''"+data5+"'''',''''"+data6+''''")";connbean.executeQuery(sql);更改某条数据记录:Stringsql="updatetablenamesetdata1=''''"+ptwbk+"'''',data2=''''"+mmvbk+"'''',data3=''''"+gdwbk+"''''whereID=''''"+num+"''''";connbean.executeQuery(sql)删除某条数据记录:Stringsql="deletefromtablenamewhereID=''''"+num+"''''";connbean.executeQuery(sql);将SQL语句处理的数据结果输出ResultSetrs=connbean.executeQuery(sql);While(rs.next()){out.print("
"+rs.getString("ptwbk")+"
");out.print("
"+rs.getString("mmvbk")+"
");out.print("
"+rs.getString("gdwbk")+"
");out.print("
"+rs.getString("dxk")+"
");out.print("
"+rs.getString("fxk")+"
");out.print("
"+rs.getString("lbk")+"
");}关闭数据库:rs.close();
6三种电子商务网站设计技术综述
6.1主要特性:可见下表设计技术运行平台服务器开发程序扩展组件ASPWindows系列IISVbscript/Jscript/PerlActiveXPHPUnix系列,Novell,WindowsApache等许多服务器phpFunctionJSPUnix系列,Novell,WindowsResin等许多服务器JavaJavaBean
6.2连接数据库的方法:通过上述操作可看出,本文采用了三种操作MySql数据库的方法,Asp采用直接驱动法,Php采用MySql函数法,Jsp采用JDBC-ODBC/JavaBean法
6.3网站结构设计考虑篇幅,本文只给出了Widows平台上,电子商务网站设计中的主要环节的代码设计,对于Linux平台、网站结构、各个功能模块设计等论题,作者已经有两篇这方面的论文在核心刊物上待发表,这里不便公开.
篇10
关键词:信息技术;安全性;高可用性;数据库
0引言
面金融市场的激烈竞争和信息技术的飞速发展,银行的科技体系建设呈现了“数据集中化、业务综合化、管理扁平化、决策科学化”的发展趋势。与业务相关的后台数据库中的业务数据量也在成几何量级增长。由于大型商业银行内部业务模式种类繁多,交易流程复杂,需要根据不同的业务规则和数据特点,选取不同的数据库。目前,在商业银行信息系统体系中,涉及到的数据库主要包括DB2、Oracle、SQL Server,部分系统还用到了MySql等开源数据库。
1DB2数据库
1.1DB2简介
DB2全称为IBM DB2,是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX、Linux、z/OS,以及Windows服务器。DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境。DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。
1.2 DB2在银行的应用
虽然银行业中后台信息系统数量众多,但其主要工作是进行各种账务交易管理,对于需要进行大量账务处理和计算的银行信息系统普遍采用DB2数据库。银行系统要求高稳定性、高可靠性和高安全性,Unix+DB2的组合对银行的系统高要求满足的较好。IBM提供的主机和数据库的解决方案,在很多银行都有成熟的案例。
对于大型的商业银行,银行系统每天处理的请求可能要上亿次,DB2数据库对海量数据的管理更是十分出色。作为世界上最快的数据库之一,它可以在一天内完成9000多万次文本搜索,且每次的响应时间都小于半秒。银行信息系统中的服务器有很大一部分都是IBM的大型机和小型机,在数据库层面,选择IBM的DB2数据可以更好的发挥服务器和数据库的优势。
2 ORACLE数据库
2.1 ORACLE简介
Oracle是美国Oracle公司提供的以分布式数据库为核心的一组软件产品,是目前最流行的C/S或B/S体系结构的数据库之一。它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库,它实现了分布式处理功能。系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的适应高吞吐量的数据库解决方案。
2.2 ORACLE在银行的应用
Oracle可以支持Unix、Linux和Windows等主流操作系统,而且做为专业做数据库起家的Oracle,配套开发了许多高可用组件,为大型的应用系统提供了成熟完备的数据库高可用解决方案,如:Oracle RAC、GodenGate、Data Guard等。这些组件在银行的信息系统中使用相当广泛,比如网上银行系统、手机银行和各类台帐管理系统等。
完善灾备系统是银行建设中至关重要的一项工作,Oracle公司提供数据库级别的异地灾备技术,这为银行信息系统的异地多活提供了可行性。并且Oracle在数据库的技术服务支持方面也相当完备,很多银行并没有技术能力很强的数据库维护人员,Oracle可以提供多种层次的数据库维保服务,为银行系统的高效可靠的运行保驾护航。
随着Oracle 12C的,Oracle在云计算和大数据方面的优势也逐渐显现,各大银行都有海量的业务和客户数据,如何利用其进行精准营销已经成为各大银行业务的新诉求。使用Oracle的最新产品,可以对客户数据进行数据挖掘和大数据分析,为银行业务部门提供强有力的支持。
3 SOL SERVER数据库
SQL Server微软公司推出的一种关系型数据库系统。它是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案。
SQL Server以其内置的数据复制功能、强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台。由于SQL Server只能在Windows平台上运行,没有丝毫的开放性,这就限制了它的应用范围。Windows操作系统由于其自身的限制,每运行一段时间就需要重启,这对需要提供7*24小时不停服务的银行系统带来极大的问题。SQL Server在银行内部系统中应用较少,主要在一些由微软公司提供的应用系统。
4 MYSQL数据库
MySql是一种开放源代码的关系型数据库管理系统,MySql是一个真正的多用户、多线程数据库服务器。MySql虽然是免费的,但同Oracle,DB2等商业数据库一样,具有数据库系统的通用性。
相较于DB2、Oracle和SQL Server数据库,MySql数据库更轻量级,对服务器资源要求低,但又能提供高并发和大事务处理能力。但是MySql官方并不能提供成熟的高可用解决方案,对于银行端来说,更希望使用成熟的高可用产品,而且没有很多的技术实力和精力去做二次开发和改进,所以MySql在银行信息系统中使用的并不多。
现在有一些银行在国家去IOE的号召下,开始尝试在一些新兴的互联网金融产品中引用MySql数据库,配合成熟的第三方高可用组件,也取得了不错的效果。