jdbc连接数据库,看main方法在哪里写

jdbc连接数据库,看main方法在哪里写,第1张

JDBC(Java Data Base Connectivity)数据库连接,通常我们在编写web应用或java应用程序要连接数据库时就要使用JDBC。使用JDBC连接数据库一般步骤有:

1、加载驱动程序

ClassforName(driver);

2、创建连接对象

Connection con = DriverManagergetConnection(url,username,password);

3、创建sql语句执行对象

4、执行sql语句

5、对执行结果进行处理

6、关闭相关的连接对象(顺序跟声明的顺序相反)

下面是以建立与MySQL数据库连接的例子,其他数据库的过程类似:

import javasqlConnection;

import javasqlDriverManager;

import javasqlResultSet;

import javasqlSQLException;

import javasqlStatement;

public class DBConnection

{

public static void main(String[] args)

{

String driver = "commysqljdbcDriver";

//localhost指本机,也可以用本地ip地址代替,3306为MySQL数据库的默认端口号,“user”为要连接的数据库名

String url = "jdbc:mysql://localhost:3306/user";

//填入数据库的用户名跟密码

String username = "test";

String password = "test";

String sql = "select from user";//编写要执行的sql语句,此处为从user表中查询所有用户的信息

try

{

ClassforName(driver);//加载驱动程序,此处运用隐式注册驱动程序的方法

}

catch(ClassNotFoundException e)

{

eprintStackTrace();

}

try

{

Connection con = DriverManagergetConnection(url,username,password);//创建连接对象

Statement st = concreateStatement();//创建sql执行对象

ResultSet rs = stexecuteQuery(sql);//执行sql语句并返回结果集

while(rsnext())//对结果集进行遍历输出

{

Systemoutprintln("username: "+rsgetString(1));//通过列的标号来获得数据

Systemoutprintln("useradd: "+rsgetString("useradd"));//通过列名来获得数据

Systemoutprintln("userage: "+rsgetInt("userage"));

}

//关闭相关的对象

if(rs != null)

{

try

{

rsclose();

}

catch(SQLException e)

{

eprintStackTrace();

}

}

if(st != null)

{

try

{

stclose();

}

catch(SQLException e)

{

eprintStackTrace();

}

}

if(con !=null)

{

try

{

conclose();

}

catch(SQLException e)

{

eprintStackTrace();

}

}

}

catch(SQLException e)

{

eprintStackTrace();

}

}

}

Java可以使用JDBC访问数据库,也可以使用各类ORM框架访问数据库,但这些框架最终还是通过JDBC访问数据库,它们只是封装了数据库 *** 作,而使得开发者可以减少这部分消耗。因此,本文只讲解JDBC访问方式。

JDBC访问一般分为如下流程:

1、加载JDBC驱动程序:

在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过javalangClass类的静态方法forName(StringclassName)实现。

例如:

try{

//加载MySql的驱动类

ClassforName("commysqljdbcDriver");

}catch(e){

Systemoutprintln("找不到驱动程序类,加载驱动失败!");

e();

}

成功加载后,会将Driver类的实例注册到类中。

2、提供JDBC连接的URL

连接URL定义了连接数据库时的协议、子协议、数据源标识。

书写形式:协议:子协议:数据源标识

协议:在JDBC中总是以jdbc开始

子协议:是桥连接的驱动程序或是数据库管理系统名称。

数据源标识:标记找到数据库来源的地址与连接端口。

例如:(MySql的连接URL)

jdbc:mysql://localhost:3306/testuseUnicode=true&=gbk;

useUnicode=true:表示使用Unicode字符集。如果设置为

gb2312或GBK,本参数必须设置为true。=gbk:字符编码方式。

3、创建数据库的连接

要连接数据库,需要向javasql请求并获得Connection对象,该对象就代表一个数据库的连接。

使用的(Stringurl,Stringusername,Stringpassword)方法传入指定的欲连接的数据库的路径、数据库的用户名和密码来获得。

例如:

//连接MySql数据库,用户名和密码都是root

Stringurl="jdbc:mysql://localhost:3306/test";

Stringusername="root";

Stringpassword="root";

