谁能教我个最简单的方法连接数据库

谁能教我个最简单的方法连接数据库,第1张

适用初学者的JSP连接Access数据库代码,刚刚写的一个Java Web 中连接Access数据库的代码。这些天讲到数据库 *** 作,但是我的本子是XP home版,安装SQL Server比较麻烦,干脆弄个ACCESS来演示好了。有时小型桌面数据库还是蛮实用的嘛,哈~

复制内容到剪贴板代码:

<%@ page contentType="text/htmlcharset=GB18030" %>

<%@page import="java.sql.*" %>

<html>

<head>

<title>

jsp1

</title>

</head>

<body bgcolor="#ffffff">

<form method="POST" action="\Web\index.jsp">

<% try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")

}

catch(ClassNotFoundException e){

out.print("数据库驱动程序装入错误")

} try{

String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)}DBQ="+request.getRealPath("/")+"test.mdb"

//特别注意上面的Driver和(*.mdb)之间是有空格的

/*这个test.mdb文件是存放在Web Module目录下的,当然可以自行改变路径*/

Connection conn=DriverManager.getConnection(url)

Statement stmt=conn.createStatement()

ResultSet rs=stmt.executeQuery("SELECT * FROM log")//log为表名,和SQL一样

while(rs.next()){

out.print(rs.getInt("ID")+" ")

out.print(rs.getString("username")+" ")

out.print(rs.getString("password")+" ")//log表中三个字段,主键是ID,自增的。username和password是文本类型。

out.println("<br>")

}

rs.close()

stmt.close()

conn.close()

} catch(Exception ex){

out.print(ex)

} %>

</form>

</body>

</html>

我写的一个用jsp连接Access数据库的代码。

要正确的使用这段代码,你需要首先在Access数据库里创建一username表,表里面创建两个字符型的字段,字段名分别为:uid,pwd,然后插入几条测试数据。

欢迎各位提出改进的意见。

以下用两种方式来实现jsp连接access数据库。

第一种JSP形式。

复制内容到剪贴板代码: <%@ page contentType="text/htmlcharset=gb2312" language="java"

import="java.sql.*"%>

<meta http-equiv="Content-Type" content="text/htmlcharset=gb2312">

<%

/*********************************

********* JDBC_ODBC连接Access数据库,不需要设置数据源

**********************************/

// ******* 数据库连接代码 开始 *****

//异常处理语句

try

{

//以下几项请自行修改

String spath = "data/test.mdb"//Access 数据库路径

String dbpath = application.getRealPath(spath)//转化成物理路径

String dbname = "" //Acvess 数据库用户名,没有则为空

String user = "" //Access 数据库密码,没有则为空

//数据库连接字符串

String url ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)}DBQ="+dbpath

//加载驱动程序

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")

//建立连接

Connection conn= DriverManager.getConnection(url)

//创建语句对象

Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE)

// **** 数据库连接代码 结束 ******

//********* 测试数据代码开始 ******

//请在数据库中建立username表,表中建立两个字段uid和pwd,类型为文本型

String sql = "select * from username"

ResultSet rs = stmt.executeQuery(sql)

while(rs.next())

{

out.print("用户名:" + rs.getString("uid"))

out.print(" 密码:" + rs.getString("pwd") + "<br>")

}

out.print("<br>恭喜你!数据库连接成功!")

rs.close() //关闭记录集对象

stmt.close() //关闭语句对象

conn.close() //关闭连接对象

}catch(Exception e){

out.print("数据库连接错误!,错误信息如下:<br>")

out.print(e.getMessage())

}

//******* 测试数据代码结束 *******

%>

第二种,JavaBean的形式。

复制内容到剪贴板代码: /*

***************************************

*作用: java连接Access数据库代码

*/

[/color] package conn //导入包

import java.sql.* //导入数据库 *** 作的类 public class DBConnAccess//构造方法,初始化

{ private Connection conn //连接对象

private Statement stmt //语句对象

private ResultSet rs //结果集对象

private String accessdriver //保存Access驱动程序字符串

private String accessURL//保存Access连接字符串 public DBConnAccess()

{

//Access驱动程序

accessdriver = "sun.jdbc.odbc.JdbcOdbcDriver"

//连接字符串

accessURL = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)}DBQ="

