当前位置:首页 » 操作系统 » java数据库连接驱动

java数据库连接驱动

发布时间: 2022-03-03 18:08:23

java加载数据库连接驱动,为什么要用Class.forName()方法

目的是为了实例化对象。

Class.forName("")返回的是类

Class.forName("").newInstance()返回的是object

刚才提到,Class.forName("");的作用是要求JVM查找并加载指定的类,如果在类中有静态初始化器的话,JVM必然会执行该类的静态代码 段。而在JDBC规范中明确要求这个Driver类必须向DriverManager注册自己,即任何一个JDBC Driver的 Driver类的代码都必须类似如下:
public class MyJDBCDriver implements Driver {static {DriverManager.registerDriver(new MyJDBCDriver());}}既然在静态初始化器的中已经进行了注册,所以我们在使用JDBC时只需要Class.forName(XXX.XXX);就可以了。

we just want to load the driver to jvm only, but not need to user the instance of driver, so call Class.forName(xxx.xx.xx) is enough, if you call Class.forName(xxx.xx.xx).newInstance(), the result will same as calling Class.forName(xxx.xx.xx), because Class.forName(xxx.xx.xx).newInstance() will load driver first, and then create instance, but the instacne you will never use in usual, so you need not to create it.

总结:jdbc数据库驱动程序最终的目的,是为了程序员能拿到数据库连接,而进行jdbc规范的数据库操作。拿到连接的过程是不需要你自己来实例化驱动程序的,而是通过 DriverManger.getConnection(string str); 。因此一般情况下,对于程序员来说,除非特别需求,是不会自己去实例化一个数据库驱动使用里面的方法的。

② java-jdbc,加载数据库驱动

Java语言本身只提供了数据库连接和操作接口,而实现这些接口的就是数据库厂商了,所以每次你要连接数据库就必须下载对应数据库厂商的JDBC驱动,也就是接口实现程序。这个需要持久的预设环境,就是你必须告诉你的程序你的接口实现程序在哪。也就是哪个jdbc驱动程序的包在哪,java程序在连接数据库之前需要通过反射机制创建jdbc驱动程序包中的所有类。

③ 纯java驱动数据库连接

JDBC贝

④ java与mysql连接数据库的代码和加载驱动的方法

你这个程序是一个stand alone的程序,所以你把mysql-connector-java-5.0.5-bin.jar放到tomcat/common/lib目录下肯定是不对的。放到jre/lib/ext也不一定会加载。如果你用IDE开发的话,在Classpath中把mysql-connector-java-5.0.5-bin.jar添加进去执行就OK了,如果不是的话,你需要在执行的时候这么写(比如你放到d:\)
java -cp d:\mysql-connector-java-5.0.5-bin.jar data

⑤ java 数据库连接 JDBC驱动加载

你只是把Java类复制到另一个工程去了,在现有的工程里面classpath并没有更改,所以你只要在classpath里面把JDBC驱动添加上就OK了!

⑥ java连接数据库驱动的那个jar到底起什么作用

jdk 本身没有提供访问数据库的能力,它只是提供了一些接口,具体功能由各个数据库的的驱动jar包来实现,举个例子,Connection 它只是一个接口,具体的实现由具体的数据库的的驱动jar包实现,你可以在mysql的驱动jar包中找到这个接口的实现。那数据库的驱动jar包是如何和jdk相关的数据库访问类,接口相关联的呢?是能通 Class.forName, 这就是为什么在访问数据库之前都要写一句Class.forName("com.mysql.jdbc.Driver")。

⑦ java连接数据库的驱动程序在哪

Class.forName("com.mysql.jdbc.Driver");
驱动程序必须在webinf/lib中存在,就是把jdbc的jar文件考到lib中.不同的数据库驱动不同.也就是jar文件不同.

连接字符串.
数据库地址:不同的数据库这句话不一样,这个是mysql的.
jdbc:mysql://localhost:3306/practice9,那个3306是数据库的端口.practice9是数据库的名字.
oracle,access,sqlserver的连接都不同.
数据库用户名:root
数据库密码:123

⑧ JAVA程序可以用纯JAVA的什么驱动程序,实现与数据库连接。

java是被称为跨平台的语言,java里处理数据库可以用JDBC来实现:
JDBC分为编程接口和驱动程序两类,编程接口是sun公司提供的,驱动程序则由数据库公司编写。我们编程的时候使用接口调用驱动,所以不用关心每种数据库的具体差异。