try{

Connectioncon=

(url,username,password);

}catch(se){

Systemoutprintln("数据库连接失败!");

se();

}

4、创建一个Statement

要执行SQL语句,必须获得javasqlStatement实例,Statement实例分为以下3种类型:

1、执行静态SQL语句。通常通过Statement实例实现。

2、执行动态SQL语句。通常通过实例实现。

3、执行数据库存储过程。通常通过实例实现。

具体的实现方式:

Statementstmt=con();

PreparedStatementpstmt=conprepareStatement(sql);

CallableStatementcstmt=conprepareCall("{CALLdemoSp(,)}");

5、执行SQL语句

Statement接口提供了三种执行SQL语句的方法:executeQuery、executeUpdate和execute

1、ResultSetexecuteQuery(StringsqlString):执行查询数据库的SQL语句,返回一个结果集(ResultSet)对象。

2、intexecuteUpdate(StringsqlString):用于执行INSERT、UPDATE或DELETE语句以及SQLDDL语句,如:CREATETABLE和DROPTABLE等

3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的语句。

具体实现的代码:

ResultSetrs=stmtexecuteQuery("SELECTFROM");

introws=stmtexecuteUpdate("INSERTINTO");

booleanflag=stmtexecute(Stringsql);

6、处理结果

两种情况:

1、执行更新返回的是本次 *** 作影响到的记录数。

2、执行查询返回的结果是一个ResultSet对象。

ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些行中数据的访问。

使用结果集(ResultSet)对象的访问方法获取数据:

while(rsnext()){

Stringname=rsgetString("name");

Stringpass=rsgetString(1);//此方法比较高效(列是从左到右编号的,并且从列1开始)

}

7、关闭JDBC对象

*** 作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声明顺序相反:

1、关闭记录集

2、关闭声明

3、关闭连接对象

if(rs!=null){//关闭记录集

try{

rsclose();

}catch(SQLExceptione){

eprintStackTrace();

}

}

if(stmt!=null){//关闭声明

try{

stmtclose();

}catch(SQLExceptione){

eprintStackTrace();

}

}

if(conn!=null){//关闭连接对象

try{

connclose();

}catch(SQLExceptione){

eprintStackTrace();

}

}

在网上下载jdbc驱动程序,常看见type4字样,开始以为是厂商自己的标准,近来翻看资料,原来是sun定义的jdbc标准。

type1 jdbc-odbc桥

作为jdk11后的一部分,是sunjdbcodbc包的一部分

application--->jdbc-odbc bridge(type1 jdbc driver)---->jdbc-odbc library--->odbc driver-->database

适用于快速的原型系统,没有提供jdbc驱动的数据库如access

type2 java to native api

利用开发商提供的本地库来直接与数据库通信。

application--->jdbc driver(type2 jdbc driver)---->native database library---->database

比type1性能略好。

type3 java to net

application--->jdbc driver(type3 jdbc driver)----->java middleware--->jdbc driver---->database

具有最大的灵活性,通常由那些非数据库厂商提供,是四种类型中最小的。

type4 java to native dababase

application--->jdbc driver(type4 jdbc driver)----->database engine--->database

最高的性能,通过自己的本地协议直接与数据库引擎通信,具备在internet装配的。

下列哪个方法可以用来加载JDBC驱动程序?(D)

Java加载JDBC的实现方法:

通过调用ClassforName()方法可以显式地加载一个驱动程序。该方法的入口参数为要加载的驱动程序。例如:ClassforName("sunjdbcodbcJdbcOdbcDriver")语句加载了SUN

公司开发的JDBC-ODBC

桥接器。对数据库进行连接的时候,驱动管理器(DriverManager)会使用这个被加载的驱动程序。通过DriverManager

的getDriver()方法可以获得已经加载的驱动程序信息。程序代码要求:

1.编写useDBDriver

类的基本框架,在该类中仅包括main()方法,在main()方法中加载驱动程序。

2.程序代码如下:

12345678910111213141516171819202122

public

class

useDBDriver

