数据库建立连接
『壹』 简述mysql建立连接过程
在以前不论是使用SQLyog MySQL GUI或是phpMyAdmin访问数据库,第一步一定是输入访问数据库的账号与密码,当然Dreamweaver也不例外。在Dreamweaver中,我们通过建立 【MySQL联机】告诉Dreamweaver连接的MySQL数据库地址、名称,以及访问的账号和密码。
在一个网站中,我们只需对一个数据库建立一次MySQL连接。通常网络上的主机空间也只支持访问一个数据库。例如虚拟主机,最基本的方案是搭配1个MySQL数据库。
在【文件】面板中打开index.php,接着选择【应用程序】→【数据库】面板,单击【+】按钮后选择【MySQL连接】。
建立MYSQL连接
在建立数据库连接前,我们必须设置好图6-5中的前面3个选项,如果依照书中叙述设置好,那么基本上便不会有问题。当然必须至少打开一个网页,否则会有无法选择的情况发生。
未打开页面,选项均无法选择
弹出如图6-7所示的窗口,请依照其下面的说明进行设置。可以单击【测试】按钮测试是否有问题,单击【确定】按钮后就可以在【应用程序】→【数据库】面板中看到所建立的数据库连接。我们可以操作这个树状结构(见图6-8)检查连接的数据库、数据表与字段名称及属性等。也可以打开phpMyAdmin来检查数据库结构,并与面板内的信息对比。字段与功能说明。
建立连接
数据库内的数据表、字段和属性
字段与功能说明
字 段
说 明
连接名称
依个人喜好自由输入
MySQL服务器
MySQL服务器的位置,一般设置为localhost,除非所要存取的MySQL数据库不在网页所在的主机上,而且该MySQL数据库也提供对外的连接
用户名
访问MySQL数据库的用户名称
密码
访问MySQL数据库的用户密码
数据库
选择所要建立连接的数据库名称,可以单击【选取】按钮浏览MySQL服务器上的所有数据库。我们选择刚导入的范例数据库database
在建立完成MySQL连接后,在【文件】面板中会看到Dreamwaver自动建立了Connections文件夹,在该文件夹下有一个与前面所建立的MySQL连接名称相同的文件。
Connections文件夹
Connections文件夹是Dreamweaver用来存放MySQL连接设置文件的文件夹。
打开该文件并使用【代码】视图,可以看到有关连接数据库的设置。
数据库连接设置
在这个文件中定义了与MySQL服务器的连接(mysql_pconnect函数),包括以下内容。
$hostname:MySQL服务器的地址。
$database:连接数据库的名称。
$username:用户名称。
$password:用户密码。
定义的值与我们前面在图形界面所设置的值是对应的,然后利用函数mysql_pconnect与数据库连接。连接后才能对数据库进行查询、新增、修改或删除的操作。
如果在网站制作完成后将文件上传至网络上的主机空间时发现,网络上的MySQL服务器访问的用户名、密码等方面与本机设置有所不同,可以直接修改位于Connection文件夹下的db_conn.php文件。但还是建议直接在本机配合网络主机上的环境来设置。例如,你拥有虚拟主机所提供的MySQL数据库名称为xu354jp6,但在本机却要命名为Charles,虽然可能会好看些,但到时候就会多一个麻烦了。
对于如何将本机已经完成的网站移植到网络上的空间,将在附录中有详细的介绍。
总之,在建立好数据库连接后,除非要连接MySQL数据库里的另一个数据库,否则不需要再做这个步骤了。
『贰』 数据库怎么连接,
楼上说的是java那边的 我来说说C这边的吧
我不知道你对代码的了解度程是什么 也太笼统了 不好说 我整理了下 vs基本现在用的就这几种
数据库 只要加载到SQLSERVER里就行了
程序链接数据库的话 方法很多
1: webconfig文件
<configuration>
<connectionStrings>
<add name="ConnectionString1" connectionString="Data Source=LEUU\LEUU;Initial Catalog=学生成绩管理;Integrated Security =True" providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
name是连接字符串的名字
connectionString 是他的值。。
Data Source表示数据源,也就是sql服务的路径和名称,一般为IP地址
user id 是帐号, p.....。。
Initial Catalog表示数据库名称
Integrated Security=True表示打开数库链接时集成windows身份验证
1号方法 需要使用下面2号方法来调用 只不过可以在代码中不用定义configuration的连接语句
不过 必需new
--------------------------------------------------------------------------------------------------
2 代码中直接调用 SqlConnection类连接数据库
(其实这样不好 如果忘了关conn 别的地方就没法再打开 还不抱错 囧 不过你懂的调用数据库次数少话 小程序这么写简单)
如果连接微软的Sql Server7.0及以后版本数据库,使用SqlConnection类建立连接效率较高。而连接其它支持ODBC的数据库,必须使用OleDbConnection类。使用SqlConnection类必须引用如下命名空间:
Using System.Data;
using System.Data.SqlClient;
使用OleDbConnection类必须引用如下命名空间:
Using System.Data;
using System.Data.OleDb;
使用SqlConnection类建立连接的例子如下:
string txtConn="DATABASE=Northwind;SERVER=localhost;UID=sa;PWD=;";
SqlConnection conn=new SqlConnection(txtConn);//建立连接
其中DATABASE为数据库名称,这里为Northwind,必须安装微软Sql Server数据库系统,并安装自带的数据库例子Northwind,才能使用。UID为用户名,PWD为密码,Northwind数据库安装后的用户名为sa,密码为空。SERVER为所使用的数据库服务器,这里数据库服务器和数据库应用程序在同一台计算机中,因此为localhost,中文意义是本地主机。
使用OleDbConnection类建立连接的例子如下:
string txtConn=//将作为OleDbConnection类对象conn的属性ConnectionString的值
"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=D:\\VC#\\studentI.mdb";
OleDbConnection conn=new OleDbConnection(txtConn);//建立数据库连接
Provider为所使用的数据库驱动程序,DataSource为数据库的位置。也可以使用Visual Studio.Net建立连接,见例子8_10B。方法Open()和Close(),打开和关闭数据库连接。
-----------------------------------------------------------------------------------------
3 所谓的dbhelper类(以前自己写的 可以多楚调用 高手别笑哈 这是一个单独的cs文件 调用的话 new就行)
private static SqlConnection conn;
public static SqlConnection Conn
{
get
{
string sqlconn = ConfigurationManager.ConnectionStrings["Sqlcon"].ConnectionString;
if (conn == null)
{
conn = new SqlConnection(sqlconn);
conn.Open();
}
else if (conn.State == System.Data.ConnectionState.Closed)
{
conn.Open();
}
else if (conn.State == System.Data.ConnectionState.Broken)
{
conn.Close();
conn.Open();
}
return conn;
}
}
public static SqlDataReader GetProcReader(string sqlproc)
{
SqlCommand commd = new SqlCommand();
commd.Connection = Conn;
commd.CommandType = CommandType.StoredProcere;
commd.CommandText = sqlproc;
SqlDataReader reader = commd.ExecuteReader();
return reader;
}
public static SqlDataReader GetProcReader(string sqlproc, params SqlParameter[] para)
{
SqlCommand commd = new SqlCommand();
commd.Connection = Conn;
commd.CommandType = CommandType.StoredProcere;
commd.CommandText = sqlproc;
commd.Parameters.AddRange(para);
SqlDataReader reader = commd.ExecuteReader();
return reader;
}
public static int GetProcCommand(string sqlproc)
{
SqlCommand commd = new SqlCommand();
commd.Connection = Conn;
commd.CommandType = CommandType.StoredProcere;
commd.CommandText = sqlproc;
int num = commd.ExecuteNonQuery();
return num;
}
public static int GetProcCommand(string sqlproc, params SqlParameter[] para)
{
SqlCommand commd = new SqlCommand();
commd.Connection = Conn;
commd.CommandType = CommandType.StoredProcere;
commd.CommandText = sqlproc;
commd.Parameters.AddRange(para);
int num = commd.ExecuteNonQuery();
return num;
}
『叁』 如何建立数据库连接
你可以考虑写一个简单的网页,这个网页要用到动态脚本,如php,asp,jsp等等然后在后台建立一个数据库,如果要求功能很简单的话,就用asp+access,或者php+mysql(这个要用到数据库空间,但是数据库管理很方便,可以都是用图形化界面操作),你必须了解sql数据库,这样操作任何数据库就都不难了,这些都要建立在你必须了解动态脚本的基础上,这样你用DW做的表单才能提交到数据库,其实你还可以让他将表单数据发到指定邮箱的(这种方法比较简单,使用DW弄就可以,不必要了解动态脚本)!
『肆』 应用程序如何与数据库建立连接
首先 程序和数据里连接 需要一个驱动 这个工具别人已经写好了 你只要拿过来 加到程序内里面然后容 要和数据库连接 就要知道 数据库的服务器地址 登陆数据库的用户名 密码 使用的是哪个数据库实例最后就可以连接了原理和登陆网上一个网页差不多 首先需要一个浏览器 比如ie 然后需要知道网址 用户名 密码 等等
『伍』 如何将两个数据库建立连接
第一步:客户端查找相关的Hosts文件。
客户端一开始也不知道主机名对应的IP地址是多回少。故需要把这个答主机名解析成对应的IP地址,如此的话,客户端才能够连接到服务器上。要解析这个主机名的话,可以通过Host文件或者DNS服务器来完成。
通常情况下,客户端是先去查询本机上的Host文件,看看有没有对应的纪录。
如果没有的话,则去寻找网络中存在的DNS服务器要求解析。
第二步:客户端联系服务器。
当客户端获得服务器的IP地址后,就会跟服务器进行联系。
客户端会把用户名与密码发送给服务器。注意此时客户端不会把服务名称告诉给服务器。因为默认情况下,服务器上只会安装一个应用服务。故客户端只要把用户名与密码告诉给服务器,数据库服务器就会允许用户连接唯一的一个应用服务。
故如果要用户连接同一台主机上的不同Oracle数据库服务,则需要数据库能够识别客户端到底需要连接哪个应用服务,也就是说,需要客户端能够把应用服务的名称也传递给服务器。
『陆』 Java数据库连接的建立连接
Connection 对象代表与数据库的连接。连接过程包括所执行的 SQL 语句和在该连接上所返回的结果。一个应用程序可与单个数据库有一个或多个连接,或者可与许多数据库有连接。
⒈ 打开连接
与数据库建立连接的标准方法是调用DriverManager.getConnection方法。该方法接受含有某个URL的字符串。DriverManager类(即所谓的JDBC管理层)将尝试找到可与那个URL所代表的数据库进行连接的驱动程序。DriverManager类存有已注册的Driver类的清单。当调用方法getConnection时,它将检查清单中的每个驱动程序,直到找到可与URL中指定的数据库进行连接的驱动程序为止。Driver的方法connect使用这个URL来建立实际的连接。
用户可绕过JDBC管理层直接调用Driver方法。这在以下特殊情况下将很有用:当两个驱动器可同时连接到数据库中,而用户需要明确地选用其中特定的驱动器。但一般情况下,让DriverManager类处理打开连接这种事将更为简单。
下述代码显示如何打开一个与位于URL"jdbc:odbc:wombat"的数据库的连接。所用的用户标识符为"freely",口令为"ec":
String url = "jdbc:odbc:wombat";
Connection con = DriverManager.getConnection(url, "freely", "ec");
⒉ 一般用法的URL
由于URL常引起混淆,我们将先对一般URL作简单说明,然后再讨论JDBCURL。URL(统一资源定位符)提供在Internet上定位资源所需的信息。可将它想象为一个地址。URL的第一部份指定了访问信息所用的协议,后面总是跟着冒号。常用的协议有"ftp"(代表"文件传输协议")和"http"(代表"超文本传输协议")。如果协议是"file",表示资源是在某个本地文件系统上而非在Internet上(下例用于表示我们所描述的部分;它并非URL的组成部分)。
URL的其余部份(冒号后面的)给出了数据资源所处位置的有关信息。如果协议是file,则URL的其余部份是文件的路径。对于ftp和http协议,URL的其余部份标识了主机并可选地给出某个更详尽的地址路径。例如,以下是JavaSoft主页的URL。该URL只标识了主机:从该主页开始浏览,就可以进到许多其它的网页中,其中之一就是JDBC主页。
⒊ JDBC URL
JDBC URL提供了一种标识数据库的方法,可以使相应的驱动程序能识别该数据库并与之建立连接。实际上,驱动程序编程员将决定用什么JDBC URL来标识特定的驱动程序。用户不必关心如何来形成JDBC URL;他们只须使用与所用的驱动程序一起提供的URL即可。JDBC的作用是提供某些约定,驱动程序编程员在构造他们的JDBC URL时应该遵循这些约定。
由于JDBC URL要与各种不同的驱动程序一起使用,因此这些约定应非常灵活。首先,它们应允许不同的驱动程序使用不同的方案来命名数据库。例如,odbc子协议允许(但并不是要求)URL含有属性值。
其次,JDBC URL应允许驱动程序编程员将一切所需的信息编入其中。这样就可以让要与给定数据库对话的applet打开数据库连接,而无须要求用户去做任何系统管理工作。
最后,JDBC URL应允许某种程度的间接性。也就是说,JDBC URL可指向逻辑主机或数据库名,而这种逻辑主机或数据库名将由网络命名系统动态地转换为实际的名称。这可以使系统管理员不必将特定主机声明为JDBC名称的一部份。网络命名服务(例如DNS、NIS和DCE)有多种,而对于使用哪种命名服务并无限制。
JDBC URL的标准语法如下所示。它由三部分组成,各部分间用冒号分隔:
jdbc:<;协议:子协议:子名称> JDBC URL的三个部分可分解如下:
⑴jdbc协议:JDBC URL中的协议总是jdbc。
⑵<;子协议>;:驱动程序名或数据库连接机制(这种机制可由一个或多个驱动程序支持)的名称。子协议名的典型示例是"odbc",该名称是为用于指定ODBC风格的数据资源名称的URL专门保留的。例如,为了通过JDBC-ODBC桥来访问某个数据库,可以用如下所示的URL:jdbc:odbc:book。本例中,子协议为"odbc",子名称"book"是本地ODBC数据资源。如果要用网络命名服务(这样JDBC URL中的数据库名称不必是实际名称),则命名服务可以作为子协议。例如,可用如下所示的URL:jdbc:dcenaming:accounts。本例中,该URL指定了本地DCE命名服务应该将数据库名称"accounts"解析为更为具体的可用于连接真实数据库的名称。
⑶<;子名称>;:种标识数据库的方法。子名称可以依不同的子协议而变化。它还可以有子名称的子名称(含有驱动程序编程员所选的任何内部语法)。使用子名称的目的是为定位数据库提供足够的信息。前例中,因为ODBC将提供其余部份的信息,因此用"book"就已足够。然而,位于远程服务器上的数据库需要更多的信息。例如,如果数据库是通过Internet来访问的,则在JDBC URL中应将网络地址作为子名称的一部份包括进去,且必须遵循如下所示的标准URL命名约定://主机名:端口/子协议。
假设"dbnet"是个用于将某个主机连接到Internet上的协议,则JDBC URL应为:jdbc:dbnet://wombat:356/fred。
⒋ "odbc"子协议
子协议odbc是一种特殊情况。它是为用于指定ODBC风格的数据资源名称的URL而保留的,并具有下列特性:允许在子名称(数据资源名称)后面指定任意多个属性值。odbc子协议的完整语法为:
jdbc:odbc:<;数据资源名称>;【;<;属性名>=<;属性值>;】,因此,以下都是合法的jdbc:odbc名称:
jdbc:odbc:qeor7
jdbc:odbc:wombat
jdbc:odbc:wombat;CacheSize=20;ExtensionCase=LOWER
jdbc:odbc:qeora;UID=kgh;PWD=fooey
⒌ 注??称以将之用作JDBC URL的子协议名。当DriverManager类将此名称加到已注册的驱动程序清单中时,为之保留该名称的驱动程序应能识别该名称并与它所标识的数据库建立连接。例如,odbc是为JDBC-ODBC桥而保留的。假设有个Miracle公司,它可能会将"miracle"注册为连接到其Miracle DBMS上的JDBC驱动程序的子协议,从而使其他人都无法使用这个名称。
JavaSoft作为非正式代理负责注册JDBC子协议名称。
⒍ 发送SQL语句
连接一旦建立,就可用来向它所涉及的数据库传送SQL语句。JDBC对可被发送的SQL语句类型不加任何限制。这就提供了很大的灵活性,即允许使用特定的数据库语句或甚至于非SQL语句。然而,它要求用户自己负责确保所涉及的数据库可以处理所发送的SQL语句,否则将自食其果。例如,如果某个应用程序试图向不支持储存程序的DBMS发送储存程序调用,就会失败并将抛出异常。JDBC要求驱动程序应至少能提供ANSI SQL-2 Entry Level功能才可算是符合JDBC标准TM的。这意味着用户至少可信赖这一标准级别的功能。
JDBC提供了三个类,用于向数据库发送SQL语句。Connection接口中的三个方法可用于创建这些类的实例。下面列出这些类及其创建方法:
⑴Statement:由方法createStatement所创建。Statement对象用于发送简单的SQL语句。
⑵PreparedStatement:由方法prepareStatement所创建。PreparedStatement对象用于发送带有一个或多个输入参数(IN参数)的SQL语句。PreparedStatement拥有一组方法,用于设置IN参数的值。执行语句时,这些IN参数将被送到数据库中。PreparedStatement的实例扩展了Statement,因此它们都包括了Statement的方法。PreparedStatement对象有可能比Statement对象的效率更高,因为它已被预编译过并存放在那以供将来使用。
⑶CallableStatement:由方法prepareCall所创建。CallableStatement对象用于执行SQL储存程序─一组可通过名称来调用(就象函数的调用那样)的SQL语句。CallableStatement对象从PreparedStatement中继承了用于处理IN参数的方法,而且还增加了用于处理OUT参数和INOUT参数的方法。
不过通常来说createStatement方法用于简单的SQL语句(不带参数)、prepareStatement方法用于带一个或多个IN参数的SQL语句或经常被执行的简单SQL语句,而prepareCall方法用于调用已储存过程。
⒎ 事务
事务由一个或多个这样的语句组成:这些语句已被执行、完成并被提交或还原。当调用方法commit或rollback时,当前事务即告就结束,另一个事务随即开始。缺省情况下,新连接将处于自动提交模式。也就是说,当执行完语句后,将自动对那个语句调用commit方法。这种情况下,由于每个语句都是被单独提交的,因此一个事务只由一个语句组成。如果禁用自动提交模式,事务将要等到commit或rollback方法被显式调用时才结束,因此它将包括上一次调用commit或rollback方法以来所有执行过的语句。对于第二种情况,事务中的所有语句将作为组来提交或还原。
方法commit使SQL语句对数据库所做的任何更改成为永久性的,它还将释放事务持有的全部锁。而方法rollback将弃去那些更改。有时用户在另一个更改生效前不想让此更改生效。这可通过禁用自动提交并将两个更新组合在一个事务中来达到。如果两个更新都是成功,则调用commit方法,从而使两个更新结果成为永久性的;如果其中之一或两个更新都失败了,则调用rollback方法,以将值恢复为进行更新之前的值。
大多数JDBC驱动程序都支持事务。事实上,符合JDBC的驱动程序必须支持事务。DatabaseMetaData给出的信息描述DBMS所提供的事务支持水平。
⒏ 事务隔离级别
如果DBMS支持事务处理,它必须有某种途径来管理两个事务同时对一个数据库进行操作时可能发生的冲突。用户可指定事务隔离级别,以指明DBMS应该花多大精力来解决潜在冲突。例如,当事务更改了某个值而第二个事务却在该更改被提交或还原前读取该值时该怎么办。
假设第一个事务被还原后,第二个事务所读取的更改值将是无效的,那么是否可允许这种冲突?JDBC用户可用以下代码来指示DBMS允许在值被提交前读取该值("dirty读取"),其中con是当前连接:
con.setTransactionIsolation(TRANSACTION_READ_UNCOMMITTED);
事务隔离级别越高,为避免冲突所花的精力也就越多。Connection接口定义了五级,其中最低级别指定了根本就不支持事务,而最高级别则指定当事务在对某个数据库进行操作时,任何其它事务不得对那个事务正在读取的数据进行任何更改。通常,隔离级别越高,应用程序执行的速度也就越慢(由于用于锁定的资源耗费增加了,而用户间的并发操作减少了)。在决定采用什么隔离级别时,开发人员必须在性能需求和数据一致性需求之间进行权衡。当然,实际所能支持的级别取决于所涉及的DBMS的功能。
当创建Connection对象时,其事务隔离级别取决于驱动程序,但通常是所涉及的数据库的缺省值。用户可通过调用setIsolationLevel方法来更改事务隔离级别。新的级别将在该连接过程的剩余时间内生效。要想只改变一个事务的事务隔离级别,必须在该事务开始前进行设置,并在该事务结束后进行复位。我们不提倡在事务的中途对事务隔离级别进行更改,因为这将立即触发commit方法的调用,使在此之前所作的任何更改变成永久性的。
『柒』 如何:创建数据库连接
必须先创建连接,然后才能连接到数据库。 可通过在以下对话框中单击“新建连接”来创建连接: “数据比较”对话框 “架构比较”对话框 Transact-SQL 编辑器的“连接到服务器”对话框 数据生成器的“为目标数据库生成数据”对话框 数据库单元测试的“数据库测试配置”对话框 还可以使用“服务器资源管理器”来添加连接。 有关更多信息,请参见 如何:从服务器资源管理器连接到数据库。 重要事项 您只能从“服务器资源管理器”中删除连接。 主题内容 通过单击“新建连接”来添加连接 重命名连接 修改连接 删除连接通过单击“新建连接”来添加连接 单击“新建连接”。 随即出现“连接属性”对话框。 在“服务器名称”中键入或单击要连接的服务器的名称。 若要使用 Microsoft Windows 凭据来登录到服务器上,请单击“使用 Windows 身份验证”。 若要使用 SQL Server 身份验证来登录到服务器上,请单击“使用 SQL Server 身份验证”,然后在“用户名”和“密码”中键入用户名和密码。 在“连接到数据库”中键入或单击要连接的数据库的名称。 (可选)可以单击“高级”配置高级连接属性。 (可选)可以单击“测试连接”验证是否可以使用指定的连接信息连接到数据库。 单击“确定”创建连接。 重命名连接 在“视图”菜单上,单击“服务器资源管理器”。 展开“数据连接”节点,右击需要重命名的连接,然后单击“重命名”。 键入连接的新名称,然后按 Enter。 修改连接 在“视图”菜单上,单击“服务器资源管理器”。 展开“数据连接”节点,右击需要重命名的连接,然后单击“修改连接”。 随即出现“修改连接”对话框。 更新连接的信息,然后单击“确定”。 如果您决定不修改连接,则单击“取消”放弃更改。 删除连接 在“视图”菜单上,单击“服务器资源管理器”。 展开“数据连接”节点,右击需要重命名的连接,然后单击“删除”。 在确认对话框中单击“是”以删除连接。 安全性 建议不选择“保存密码”复选框,将 SQL Server 密码与连接字符串一起存储。 客户反馈
『捌』 JDBC是怎么和数据库建立连接的
创建一个以JDBC连接数据库的程序,包含7个步骤:
1、加载JDBC驱动程序:
在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),
这通过java.lang.Class类的静态方法forName(String className)实现。
例如:
try{
//加载MySql的驱动类
Class.forName("com.mysql.jdbc.Driver") ;
}catch(ClassNotFoundException e){
System.out.println("找不到驱动程序类 ,加载驱动失败!");
e.printStackTrace() ;
}
成功加载后,会将Driver类的实例注册到DriverManager类中。
2、提供JDBC连接的URL
•连接URL定义了连接数据库时的协议、子协议、数据源标识。
•书写形式:协议:子协议:数据源标识
协议:在JDBC中总是以jdbc开始
子协议:是桥连接的驱动程序或是数据库管理系统名称。
数据源标识:标记找到数据库来源的地址与连接端口。
例如:(MySql的连接URL)
jdbc:mysql:
//localhost:3306/test?useUnicode=true&characterEncoding=gbk ;
useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为
gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。
3、创建数据库的连接
•要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,
该对象就代表一个数据库的连接。
•使用DriverManager的getConnectin(String url , String username ,
String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和
密码来获得。
例如:
//连接MySql数据库,用户名和密码都是root
String url = "jdbc:mysql://localhost:3306/test" ;
String username = "root" ;
String password = "root" ;
try{
Connection con =
DriverManager.getConnection(url , username , password ) ;
}catch(SQLException se){
System.out.println("数据库连接失败!");
se.printStackTrace() ;
}
4、创建一个Statement
•要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3
种类型:
1、执行静态SQL语句。通常通过Statement实例实现。
2、执行动态SQL语句。通常通过PreparedStatement实例实现。
3、执行数据库存储过程。通常通过CallableStatement实例实现。
具体的实现方式:
Statement stmt = con.createStatement() ;
PreparedStatement pstmt = con.prepareStatement(sql) ;
CallableStatement cstmt =
con.prepareCall("{CALL demoSp(? , ?)}") ;
5、执行SQL语句
Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate
和execute
1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句
,返回一个结果集(ResultSet)对象。
2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或
DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等
3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的
语句。
具体实现的代码:
ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;
int rows = stmt.executeUpdate("INSERT INTO ...") ;
boolean flag = stmt.execute(String sql) ;
6、处理结果
两种情况:
1、执行更新返回的是本次操作影响到的记录数。
2、执行查询返回的结果是一个ResultSet对象。
• ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些
行中数据的访问。
• 使用结果集(ResultSet)对象的访问方法获取数据:
while(rs.next()){
String name = rs.getString("name") ;
String pass = rs.getString(1) ; // 此方法比较高效
}
(列是从左到右编号的,并且从列1开始)
7、关闭JDBC对象
操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声
明顺序相反:
1、关闭记录集
2、关闭声明
3、关闭连接对象
if(rs != null){ // 关闭记录集
try{
rs.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(stmt != null){ // 关闭声明
try{
stmt.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(conn != null){ // 关闭连接对象
try{
conn.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
『玖』 Java中如何与数据库建立连接
导入java.sql包
一、加载要连接数据库的驱动程序
//Jdbc-Odbc桥 和 Microsoft Access 数据库
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// SQL Server 驱动程序:
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
注:Class.forName()方法将给定的类加载到JVM,如果系统中不存在给定的类,则会引发异常
二、通过驱动程序管理器得到连接实例
Connection conn=null;
//1.
//1.1建立数据源
conn=DriverManager.getConnection("jdbc:odbc:MyDataSource"); //MyDataSource是数据源名称
//1-2、不建立数据源
conn=DriverManager.getConnection("jdbc:odbc:;Driver=Microsoft Access Driver (*.mdb);DBQ=C:\\VBTest.mdb");
//2.SQL Server
conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;databasename=mydb","sa","");
注:DriverManager类跟踪已注册的驱动程序,通过getConnection(URL)方法, 找到一个能够连接至URL中指定的数据库驱动程序
它接收三个参数, 分别表示1 数据源的名称、类型 2 用户名(可选) 3 密码(可选)
三、基于连接对象建立处理器对象
Statement stmt=conn.createStatement();
四、准备sql命令
String sql="select * from Student";
五、执行命令返回结果集
ResultSet rs=stmt.executeQuery(sql);
六、显示结果集
while(rs.next())//只要后面有记录
{
//对当前行的所有字段遍历
for(int i=1;i<=rs.getMetaData().getColumnCount();i++)
{
System.out.print(rs.getMetaData().getColumnName(i)+": ");//显示字段名
System.out.println(rs.getString(i));//显示字段当前值
}
System.out.println();
}
七、关闭资源
rs.close(); //关闭记录集
stmt.close(); //关闭处理器对象
conn.close(); //关闭连接对象
预处理器的应用:
//3.基于连接对象建立预处理器对象
PreparedStatement pstmt=conn.prepareStatement("insert into student values(?,?,?,?)");
//4.给预处理对象的参数赋值
pstmt.setString(1,"8888");
pstmt.setString(2,"nemo");
pstmt.setString(3,"accp");
pstmt.setString(4,"sanxianglu");
//5.执行预处理命令
int i=pstmt.executeUpdate();
System.out.println(i+"条记录已成功插入!");