除了连接数据库时代码不一样外,编程接口都是统一的,所以增删改查操作都是一样的。
连接数据库必须要装有相关数据库的驱动程序才行。
连接数据库前,必须要做两件事:
1.创建一个驱动对象
2.用驱动管理器注册驱动对象
在java里可以有三种方式做到以上两件事:(以oracle为例)
1.用类反射机制:Class.forName(<数据库类名>);
Class.forName("oracle.jdbc.driver.OracleDriver");//这段代码
表面作用是获取oracle的类对象,实际上,在这段代码里已经创建了一个oracle的驱动对象,并且在驱动管理器里注册了。(各位可以想想这个对象是在哪个时候创建的?答案我最后揭晓,很有意思的哈)
2.自己创建驱动对象,并且注册。
Driver oracle=new oracle.jdbc.driver.OracleDriver();//创建驱动对象。
DriverManager.register(oracle);//注册驱动程序;
3.利用java虚拟机加载(这个我也不会哈,就不讲了)

下面给一个具体连接数据库的代码:

Class.forName("oracle.jdbc.driver.OracleDriver");
String url="oracle:jdbc:thin:@<数据库IP>:<端口号(默认1521)>:<数据库名>";
String userName="xxx";
String passwd="xxxxxx";
Connection con=DriverManager.getConnection(url,userNme,passwd);//连接数据库了。

Statement s=con.getStatement();//创建数据库操作对象
String sql="select * from .....";
s.executeUpdate(sql);//将sql语句送到数据库,编译执行sql语句。
//数据库资源不会自动释放,所以用完了必须关掉。关闭顺序
ResultSet,Statement,Connection(这里没有用ResultSet所以没有关闭)。
s.closed();
con.closed();

每种数据库都是这么连接和执行的。不同的是数据库类名和url,这些楼主自己去网上搜下很容易找到,楼上诸位都讲了好些。
说下4楼的冗余代码,并且也公布上面问题的答案:
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
newInstance();这句代码是多余的。
因为在类加载的时候,在静态初始化代码块里,已经创建了一个驱动对象,并且已经注册了。

⑨ java中连接数据库里的数据源驱动器和jdbc驱动器是一回事吗,还是说数据源驱动器是运行数据库,jdbc是连接的

通过JAVA的内置的JDBC访问数据库,统称JDBC方法。驱动就有很多种,基本每一种DB,都有一个驱动,有的还有多种驱动。
下面是Oracle的更新例子

Connection conn=null;
try{
Class.forName("oracle.jdbc.driver.OracleDriver");

String url="jdbc:oracle:thin:@192.168.1.111:1521:XE";
String user="user1", pwd="user1";
conn=DriverManager.getConnection(url, user, pwd);

String sql = "UPDATE family SET income=?,pay=?,time=?,note=? WHERE fnumber=?";
PreparedStatement pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1, income);
pstmt1.setString(2, pay);
pstmt1.setString(3, time);
pstmt1.setString(4, note);
pstmt1.setString(5, fnumber);
pstmt1.executeUpdate();
return "修改成功";
}catch(Exception e){
e.printStackTrace();
return "修改失败" ;
}finally{
if(conn!=null){
try{
conn.close();
}catch(Exception e){
}
}
}

⑩ java 数据库驱动程序 注册 连接

首先要下载SQL2005的JDBC的Jar文件,可以选择微软官方的sqljdbc.jar,或者JTDS的jtds-1.2.2.jar文件,然后把这个文件加入到你的工程的扩展类库中:
微软官方:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;
DatabaseName=数据库名");
JTDS
Class.forName("net.sourceforge.jtds.jdbc.Driver");
DriverManager.getConnection("jdbc:jtds:sqlserver://127.0.0.1:1433/数据库名")

热点内容
调度算法c语言 发布:2024-09-23 15:17:42 浏览:799
获取文件大小java 发布:2024-09-23 15:14:16 浏览:775
安卓手机发朋友圈怎么设置 发布:2024-09-23 15:10:11 浏览:126
c语言发送邮件 发布:2024-09-23 14:55:42 浏览:599
人工智能数据库 发布:2024-09-23 14:50:48 浏览:600
如何远程连接服务器显示全屏 发布:2024-09-23 13:24:01 浏览:385
整合解压 发布:2024-09-23 12:54:55 浏览:718
java的字符串类型 发布:2024-09-23 12:54:09 浏览:839
cisco模拟器如何连接ftp服务器 发布:2024-09-23 12:41:11 浏览:800
工作买电脑还是买服务器 发布:2024-09-23 12:36:59 浏览:152