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中如何实现与后台数据库的连接等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)