conn = null

} //该方法从参数得到数据库路径,并加到连接字符串后面,然后再建立连接

public Connection getConnToAccess(String dbpath){

try{

accessURL=accessURL+dbpath

Class.forName(accessdriver)

conn = DriverManager.getConnection(accessURL)

}catch(Exception e){

System.out.println(" *** 作数据库出错,请仔细检查")

System.err.println(e.getMessage())

}

return conn

}

//关闭数据库连接

public void close()

{

try{

//rs.close()

//stmt.close()

conn.close()

}catch(SQLException sqlexception){

sqlexception.printStackTrace()

}

}

}

调用方法如下:

复制内容到剪贴板代码: <meta http-equiv="Content-Type" content="text/htmlcharset=gb2312">

<%@ page contentType="text/htmlcharset=gb2312" language="java"

import="java.sql.*" %>

<jsp:useBean id="DBConn" scope="page" class="conn.DBConnAccess"/>

<%

//连接Access 数据库

String dbpath="data/test.mdb" //数据库的路径,请自行修改

Connection conn=DBConn.getConnToAccess(application.getRealPath(dbpath))

Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)

String sql="select * from username order by id"

//String sql1="insert into username (uid,pwd) values('wsp','wsp')"

//stmt.executeUpdate(sql1)

ResultSet rs=stmt.executeQuery(sql)

while(rs.next()){

out.print("用户名:")

out.print(rs.getString("uid")+" 密码:")

out.println(rs.getString("pwd")+"<br>")

}

DBConn.close()

%>

1.最简单的方式

<?php$con = mysql_connect("localhost","root","")if (!$con) { die('Could not connect: ' . mysql_error()) }mysql_close($con)?>

2.面向对象mysqli(详细教程)

<?php$mysqli = new mysqli('localhost','root','','volunteer')if (mysqli_connect_errno()){ die('Unable to connect!'). mysqli_connect_error()}?>

3.pdo连接mysql(详细教程)

