JAVA程序可以用纯JAVA的什么驱动程序,实现与数据库连接。
2013-12-03
展开全部
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();这句代码是多余的。
因为在类加载的时候,在静态初始化代码块里,已经创建了一个驱动对象,并且已经注册了。
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();这句代码是多余的。
因为在类加载的时候,在静态初始化代码块里,已经创建了一个驱动对象,并且已经注册了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |