数据库封装类的作用什么意思

数据库封装类的作用什么意思,第1张

1.基本类型只能按值传递,而每个基本类型对应的封装类是按引用传递的。

2.从性能上说java中的基本类型是在堆栈上创建的,而所有的对象类型都是在堆上创建的,(对象的引用在堆栈上创建)。比如

Integer i=new Integer(10) 其中new Integer()是在堆上创建的,而他的引用Integer i是在堆栈上。 封装类的出现,是为了更方便的使用一些基本类型不具备的方法,比如valueOf(),toString()等等。还有你如果想传递一个int对象的引用,而不是值,那只能用封装类。

可以参考一下这个:

使用CDatabase类来读取Microsoft

Access数据库,主要实现了以下功能:

从Microsoft

Access

数据库读取数据

不使用

ODBC数据源

进行数据库连接

在List

view控件中显示数据

//

以下是部分

代码

void

CReadDBDlg::OnRead()

{

//

TODO:

Add

your

control

notification

handler

code

here

CDatabase

database

CString

sSql

CString

sCatID,

sCategory

CString

sDriver

=

"MICROSOFT

ACCESS

DRIVER

(*.mdb)"

CString

sDsn

CString

sFile

=

"c:\\works\\ReadDB\\Test.mdb"

//

Change

path

here

int

iRecord

=

0

//

Create

a

pseudo

DSN

including

the

name

of

the

Driver

and

the

Excel

file

//

so

we

donhave

to

have

an

explicit

DSN

installed

in

our

ODBC

admin

sDsn.Format("ODBCDRIVER={%s}DSN=''DBQ=%s",sDriver,sFile)

TRY

{

//

Open

the

database

database.Open(NULL,false

,false

,sDsn)

//

the

recordset

CRecordset

recset(

&database

)

//

Build

the

SQL

query

string

sSql

=

"SELECT

CatID,

Category

"

"FROM

Categories"

//

Execute

the

query)

recset.Open(CRecordset::forwardOnly,sSql,CRecordset::readOnly)

ResetListControl()

//

Column

heading

m_ListControl.InsertColumn(1,"Cat

ID",LVCFMT_LEFT,30,0)

m_ListControl.InsertColumn(1,"Category",LVCFMT_LEFT,30,1)

//

Browse

the

result

while

(

!recset.IsEOF()

)

{

//

Read

one

record

recset.GetFieldValue("CatID",sCatID)

recset.GetFieldValue("Category",sCategory)

//

Insert

values

into

the

list

control

m_ListControl.InsertItem(0,sCatID,0)

m_ListControl.SetItemText(0,1,sCategory)

//

goto

next

record

recset.MoveNext()

}

//

Close

the

database

database.Close()

}

CATCH(CDBException,

e)

{

//

If

a

database

exception

occured,

pop

up

error

msg

AfxMessageBox("Database

error:

"+e->m_strError)

}

END_CATCH

}

void

CReadDBDlg::ResetListControl()

{

m_ListControl.DeleteAllItems()

int

iNbrOfColumns

CHeaderCtrl*

pHeader

=

(CHeaderCtrl*)m_ListControl.GetDlgItem(0)

if

(pHeader)

{

iNbrOfColumns

=

pHeader->GetItemCount()

}

for

(int

i

=

iNbrOfColumns

i

>=

0

i--)

{

m_ListControl.

DeleteColumn

(i)

}

}

使用C#生成dll文件并调用

一、创建dll文件:

例如生成一个md5编码判断状态的文件,即,输入一个字符串(string A)和一个32位md5编码(string B),判断此字符串A对应的32位md5编码是否与B相等,如果相等返回true,否则返回false。

打开VS 2005,“文件”--》“新建”--“项目”,选择“Windows 控件库”,命名后点击“确定”,在“UserControl1.cs”中输入以下代码:

using System

using System.Collections.Generic

using System.ComponentModel

using System.Drawing

using System.Data

using System.Windows.Forms

using System.Text

using System.Security.Cryptography

namespace md5

{

public partial class Program : UserControl

{

#region MD5 32位加密:GetMd5Str32

/// <summary>

/// 32位MD5加密

/// </summary>

/// <param name="strSource">待加密字串</param>

/// <returns>加密后的字串</returns>

public static string GetMd5Str32(string strSource)

{

byte[] bytes = Encoding.ASCII.GetBytes(strSource)

byte[] hashValue = ((System.Security.Cryptography.HashAlgorithm)System.Security.Cryptography.CryptoConfig.CreateFromName("MD5")).ComputeHash(bytes)

StringBuilder sb = new StringBuilder()

for (int i = 0i <16i++)

{

sb.Append(hashValue[i].ToString("x2"))

}

return sb.ToString().ToUpper()

}

#endregion

#region 核对md5编码是否一致:CheckMd5String()

/// <summary>

/// 核对md5编码是否一致

/// </summary>

/// <param name="ConvertString"></param>

/// <returns>如果一致返回true,否则返回false</returns>

///

public static bool CheckMd5String(string str1, string str2)

{

string md5String = str1//需要验证的字符串

string md5DbString = str2//需要核对的32位md5编码

int result = string.Compare(md5.Program.GetMd5Str32(str1), md5DbString, true)

if (result == 0)

{

return true

}

else

{

return false

}

}

#endregion

}

}

修改“UserControl1.Designer.cs”中的命名空间为“md5”,方法为“Program”,即可生成dll文件。

在...\bin\Debug文件假下,可以找到相应的dll文件。

二、部署dll流程:

首先把dll文件放到应用程序...\bin\Debug\下;

然后在解决方案中添加引用:右键鼠标-->添加引用-->浏览-->选择dll放置路径后点击“确定”。

注意:要在应用文件头处使用using md5;命令。

测试应用程序代码,如下:Form1.cs

using System

using System.Collections.Generic

using System.ComponentModel

using System.Data

using System.Drawing

using System.Text

using System.Windows.Forms

using md5

namespace WindowsApplication1

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent()

}

private void button1_Click(object sender, EventArgs e)

{

string str1 = textBox1.Text.ToString()

string md5String = textBox2.Text.ToString()

textBox3.Text = md5.Program.GetMd5Str32(str1)

textBox4.Text = md5.Program.CheckMd5String(str1, md5String).ToString()

}

private void button2_Click(object sender, EventArgs e)

{

this.Close()

}

}

}


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存