<?php $db = new PDO('mysql:host=localhostdbname=test', 'root', '')try { foreach ($db->query('select * from user') as $row){ print_r($row) } $db = null //关闭数据库} catch (PDOException $e) { echo $e->getMessage()}?>

4.ADODB连接mysql(详细教程)

<?phprequire_once './adodb5/adodb.inc.php'$conn = &ADONewConnection('mysql')$conn->connect('localhost','root','','test')$conn->Execute("set names utf8")$res = $conn->Execute("select * from user")if (!$res){ echo $conn->ErrorMsg()}else{ var_dump($res)}?>

关于VB6 + Access的简单数据库应用问题

最近,经常看到有人提问相关问题,心血来潮有一股冲动,把这个方面的应用在这里介绍一下。

我使用过的VB6提供的数据库连接控件有两个,一个是Data控件另一个是Adodc控件。

考虑到Data控件只能针对本地数据库的开发应用,并且它只支持VB5中的网格控件DBGrid控件,所以这里主要介绍Adodc控件。(注意:VB5的DBGrid控件,需要把DBGRID32.OCX文件复制到c:\windows\system32\DBGRID32.OCX进行引用)

下面介绍使用Adodc控件与DataGrid控件进行简易数据库的应用:

一.添加Adodc控件与DataGrid控件:

因为这两个控件默认状态下都不在“控件工具箱”内,所以需要手动添加到“控件工具箱”内。

1.添加Adodc控件:

在VB6里,通过菜单来添加该控件,方法:[工程] -- [部件],出现“部件”对话框,在“控件”选项卡里,通过滚动条,找到并勾选:Microsoft Ado Data Control 6.0 (SP6) (OLEDB),然后单击[确定],这样该控件图标就出现在“控件工具箱”里了,你可以像使用其它你熟悉的控件一样,添加到窗体上。

2.添加DataGrid控件:

方法与过程与添加Adodc控件过场相似,勾选的是:Microsoft DataGrid Control 6.0 (SP6) (OLEDB)。

二.连接数据:

为了说明,假设你有数据库文件“数据库.Mdb”,在里边有数据表“学生基本信息”和“学生成绩”。

“学生基本信息”有字段:学号、姓名、性别(都是字符类型)

“学生成绩”有字段:学号、语文、数学、英语(学号字符类型,其它数值类型)

假设你添加的控件为:Adodc1和DataGrid。

1.先将Adodc1控件连接到数据库文件:(有两种方法)

方法1:设置Adodc1的ConnectionString属性,在属性窗口点带有省略号的按钮…选[生成] -- 选Microsoft Jet 4.0 OLE DB Privider -- [下一步]--单击省略号按钮,定位到你保存“数据库.MDB”的位置,选中该数据库,单击[打开],连接成功了,可以测试一下。回到窗体,你会看到Adodc1的ConnectionString 属性里的一大串内容。

方法2:也可以用命令直接设置连接,在运行时通过执行该命令来完成连接,命令如下:

Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0Data Source=C:\Program Files\Microsoft Visual Studio\VB98\ADODC控件实例\数据库.mdbPersist Security Info=False",值得说明以下,这个双引号里的内容,是我的实际情况,因为我在VB98文件夹里,建立了子文件夹“\ADODC控件实例”,并把使用的数据库文件复制到该文件夹里了。这里引号里的一大串内容,你可以从刚在属性窗口里直接复制过来,然后做一些改动,要注意这个改动往往是必要的也是非常关键的,因为考虑到一般情况,你的应用程序不可能安装到“\VB98”这个文件夹,所以一般的改动如下:

将“Source=C:\Program Files\Microsoft Visual Studio\VB98\ADODC控件实例\数据库.mdb”改为“Source=" &App.Path &"\数据库.mdb”即完整的情况如下:

Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0Data Source=" &App.Path &"\数据库.mdbPersist Security Info=False"

接下来连接到数据表“学生基本信息”:

方法1:设置Adodc1的RecordSource 属性,在属性窗口点带有省略号的按钮,在“命令类型”里,选:2 – adCmdTable,在"表或存储过程名称"里,选“学生基本信息”,单击确定,你会看到ADODC1的RecordSource 属性栏里是“学生基本信息”。

方法2:也可以用命令直接设置连接:

Adodc1.RecordSource = "学生基本信息"

至此,完成了ADODC1控件与数据库的连接。

三.将DataGrid1绑定到ADODC1控件:

选中窗体上的DataGrid1,设置其DataSource 属性,点右边的下拉按钮,选ADODC1,完成绑定。

设置DataGrid1显示内容与模式,右击窗体上的DataGrid1控件,选"检索字段",选[Y],完成。

至此,你启动窗体,就可以在DataGrid1控件里看到效果了。

可以右击窗体上的DataGrid1控件,选“属性”,进一步作设置,比如:“允许添加”、“允许删除”。

四.常用 *** 作数据库的命令:

1.刷新记录集:

Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0Data Source=" &App.Path &"\数据库.mdbPersist Security Info=False"‘连接数据库文件

Adodc1.RecordSource = "学生基本信息" ‘连接数据表

Adodc1.Refresh‘刷新记录集,这个不能漏

2.移动记录:

Adodc1.Recordset.MoveFirst‘记录指针移动到第1条记录

Adodc1.Recordset.MoveNext‘记录指针移动到下1条记录

Adodc1.Recordset.MoveLast‘记录指针移动到最后1条记录

Adodc1.Recordset.MovePrevious 记录指针移动到前1条记录

注意:上面执行Adodc1.Refresh后,如果数据表非空,就自动将记录指针指向第1条记录。

3.编辑更新数据:

首先将记录移动到需要编辑更新的记录,当然在DataGrid1里可以直观地进行修改编辑,也可以用命令;

Adodc1.Recordset.Fields ("姓名") = “王伟” ‘用“王伟”更新当前记录的“姓名”字段

Adodc1.Recordset.Update ‘执行更新,注意这一步不能漏

当然,你可以对某条记录的若干个字段进行更新后,再一次进行Update

4.添加记录:

Adodc1.Recordset.AddNew ‘在数据表的末尾添加一条空记录(所有字段为空)

说明:如果用命令要增加一条记录信息,通常:

1)先用AddNew

2)然后用:

For i = 0 To Adodc1.Recordset.Fields.Count - 1

Adodc1.Recordset.Fields(i) = 内容i

Next i

3)最后用:Adodc1.Recordset.Update

5.删除记录:

首先移动到你要删除那条记录,然后执行:Adodc1.Recordset.Delete