{

public

static

void

main(String

arg[])

{

try{

//初始化并加载JDBC-ODBC

驱动程序

ClassforName("sunjdbcodbcJdbcOdbcDriver");

Enumeration

enum=DriverManagergetDrivers();

//显示驱动程序信息

while(enumhasMoreElements())

{

Systemoutprintln(enumnextElement());

}

//处理加载数据库中可能出现的异常

}

catch(javalangException

exec)

{

Systemoutprintln("加载数据库驱动程序出现异常");

}

}

}

3.因为程序中使用了JDBC

类和Enumeration

类,所以要引入的包有:

12

import

javasql;

import

javautil;

给你讲明白下面几点你就知道了:

1、tomcat是可以理解为独立于之外系统的web服务器,当你创建一个调用数据库即使用JDBC的程序的时候,tomcat必须能够找到JDBC驱动。

2、tomcat默认首先在你的webapps/你的项目名/WIN-INF/lib,这个文件夹里找驱动,如果没有,则转到:tomcat/common/lib这里找

(上面顺序可能有误,但是都能找一遍)

意思就是说,如果你的驱动是所有项目都用的,就放在tomcat/common/lib下面,如果只是这一个项目用,就放在这个项目里

3、JDBC对于不同的数据库,驱动也是不一样的,但是后缀名肯定是

xxxxxxjar

Did i make myself clear

1、从网盘上获取SQL Server的JDBC驱动程序60版本,下载地址:。

2、运行sqlserver_jdbcexe程序,d出一个解压窗体,点击Unzip按钮,可以将安装程序解压到当前目录下。

3、解压后的目录中有一个jre7和jre8文件夹,里面都有一个sqljdbc的jar包,两者功能一样,只是不同的版本。选择其中一个jar包,将其添加到我们的工程中。

4、接下来我们就可以使用sqljdbcjar包中提供的驱动程序来访问SQL Server数据库了,代码如下:

// 加载数据库驱动类

ClassforName("commicrosoftsqlserverjdbcSQLServerDriver");

Systemoutprintln("数据库驱动加载成功");

 

Connection con = DriverManagergetConnection("jdbc:sqlserver://localhost:1433;DatabaseName=xxx", "sa", "12345");

Systemoutprintln("数据库连接成功");

通过上面的代码就可以连接到SQL Server数据库了。其中,1433是SQL Server的默认端口号,DatabaseName是要连接数据库的名称,sa是登录名,12345是登录密码。

JDBC连接Access第一种方法:

你用下面的代码试试 (强烈建议也是only可以建议的方法)

con = DriverManagergetConnection("jdbc:odbc:Driver={MicroSoft Access Driver (mdb)};DBQ=C:/data/Access/test1mdb","dba","sql");

后面的代码一样。这样你就可以访问access数据库了。

JDBC连接Access第二种方法:

用sun的jdbcodbc桥,数据源(个人主页不适用)

JDBC连接Access第三种方法:

用Access的JDBC驱动程序,到>

先在管理器里添加JDBC数据源,然后再在代码里写明要引用哪个数据源。

用以执行SQL查询和更新。PreparedStatement:用以执行包含动态参数的SQL查询和更新。

CallableStatement:用以调用数据库中的存储过程。SQLException:代表在数据库连接的建立和关闭和SQL语句的执行过程中发生了例外情况。

扩展资料:

JDBC API 既支持数据库访问的两层模型(C/S),同时也支持三层模型(B/S)。在两层模型中,Java applet或应用程序将直接与数据库进行对话。这将需要一个JDBC驱动程序来与所访问的特定数据库管理系统进行通讯。

用户的SQL语句被送往数据库中,而其结果将被送回给用户。数据库可以位于另一台计算机上,用户通过网络连接到上面。这就叫做客户机/服务器配置,其中用户的计算机为客户机,提供数据库的计算机为服务器。网络可以是 Intranet(它可将公司职员连接起来),也可以是 Internet。

参考资料来源:百度百科-Java数据库连接

以上就是关于jdbc连接数据库,看main方法在哪里写全部的内容,包括:jdbc连接数据库,看main方法在哪里写、java如何访问数据库(java访问mysql数据库)、JDBC驱动程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9835983.html

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

发表评论

登录后才能评论

评论列表(0条)

保存