怎么调用数据库 *** 作类

怎么调用数据库 *** 作类,第1张

直接调用就行了,不过可能你需要引用文件,以下是例子

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

//文件connphp,用于连接数据库

class DB_Conn {

}

//文件 dbphp, 用于数据库 *** 作,这个类必然需要使用数据库连接对象,因此引用connphp

require_once connphp;

class DB {

}

//文件userphp

require_once 'dbphp';

class User {

public function getUserById($id) {

$conn = new Db_Conn();

$db = new Db();

}

}

以上只是示意,如果文件不在一个目录下记得修改路径。而且,一般来说数据库对象应该包含连接数据库和数据 *** 作的全部功能,不需要分别写在两个类里面。我觉得你对面向对象的理解还很浅薄,需要进一步累积经验。

首先,我们需要引用ADO具体的方法是,在"工程" -- "引用" 中,找到"Microsoft ActiveX Data Object Library",这里的""是指的时ADO的版本号,一般来说,应用程序或ActiveX控件都具有向下兼容性,所以我们尽可能选择比较新的版本以确保程序在能识别旧版本Access的同时,也能识别较新版本的Access

然后我们需要在程序中创建一个对象就好比我们在窗体上添加一个FileBox才能看到文件名一样,只有创建了ADO对象,我们才能够访问数据库常用的对象有两个,Connection和Recordset

创建这两个对象的具体方法是:

1在引用后,使用New关键字,如

Private Conn As New ADODBConnection

Private Reco As New ADODBRecordset

2在没引用时,用CreateObject创建对象:

Dim Conn,Reco

Set Conn = CreateObject("ADODBConnection")

Set Reco = CreateObject("ADODBRecordset")

创建了对象之后,下一步我们要做的就是打开数据库了

先看下面的代码,可以成功的打开数据库

Connopen "Provider=MicrosoftJetOLEDB40;Data Source=D:\Mainmdb"

这句代码打开了D盘中的Mainmdb这个数据库

ConnectionOpen方法的第一个参数是连接代码,它将传递给系统的数据库引擎前半部分"Provider= MicrosoftJetOLEDB40",它表示了数据库的类型不同的数据库可能会不同后半句"Source=d:\mainmdb"它表示了数据库所在的绝对路径

打开数据库之后,还要打开表假如数据库中有一个表,表名为"Users",字段有两个,一个为用户名,一个为密码那么看以下代码

1想返回"Users"中,[用户名]为"去年烟花"的[密码]

Recordsetopen "Select 密码 From Users Where 用户名='去年烟花'",Connection,1,1

之后我们就可以把用户输入的密码进行比较,看是否允许登录

If Recordseteof and Recordsetbof then

Msgbox "用户不存在!",16

Else

If PassWord =Recordset("密码")value then

msgbox "登录成功!",64

Else

msgbox "密码错误!",32

End If

End If

RecordsetClose

2假设Admin已经成功登录系统,我们想把所有的用户名和密码都显示出来

Recordsetopen "Select From Users",Connection,1,1

这时,表已经被打开,我们就用以下代码把它显示出来

Do whlie Not Recordseteof

Print "用户名: " & Recordset("用户名")value & "密码: " & Recordset("密码")value

RecordsetMoveNext

Loop

RecordsetClose

由以上代码示例可以看出,打开表时,可以只打开其中的一个字段,也可以打开所有第一个参数是SQL语句

Select [字段名] From 表名 [Where 条件]

这里的条件可以省略且字段名也可以用""来代替所有字段

需要注意的是,如果你用(1)中的方法打开,那么(2)后面显示的代码就不能再用在(1)中因为(1)里并没有打开[用户名]字段,所以这一句Recordset("密码")就没有值存在,还有可能出错

后面的条件,可以用"="、">"、"<"等运算符比如 "Where ID > 32"(这里假设[ID]为数字型)

这是打开的部分第二个很重要的部分就是查询记录

数据库它并不是把所有记录全部放到一个变量中备用的而是以"当前记录"的形式来返回一个值所以我们想从中找到有用的信息,就必须要对信息进行定位/筛选

定位:

移动到下一条 RecordsetMoveNext

移动到上一条 RecordsetMovePrevious

移动到最后一条 RecordsetMoveLast

移动到第一条 RecordsetMoveFrist

移动到某一条 RecordsetMove Number

筛选:

RecordsetFind "条件"

如:[用方法(2)打开表之后]

Private Sub Command1_Click()

RecordsetFind "用户名=" & "text1text"

If RecordsetEof <> True Then

Msgbox "该用户的密码是:" & Recordset("密码")value,64

Else

Msgbox "未找到该用户的资料!",16

End If

End Sub

MoveNext 只有当Eof不为True时,才可用,否则发生错误而MovePrevious刚是Bof不为True时

而只要Eof 和 Bof中有一个不为真时,也就是说只要有一条记录时,它就可以使用

Find 方法中的条件和Open时的第一个参数中的条件表述方法是完全一致的当在已打开的记录集中,找不到该记录时,Eof为True找到则当前的值就是符合条件的记录

