Java中常见几种数据库连接方法

Java中常见几种数据库连接方法,第1张

1:引入javasql数据包;

import javasql;

2:加载JDBC驱动程序

ClassforName(JDBC驱动包的名字)newInstance();

3:产生Connection

如已成功加载JDBC驱动程序,就可以利用加载的驱动程序连接数据库

Connection con=DriverManagergetConnection(URL,UserName,Password);

URL: JDBC:(subprotocol):(subname)

subprotocol:子协议指定连接何种数据库或用什么方式连接数据库;

subname:确立一个连接,可以是一个数据源名,也可是指向一个网上数据库

4:各种连接例:

(1) MySQL数据库

String Dirver="commysqljdbcDriver";//驱动程序

String URL="jdbc:mysql://localhost:3306/db_name"; //连接的URL,db_name为数据库名

String UserName="username"; //用户名

String Password="password"; //密码

ClassforName(Driver)newInstance(); //加载数据库驱动

connection con=DriverManagergetConnection(URL,Username,Password);

(2) Microsoft SQL server 数据库

String Driver="commicrosoftjdbcsqlserverSQLServerDriver"; //驱动程序

String URL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_name";

//连接的URL,db_name为数据库

String UserName="username"; //用户名

String Password="password"; //密码

ClassforName(Driver)newInstance();

connection con=DriverManagergetConnection(URL,Username,Password);

(3) sybase 数据库

String Driver="comsybasejdbcsybDriver"; //驱动程序

String URL="jdbc:Sybase://localhost:5007/db_name"; //连接的URL,db_name为数据库

String UserName="username"; //用户名

String Password="password"; //密码

ClassforName(Driver)newInstance();

connection con=DriverManagergetConnection(URL,Username,Password);

(4) Oracle(用thin模式)数据库

String Driver="oraclejdbcdriverOracleDriver"; //驱动程序

String URL="jdbc:oracle:thin://localhost:1521:orcl";

//连接的URL,orcl为数据库的SID

String UserName="username"; //用户名

String Password="password"; //密码

ClassforName(Driver)newInstance();

connection con=DriverManagergetConnection(URL,Username,Password);

(5) 利用JDBC-ODBC桥连接

String Driver="sunjdbcodbcJdbcodbcDriver"; //驱动程序

String URL="jdbc:odbc:dbsource"; //连接的URL,dbsource为数据源名

String UserName="username"; //用户名

String Password="password"; //密码

ClassforName(Driver)newInstance();

connection con=DriverManagergetConnection(URL,Username,Password);

第一种:最普通的方式,利用java原生jdbc连接数据库

第二种:利用propertiesproperties配置文件形式,利用java原生jdbc连接数据库

第三种:利用c3p0-congigxml配置文件形式,利用c3p0连接数据库

第四种:利用dbcpproperties配置文件形式,利用dbcp连接数据库

第五种:利用mybatis-configxml配置文件形式,利用MyBatis连接数据库

第六种:利用hibernatecfgxml配置文件形式,利用hibernate连接数据库

