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驱动程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)