第三个部分就是添加/修改记录

修改记录很简单,先按以上的方法找到相关记录之后,给记录赋值就可以了

比如:[(修改密码)按方法(1)打开表之后]

Recordset("密码")value = "123456"

RecordsetUpdata

需要注意的就是,在修改完成后,要调用Updata方法,这样修改才能生效

而添加记录则可以用以下代码来实现:

Recordsetaddnew

Recordset("用户名")value = "Admin"

Recordset("密码")value = "Admin"

RecordsetUpdata

这里,先要调用Addnew方法,增加一条新记录,然后对这个新记录中的各字段赋值,最后再调用Updata方法

到这里就差不多了,最后说一下上面提到的几个方法

RecordsetOpen SQL语句,数据源,游标类型,打开方法

SQL语句不用说了,就是Select那啥的,目的就是按要求从表中返回数据

数据源就是一个打开之后的Connection对象

去他妈的游标类型,填1就可以了 [偷笑ing]

打开方法对应了几个常数,具体哪几个可以从对象浏览器里看

对应数值的意义:

1 只读 2 独占 3 可写 4 自已可写,别人可读

Connectionopen 连接代码,服务器用户名,密码

这里的连接代码就不在多说了,服务器用户名,密码只有在连接远程数据库时才用到

首先在运行输入 cmd

这样便打开了命令提示符,如下:

打开了之后在此输入 mysql -h你的IP或者花生壳的账户 -uroot -p该数据库的密码

例如:mysql -h301585978 -uroot -pabc123

mysql -htomxicpnet -uroot -pabc123

全局变量前加上关键字static,全局变量就定义成一个全局静态变量,全局静态变量存储在静态存储区,在整个程序运行期间一直存在。全局静态变量在程序运行之前就存在。初始化:未经初始化的全局静态变量会被自动初始化为0(自动对象的值是任意的,除非他被显式初始化)。作用域:全局静态变量在声明他的文件之外是不可见的,准确地说是从定义之处开始,到文件结尾。

局部静态数据

在局部变量之前加上关键字static,局部变量就成为一个局部静态变量。局部静态变量再程序执行到作用域时候,就会存在。

局部静态数据再内存中的静态存储区。

初始化:未经初始化的全局静态变量会被自动初始化为0(自动对象的值是任意的,除非他被显式初始化)。

作用域:作用域仍为局部作用域,当定义它的函数或者语句块结束的时候,作用域结束。但是当局部静态变量离开作用域后,并没有销毁,而是仍然驻留在内存当中,只不过我们不能再对它进行访问,直到该函数再次被调用,并且值不变。

静态函数

在函数返回类型前加static,函数就定义为静态函数。函数的定义和声明在默认情况下都是extern的,但静态函数只是在声明他的文件当中可见,不能被其他文件所用。

函数的实现使用static修饰,那么这个函数只可在本cpp内使用,不会同其他cpp中的同名函数引起冲突。

warning:不要再头文件中声明static的全局函数,不要在cpp内声明非static的全局函数,如果你要在多个cpp中复用该函数,就把它的声明提到头文件里去,否则cpp内部声明需加上static修饰。

类的静态成员

静态成员可以实现多个对象之间的数据共享,并且使用静态数据成员还不会破坏隐藏的原则,即保证了安全性。

静态数据成员不能在类中初始化,实际上类定义只是在描述对象的蓝图,在其中指定初值是不允许的。也不能在类的构造函数中初始化该成员,因为静态数据成员为类的各个对象共享,否则每次创建一个类的对象则静态数据成员都要被重新初始化静态成员可以被初始化,但只能在类体外进行初始化。 一般形式:数据类型 类名::静态数据成员名=初值。

静态成员不可在类体内进行赋值,因为它是被所有该类的对象所共享的。你在一个对象里给它赋值,其他对象里的该成员也会发生变化。

静态成员属于整个类所有,不需要依赖任何对象,它在对象中不占用存储空间。

静态成员仍然遵循public,

在其他类中创建SQLClass对象,然后调用他的方法即可!

SQLClass a=new SQLClass();

a变量=SQL语句

aPopukate() ;

1,加载驱动

2,创建连接

3,获取语句对象

4,执行sql语句

5,如果是查询,还可以使用结果集

6,关闭连接

7,捕捉和处理异常

一段典型的代码供参考,具体方法和参数说明请参考Java

API

try

{

ClassforName("驱动的包名和类名");

Connection

conn=DriverManagergetConnection("数据库","用户","口令");

PreparedStatement

ps=connprepareStatement("带参数的sql语句");

psset参数类型(参数序号,值);

RecordSet

rs=psexecute();

//使用rs

rsclose();

psclose();

connclose();

}catch(SQLException

ex)

{

//处理异常

}

以上就是关于怎么调用数据库 *** 作类全部的内容,包括:怎么调用数据库 *** 作类、VB如何调用Access数据库、怎么调用mysql数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9300492.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存