五.关于SQL语句在连接数据表时的一些基本用法:

前面介绍用Adodc控件连接好数据库文件后,要设置其RecordSource来连接数据表,即:Adodc1.RecordSource = "学生基本信息"

其实RecordSource属性,可以使用SQL语法,常用Select语句格式如下:

Select 字段列表 From 数据表名 [Where …] [Order By …]

其中:

字段列表– 是指返回的记录,包含哪些字段,字段名之间用逗号分隔

数据表名 -- 是指从哪个数据表返回信息

例如1:

Adodc1.RecordSource = "Select 学号,姓名 From 学生基本信息"

例如2:

Adodc1.RecordSource = "Select * From 学生基本信息"

例2的结果与Adodc1.RecordSource = "学生基本信息"相同。其中“*”表示所有字段。

Where子句– 根据条件筛选记录

Order By 子句– 设置排序

例如3:

Adodc1.RecordSource = "Select * From 学生基本信息 Where 性别=’女’"

仅返回女生记录。

例如4:

Adodc1.RecordSource = "Select * From 学生基本信息 Where 学号>’300’ And性别=’男’"

仅返回学号大于“300”的男生记录。

例如5:

Adodc1.RecordSource = "Select * From 学生基本信息 Order By 学号"

按照学号从小到大(升序)的次序,返回记录。

例如6:

Adodc1.RecordSource = "Select * From 学生基本信息 Order By 学号/D"

按照学号从大到小(降序)的次序,返回记录。

注意:/D表示从大到小,/A表示从小到大,/A是缺省表示。

关于SQL语法,可以到以下网址查询并运用,非常有价值:

http://www.w3school.com.cn/sql/

六.小技巧:

在使用Adodc1的时候,有一些值得注意的细节:

1.关于Adodc1控件的Eof、Bof属性

Eof – 返回数据表(或返回的记录集)记录指针是超出表尾

Bof – 返回数据表(或返回的记录集)记录指针是超出表头

怎么理解呢?假设你的数据表只有一条记录,当你一开始使用了:

Adodc1.Refresh

后,这时记录指针指向第1条也是唯一的1条记录,这时候Adodc1的Eof和Bof属性都为False(记录指针既没有超出表尾也没有超出表头),如果这时候使用移动到下一条记录命令:

Adodc1.Recordset.MoveNext

那么,Eof为True,Bof 为False。然后,使用命令

Adodc1.Recordset.MovePrevious ‘移动到前一条记录

这时,记录指针指向第1条也是唯一的1条记录,Eof为False,Bof 为False。然后,使用命令

Adodc1.Recordset.MovePrevious ‘移动到前一条记录

这时,指针向前超出表头,即:Eof为False,Bof 为True。

特别的情况,假设你的数据表没有任何记录,当你一开始使用了:

Adodc1.Refresh

这时,Eof为True,Bof 为True。

通常使用这两个属性来判断数据表(或返回的记录集)是否为空:

1)有时候一些数据表一开始可能是空表,即没有记录,但是我们又不知道,通常如下编写代码:

Adodc1.Refresh

If Adodc1.Recordset.EOF And Adodc1.Recordset.BOF Then

‘编写当不存在记录时对数据表 *** 作的代码

Else

‘编写当存在记录时对数据表 *** 作的代码

End If

2.关于空字段的 *** 作:

我们经常需要将找到的某记录的某个字段值,赋予变量,例如

Dim XB As String

Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0Data Source=" &App.Path &"\数据库.mdbPersist Security Info=False"

Adodc1.RecordSource = "Select * From 学生基本信息 Where 姓名=’张飞’"

Adodc1.Refresh

XB = Adodc1.Recordset.Fields("性别")

这时,如果该记录的"性别"字段里没有内容,将会出错误提示,所以,我们往往在命令中使用函数IsNull进行判断:

If Not IsNull(Adodc1.Recordset.Fields("性别")) Then

XB = Adodc1.Recordset.Fields("性别")

EndIf

最后,Adodc控件不仅可以连接本地数据库,还可以连接远程数据库,使用几乎与本地数据库一样。

大概想到的就是这些,仅供参考,有不正确的地方请指正。


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

原文地址:https://www.54852.com/sjk/10802038.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存