用JAVA连接数据库主要有两种方式,一是用JDBC-ODBC桥来连接,二是用相关厂商提供的相应驱动程序来连接,首先谈谈第一种连接。 \x0d\\x0d\JDBC-ODBC桥接器是用JdbcOdbcClass和一个用于访问ODBC驱动程序的本地库实现的。对于WINDOWS平台,该本地库是一个动态连接库DLL(JDBCODBCDLL)。 \x0d\\x0d\由于JDBC在设计上与ODBC很接近。在内部,这个驱动程序把JDBC的方法映射到ODBC调用上,这样,JDBC就可以和任何可用的ODBC驱动程序进行交互了。这种桥接器的优点是,它使JDBC目前有能力访问几乎所有的数据库。通行方式如图所示: \x0d\\x0d\应用程序---JDBC API---JDBC-ODBC---ODBC API---ODBC层---数据源 \x0d\\x0d\具体 *** 作方法为: \x0d\\x0d\首先打开控制面板的管理工具,打开数据源(ODBC),在用户DSN里面添加数据源(即你要连接的数据库的名字),在这里假定连接SQL SERVER 2000的GoodsSupply数据库。名称填写你要连接的数据库的名称(GoodsSupply),然后逐步设置,如果选用了使用SQL-SERVER密码认证的话,就要输入相应的用户名及密码连接到数据库。一路下一步设置完成。 \x0d\\x0d\在JAVA里面编写程序进行测试,在这里我的程序是让用户输入任意的表名与与列名,把该列的所有数据输出。源代码如下: \x0d\\x0d\import javaioBufferedReader; \x0d\import javaioInputStreamReader; \x0d\import javasql; \x0d\\x0d\public class ODBCBridge { \x0d\\x0d\public static void main(String[] args) { \x0d\String url="jdbc:odbc:GoodsSupply"; \x0d\Statement sm=null; \x0d\String command=null; \x0d\ResultSet rs=null; \x0d\String tableName=null; \x0d\String cName=null; \x0d\String result=null; \x0d\BufferedReader input=new BufferedReader(new InputStreamReader(Systemin)); \x0d\try { \x0d\try { \x0d\ClassforName("sunjdbcodbcJdbcOdbcDriver"); //加载驱动 \x0d\}catch(ClassNotFoundException e){ \x0d\Systemoutprintln("Can not load Jdbc-Odbc Bridge Driver"); \x0d\Systemerrprint("ClassNotFoundException:"); \x0d\Systemerrprintln(egetMessage()); \x0d\} \x0d\Connection con=DriverManagergetConnection(url,"USER","PASSWORD"); //使用SQL-SERVER2000认证 \x0d\DatabaseMetaData dmd=congetMetaData(); //DMD为连接的相应情况 \x0d\Systemoutprintln("连接的数据库:"+dmdgetURL()); \x0d\Systemoutprintln("驱动程序:"+dmdgetDriverName()); \x0d\sm=concreateStatement(); \x0d\Systemoutprintln("输入表名"); \x0d\tableName=inputreadLine(); \x0d\while(true) { \x0d\Systemoutprintln("输入列名(为空时程序结束):"); \x0d\cName=inputreadLine(); \x0d\if(cNameequalsIgnoreCase("")) \x0d\break; \x0d\command="select "+cName+" from "+tableName; \x0d\rs=smexecuteQuery(command); //执行查询 \x0d\if(!rsnext()) \x0d\Systemoutprintln("表名或列名输入有误"); \x0d\else { \x0d\Systemoutprintln("查询结果为:"); \x0d\do \x0d\{ \x0d\result=rsgetString(cName); \x0d\//数据库语言设置为中文,不用转换编码 \x0d\//result=new String(resultgetBytes("ISO-8859-1"),"GB2312"); \x0d\Systemoutprintln(result); \x0d\}while(rsnext()); \x0d\} \x0d\} \x0d\}catch(SQLException ex) { \x0d\Systemoutprintln("SQLException:"); \x0d\while(ex!=null) { \x0d\Systemoutprintln("Message:"+exgetMessage()); \x0d\ex=exgetNextException(); \x0d\} \x0d\}catch(Exception e) { \x0d\Systemoutprintln("IOException"); \x0d\} \x0d\} \x0d\}

1)JDBC-ODBC桥加ODBC驱动程序

JavaSoft桥产品利用ODBC驱动程序提供JDBC访问。注意,必须将ODBC二进制代码(许多情况下还包括数据库客户机代码)加载到使用该驱动程序的每个客户机上。因此,这种类型的驱动程序最适合于企业网(这种网络上客户机的安装不是主要问题),或者是用Java编写的三层结构的应用程序服务器代码。

(2)本地API

这种类型的驱动程序把客户机API上的JDBC调用转换为Oracle、Sybase、Informix、DB2或其它DBMS的调用。注意,象桥驱动程序一样,这种类型的驱动程序要求将某些二进制代码加载到每台客户机上。

(3)JDBC网络纯Java驱动程序

这种驱动程序将JDBC转换为与DBMS无关的网络协议,之后这种协议又被某个服务器转换为一种DBMS协议。这种网络服务器中间件能够将它的纯Java客户机连接到多种不同的数据库上。所用的具体协议取决于提供者。通常,这是最为灵活的JDBC驱动程序。有可能所有这种解决方案的提供者都提供适合于Intranet用的产品。为了使这些产品也支持Internet访问,它们必须处理Web所提出的安全性、通过防火墙的访问等方面的额外要求。几家提供者正将JDBC驱动程序加到他们现有的数据库中间件产品中。

(4)本地协议纯Java驱动程序

这种类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议。这将允许从客户机机器上直接调用DBMS服务器,是Intranet访问的一个很实用的解决方法。由于许多这样的协议都是专用的,因此数据库提供者自己将是主要来源,有几家提供者已在着手做这件事了。

据专家预计第(3)、(4)类驱动程序将成为从JDBC访问数据库的首方法。第(1)、(2)类驱动程序在直接的纯Java驱动程序还没有上市前会作为过渡方案来使用。对第(1)、(2)类驱动程序可能会有一些变种,这些变种要求有连接器,但通常这些是更加不可取的解决方案。第(3)、(4)类驱动程序提供了Java的所有优点,包括自动安装(例如,通过使用JDBC驱动程序的appletapplet来下载该驱动程序)。

import javasql;

public class DataBasePractice {

public static void main(String[] args) {

//声明Connection对象

Connection con;

//驱动程序名

String driver = "commysqljdbcDriver";

//URL指向要访问的数据库名mydata

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

//MySQL配置时的用户名

String user = "root";

//MySQL配置时的密码

String password = "root";

//遍历查询结果集

try {

//加载驱动程序

ClassforName(driver);

//1getConnection()方法,连接MySQL数据库!!

con = DriverManagergetConnection(url,user,password);

if(!conisClosed())

Systemoutprintln("Succeeded connecting to the Database!");

//2创建statement类对象,用来执行SQL语句!!

Statement statement = concreateStatement();

//要执行的SQL语句

String sql = "select from student";

//3ResultSet类,用来存放获取的结果集!!

ResultSet rs = statementexecuteQuery(sql);

Systemoutprintln("-----------------");

Systemoutprintln("执行结果如下所示:");

Systemoutprintln("-----------------");

Systemoutprintln(" 学号" + "\t" + " 姓名");

Systemoutprintln("-----------------");

String name = null;

String id = null;

while(rsnext()){

//获取stuname这列数据

name = rsgetString("stuname");

//获取stuid这列数据

id = rsgetString("stuid");

//首先使用ISO-8859-1字符集将name解码为字节序列并将结果存储新的字节数组中。

//然后使用GB2312字符集解码指定的字节数组。

name = new String(namegetBytes("ISO-8859-1"),"gb2312");

//输出结果

Systemoutprintln(id + "\t" + name);

}

rsclose();

conclose();

} catch(ClassNotFoundException e) {

//数据库驱动类异常处理

Systemoutprintln("Sorry,can`t find the Driver!");

eprintStackTrace();

} catch(SQLException e) {

//数据库连接失败异常处理

eprintStackTrace();

}catch (Exception e) {

// TODO: handle exception

eprintStackTrace();

}finally{

Systemoutprintln("数据库数据成功获取!!");

}

}

}

在上面while代码段后面添加以下代码段:

String name = null;

String id = null;

while(rsnext()){

//获取stuname这列数据

name = rsgetString("stuname");

//获取stuid这列数据

id = rsgetString("stuid");

//首先使用ISO-8859-1字符集将name解码为字节序列并将结果存储新的字节数组中。

//然后使用GB2312字符集解码指定的字节数组。

name = new String(namegetBytes("ISO-8859-1"),"gb2312");

//输出结果

Systemoutprintln(id + "\t" + name);

}

PreparedStatement psql;

ResultSet res;

//预处理添加数据,其中有两个参数--“?”

psql = conprepareStatement("insert into student values(,)");

psqlsetInt(1, 8); //设置参数1,创建id为5的数据

psqlsetString(2, "xiaogang"); //设置参数2,name 为小明

psqlexecuteUpdate(); //执行更新

//预处理更新(修改)数据

psql = conprepareStatement("update student set stuname = where stuid = ");

psqlsetString(1,"xiaowang"); //设置参数1,将name改为王五

psqlsetInt(2,10); //设置参数2,将id为2的数据做修改

psqlexecuteUpdate();

//预处理删除数据

psql = conprepareStatement("delete from student where stuid = ");

psqlsetInt(1, 5);

psqlexecuteUpdate();

//查询修改数据后student表中的数据

psql = conprepareStatement("selectfrom student");

res = psqlexecuteQuery(); //执行预处理sql语句

Systemoutprintln("执行增加、修改、删除后的数据");

while(resnext()){

name = resgetString("stuname");

id = resgetString("stuid");

name = new String(namegetBytes("ISO-8859-1"),"gb2312");

Systemoutprintln(id + "\t" + name);

}

resclose();

psqlclose();

1、导入包,加载驱动

ClassforName("commysqljdbcDriver");

2、创建连接

Connection

conn=DriveManagergetConnection("jdbc:mysql://

localhost

:3306/数据库名",

"账号",

"密码");

3、获取语句

Statement

stmt=conncreateStatement();

4、 *** 作数据

1JDBC呗,import javasql;

传统连接方式

Connection conn = getConnection();//获得连接

//注意下边应该抛出个SQLException异常

Statement stat = conncreateStatement();

statexecuteXXX("")//执行SQL语句,查询就是Query,插入,修改这种 *** 作就Update

ResultSet result; //查询后返回的结果集用这个保存

connclose//最后别忘了关闭连接

2当然是Hibernate了,是一种持久层技术,建立相应的实体后可以把数据库当对象 *** 作,非常方便,具体使用我觉得应该看看书会比较好!

使用java连接MySQL数据库与其他的数据库连接核心是一样的,如果说区别,那就是所需的驱动不一样。

工具/原料

MySQL、JDK

方法/步骤

1、首先需要安装好JDK(配置环境变量),如图所示:

2、其次要安装好MySQL数据库,可以使用可视化Navicar For MySQL,如图所示:

3、最后通过代码进行连接。

(1)确定连接路径URL:

String url="jdbc:mysql://localhost(可以是本机IP地址):3306(端口号)/mysqltest(数据库名称)?"+"user=用户账号&password=用户密码&useUnicode=字符编码";

(2)加载驱动:

ClassforName("commysqljdbcDriver");

(3)连接,获取Connection对象

Connection conn=DriverManagergetConnection(url)

(4)可以通过conn对象检验连接与否。

以上就是关于Java中常见几种数据库连接方法全部的内容,包括:Java中常见几种数据库连接方法、Java连接几种数据库的方法汇总比较、Java中如何实现与后台数据库的连接等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存