参考类图如下,可能在C上运行需要访问S的应用程序都会连不上数据库

发布时间:2020-02-27  栏目:数据  评论:0 Comments

如果在C上注册S上运行的 SQL SERVER
失败的话,可能在C上运行需要访问S的应用程序都会连不上数据库。

实例分析1——登录模块

     
某基于C/S的即时聊天系统登录模块功能描述如下:

     
用户通过登录界面(LoginForm)输入账号和密码,系统将输入的账号和密码与存储在数据库(User)表中的用户信息进行比较,验证用户输入是否正确,如果输入正确则进入主界面(MainForm),否则提示“输入错误”。

     
根据以上描述绘制初始类图。

 

    参考解决方案:

 

     
参考类图如下:

图片 1

     
考虑到系统扩展性,在本实例中引入了抽象数据访问接口IUserDAO,再将具体数据访问对象注入到业务逻辑对象中,可通过配置文件(如XML文件)等方式来实现,将具体的数据访问类类名存储在配置文件中,如果需要更换新的具体数据访问对象,只需修改配置文件即可,原有程序代码无须做任何修改。

     
类说明:

类  名

说  明

LoginForm

登录窗口,省略界面组件和按钮事件处理方法(边界类)

LoginBO

登录业务逻辑类,封装实现登录功能的业务逻辑(控制类)

IUserDAO

抽象数据访问类接口,声明对User表的数据操作方法,省略除查询外的其他方法(实体类)

UserDAO

具体数据访问类,实现对User表的数据操作方法,省略除查询外的其他方法(实体类)

MainForm

主窗口(边界类)

     
方法说明:

方法名

说  明

LoginForm类的LoginForm()方法

LoginForm构造函数,初始化实例成员

LoginForm类的validate()方法

界面类的验证方法,通过调用业务逻辑类LoginBO的validate()方法实现对用户输入信息的验证

LoginBO类的validate()方法

业务逻辑类的验证方法,通过调用数据访问类的findUserByAccAndPwd()方法验证用户输入信息的合法性

LoginBO类的setIUserDAO()方法

Setter方法,在业务逻辑对象中注入数据访问对象(注意:此处针对抽象数据访问类编程)

IUserDAO接口的findUserByAccAndPwd()方法

业务方法声明,通过用户账号和密码在数据库中查询用户信息,判断该用户身份的合法性

UserDAO类的findUserByAccAndPwd()方法

业务方法实现,实现在IUserDAO接口中声明的数据访问方法

问题一:找不到文件wlidcli.dll

可以在C上先试试用/访问S,例如在C的地址栏里输入/192.168.0.1D$,输入用户名和密码,保存。

 

这个问题可能是由于修改了默认的Common Files
文件夹所在磁盘造成的。默认的位置是“C:/Program Files
(x86)/Common Files/microsoft shared/Windows Live”,比如被改到了“D:/Program Files
(x86)/Common Files/microsoft shared/Windows Live”,由于安装程序不能访问注册表或注册表中有位置冲突(通常64位系统有两套注册表,程序可能在安装时读取一个,而运行时读取另一个,而两处的值可能不同),所以还是会把这个dll文件安装到C盘。

然后再试试注册。

图片 2——————————————————————————————————-图片 3

解决方法也很简单:把这个dll文件拷贝到D盘。

实例分析2——注册模块

     
某基于Java语言的C/S软件需要提供注册功能,该功能简要描述如下:

     
用户通过注册界面(RegisterForm)输入个人信息,用户点击“注册”按钮后将输入的信息通过一个封装用户输入数据的对象(UserDTO)传递给操作数据库的数据访问类,为了提高系统的扩展性,针对不同的数据库可能需要提供不同的数据访问类,因此提供了数据访问类接口,如IUserDAO,每一个具体数据访问类都是某一个数据访问类接口的实现类,如OracleUserDAO就是一个专门用于访问Oracle数据库的数据访问类。

     
根据以上描述绘制类图。为了简化类图,个人信息仅包括账号(userAccount)和密码(userPassword),且界面类无需涉及界面细节元素。

 

参考解决方案:

     
在以上功能说明中,可以分析出该系统包括三个类和一个接口,这三个类分别是注册界面类RegisterForm、用户数据传输类UserDTO、Oracle用户数据访问类OracleUserDAO,接口是抽象用户数据访问接口IUserDAO。它们之间的关系如下:

     
(1) 在RegisterForm中需要使用UserDTO类传输数据且需要使用数据访问类来操作数据库,因此RegisterForm与UserDTO和IUserDAO之间存在关联关系,在RegisterForm中可以直接实例化UserDTO,因此它们之间可以使用组合关联。

     
(2) 由于数据库类型需要灵活更换,因此在RegisterForm中不能直接实例化IUserDAO的子类,可以针对接口IUserDAO编程,再通过注入的方式传入一个IUserDAO接口的子类对象(在本书后续章节中将学习如何具体实现),因此RegisterForm和IUserDAO之间具有聚合关联关系。

     
(3)
OracleUserDAO是实现了IUserDAO接口的子类,因此它们之间具有类与接口的实现关系。

     
(4) 在声明IUserDAO接口的增加用户信息方法addUser()时,需要将在界面类中实例化的UserDTO对象作为参数传递进来,然后取出封装在UserDTO对象中的数据插入数据库,因此addUser()方法的函数原型可以定义为:public
boolean addUser(UserDTO
user),在IUserDAO的方法addUser()中将UserDTO类型的对象作为参数,故IUserDAO与UserDTO存在依赖关系。

     
通过以上分析,该实例参考类图如图1所示:

图片 4

图1  注册功能参考类图

     
注意:在绘制类图或其他UML图形时,可以通过注释(Comment)来对图中的符号或元素进行一些附加说明,如果需要详细说明类图中的某一方法的功能或者实现过程,可以使用如图2所示表示方式:

图片 5

图2
 类图注释实例

文章出处:

问题二:错误代码:800488eb

留下评论

网站地图xml地图