❶ java数据库连接文件在哪
一般来说,连接文件放在哪没有固定的说法,那要看你用的是什么框架,spring,struts,java,jsp,hibernate等的连接位置都不同,有的在配置文件里,有的在代码里,tomcat的server.xml中也可以配置数据库连接,如果你的再java文件中,那就从各个文件中寻找类似下面的代码:
String driver ="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost:3306/test";
String user="root";
String password="";
try{
Class.forName(driver);
}
catch(Exception e){
System.out.println("无法加载驱动程序" +driver);
}
try{
Connection con=DriverManager.getConnection(url,user,password);
if(!con.isClosed())
System.out.println("数据库连接成功");
con.close();
}
catch(SQLException ee){
System.out.println("数据库连接失败");
}
}
}
关键在Connection con=DriverManager.getConnection(url,user,password);
这一句,java,jsp主要用这个连接的,其余的只是把这个封装了。无非需要com.mysql.jdbc.Driver,user,password这三个字段,从项目里搜索或一个一个找应该可以找到。搜索时最好用com.mysql.jdbc.Driver或其中一部分来搜索。
======================
别人给你的源程序,那说明他本来里面应该已经有链接数据库的文件了,你就不用自己写了,数据库链接可以在tomcat中也可以不在tomcat里,已经有了,就不用你自己写了,你要做的就是找到数据库链接文件,然后把里面的地址、用户名、密码改成你目前数据库的。
按照我给你的方法应该可以找到数据库链接文件。
❷ java 6 中自带的javaDB(derby)数据库,是否不用启动服务,直接可以和jdk进行交互呀
新安装了 JDK 6 的程序员们也许会发现,除了传统的 bin、jre 等目录,JDK 6 新增了一个名为 db 的目录。这便是 Java 6 的新成员:Java DB。这是一个纯 Java 实现、开源的数据库管理系统(DBMS),源于 Apache 软件基金会(ASF)名下的项目 Derby。它只有 2MB 大小,对比动辄上 G 的数据库来说可谓袖珍。但这并不妨碍 Derby 功能齐备,支持几乎大部分的数据库应用所需要的特性。更难能可贵的是,依托于 ASF 强大的社区力量,Derby 得到了包括 IBM 和 Sun 等大公司以及全世界优秀程序员们的支持。这也难怪 Sun 公司会选择其 10.2.2 版本纳入到 JDK 6 中,作为内嵌的数据库。这就好像为 JDK 注入了一股全新的活力:Java 程序员不再需要耗费大量精力安装和配置数据库,就能进行安全、易用、标准、并且免费的数据库编程。在这一章中,我们将初窥 Java DB 的世界,来探究如何使用它编写出功能丰富的程序。
Hello, Java DB:内嵌模式的 Derby
既然有了内嵌(embedded)的数据库,就让我们从一个简单的范例开始,试着使用它吧。这个程序做了大多数数据库应用都可能会做的操作:在 DBMS 中创建了一个名为 helloDB 的数据库;创建了一张数据表,取名为 hellotable;向表内插入了两条数据;然后,查询数据并将结果打印在控制台上;最后,删除表和数据库,释放资源。
public class HelloJavaDB {
public static void main(String[] args) {
try { // load the driver
Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
System.out.println("Load the embedded driver");
Connection conn = null;
Properties props = new Properties();
props.put("user", "user1"); props.put("password", "user1");
//create and connect the database named helloDB
conn=DriverManager.getConnection("jdbc:derby:helloDB;create=true", props);
System.out.println("create and connect to helloDB");
conn.setAutoCommit(false);
// create a table and insert two records
Statement s = conn.createStatement();
s.execute("create table hellotable(name varchar(40), score int)");
System.out.println("Created table hellotable");
s.execute("insert into hellotable values('Ruth Cao', 86)");
s.execute("insert into hellotable values ('Flora Shi', 92)");
// list the two records
ResultSet rs = s.executeQuery(
"SELECT name, score FROM hellotable ORDER BY score");
System.out.println("namettscore");
while(rs.next()) {
StringBuilder builder = new StringBuilder(rs.getString(1));
builder.append("t");
builder.append(rs.getInt(2));
System.out.println(builder.toString());
}
// delete the table
s.execute("drop table hellotable");
System.out.println("Dropped table hellotable");
rs.close();
s.close();
System.out.println("Closed result set and statement");
conn.commit();
conn.close();
System.out.println("Committed transaction and closed connection");
try { // perform a clean shutdown
DriverManager.getConnection("jdbc:derby:;shutdown=true");
} catch (SQLException se) {
System.out.println("Database shut down normally");
}
} catch (Throwable e) {
// handle the exception
}
System.out.println("SimpleApp finished");
}
}
随后,我们在命令行(本例为 Windows 平台,当然,其它系统下稍作改动即可)下键入以下命令:
清单 2. 运行 HelloJavaDB 命令
java –cp .;%JAVA_HOME%dblibderby.jar HelloJavaDB
图 1. HelloJavaDB 程序的执行结果
上述的程序和以往没什么区别。不同的是我们不需要再为 DBMS 的配置而劳神,因为 Derby 已经自动地在当前目录下新建了一个名为 helloDB 的目录,来物理地存储数据和日志。需要做的只是注意命名问题:在内嵌模式下驱动的名字应为 org.apache.derby.jdbc.EmbeddedDriver;创建一个新数据库时需要在协议后加入 create=true。另外,关闭所有数据库以及 Derby 的引擎可以使用以下代码:
清单 3. 关闭所有数据库及 Derby 引擎
DriverManager.getConnection("jdbc:derby:;shutdown=true");
如果只想关闭一个数据库,那么则可以调用:
清单 4. 关闭一个数据库
DriverManager.getConnection("jdbc:derby:helloDB;shutdown=true ");
这样,使用嵌入模式的 Derby 维护和管理数据库的成本接近于 0。这对于希望专心写代码的人来说不失为一个好消息。然而有人不禁要问:既然有了内嵌模式,为什么大多数的 DBMS 都没有采取这样的模式呢?不妨做一个小实验。当我们同时在两个命令行窗口下运行 HelloJavaDB 程序。结果一个的结果与刚才一致,而另一个却出现了错误,如 图 2 所示。
图 2. 内嵌模式的局限
错误的原因其实很简单:在使用内嵌模式时,Derby 本身并不会在一个独立的进程中,而是和应用程序一起在同一个 Java 虚拟机(JVM)里运行。因此,Derby 如同应用所使用的其它 jar 文件一样变成了应用的一部分。这就不难理解为什么在 classpath 中加入 derby 的 jar 文件,我们的示例程序就能够顺利运行了。这也说明了只有一个 JVM 能够启动数据库:而两个跑在不同 JVM 实例里的应用自然就不能够访问同一个数据库了。
鉴于上述的局限性,和来自不同 JVM 的多个连接想访问一个数据库的需求,下一节将介绍 Derby 的另一种模式:网络服务器(Network Server)。
网络服务器模式
如上所述,网络服务器模式是一种更为传统的客户端/服务器模式。我们需要启动一个 Derby 的网络服务器用于处理客户端的请求,不论这些请求是来自同一个 JVM 实例,还是来自于网络上的另一台机器。同时,客户端使用 DRDA(Distributed Relational Database Architecture)协议连接到服务器端。这是一个由 The Open Group 倡导的数据库交互标准。图 3 说明了该模式的大体结构。
由于 Derby 的开发者们努力使得网络服务器模式与内嵌模式之间的差异变小,使得我们只需简单地修改 清单 1 中的程序就可以实现。如清单 5所示,我们在 HelloJavaDB 中增添了一个新的函数和一些字符串变量。不难看出,新的代码只是将一些在上一节中特别指出的字符串进行了更改:驱动类为 org.apache.derby.jdbc.ClientDriver,而连接数据库的协议则变成了 jdbc:derby://localhost:1527/。这是一个类似 URL 的字符串,而事实上,Derby 网络的客户端的连接格式为:jdbc:derby://server[:port] /databaseName[;attributeKey=value]。在这个例子中,我们使用了最简单的本地机器作为服务器,而端口则是 Derby 默认的 1527 端口。
图 3. Derby 网络服务器模式架构
清单 5. 网络服务器模式下的 HelloJavaDB
public class HelloJavaDB {
public static String driver = "org.apache.derby.jdbc.EmbeddedDriver";
public static String protocol = "jdbc:derby:";
public static void main(String[] args) {
// same as before
}
private static void parseArguments(String[] args) {
if (args.length == 0 || args.length > 1) {
return;
}
if (args[0].equalsIgnoreCase("derbyclient")) {
framework = "derbyclient";
driver = "org.apache.derby.jdbc.ClientDriver";
protocol = "jdbc:derby://localhost:1527/";
}
}
}
当然,仅仅有客户端是不够的,我们还需要启动网络服务器。Derby 中控制网络服务器的类是 org.apache.derby.drda.NetworkServerControl,因此键入以下命令即可。如果想了解 NetworkServerControl 更多的选项,只要把 start 参数去掉就可以看到帮助信息了。关于网络服务器端的实现,都被 Derby 包含在 derbynet.jar 里。
清单 6. 启动网络服务器
java -cp .;"C:Program FilesJavajdk1.6.0dblibderby.jar";
"C:Program FilesJavajdk1.6.0dblibderbynet.jar"
org.apache.derby.drda.NetworkServerControl start
相对应的,网络客户端的实现被包含在 derbyclient.jar 中。所以,只需要在 classpath 中加入该 jar 文件,修改后的客户端就可以顺利地读取数据了。再一次尝试着使用两个命令行窗口去连接数据库,就能够得到正确的结果了。如果不再需要服务器,那么使用 NetworkServerControl 的 shutdown 参数就能够关闭服务器。
更多
至此,文章介绍了 Java SE 6 中的新成员:Java DB(Derby),也介绍了如何在内嵌模式以及网络服务器模式下使用 Java DB。当然这只是浅尝辄止,更多高级的选项还需要在 Sun 和 Derby 的文档中寻找。在这一章的最后,我们将简单介绍几个 Java DB 的小工具来加快开发速度。它们都位于 org.apache.derby.tools 包内,在开发过程中需要获取信息或者测试可以用到。
• ij:一个用来运行 SQL 脚本的工具;
• dblook:为 Derby 数据库作模式提取(Schema extraction),生成 DDL 的工具;
• sysinfo:显示系统以及 Derby 信息的工具类;
❸ 在安装完JDK6.0,选择了安装JAVA DB,这是JAVA自带的数据库吗怎么用呢
这是JDK自带的数据库软件,使用和使用Mysql差不多
❹ java数据库问题,跟着教材走,所以一直在用Access, 如果用自带的 jdk自带的数据库,驱动
JDK自带的数据库,你指的是Derby吧,JDK6之后自带的微型数据库。默认安装之后会放在jdk下面的db包中,你可看看下面的示例代码:
try{//loadthedriver
Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();System.out.println("Loadtheembeddeddriver");
Connectionconn=null;
Propertiesprops=newProperties();
props.put("user","user1");
props.put("password","user1");
//
conn=DriverManager.getConnection("jdbc:derby:helloDB;create=true",props);
System.out.println("createandconnecttohelloDB");
conn.setAutoCommit(false);
//
Statements=conn.createStatement();
s.execute("createtablehellotable(namevarchar(40),scoreint)");
System.out.println("Createdtablehellotable");
s.execute("insertintohellotablevalues('RuthCao',86)");
s.execute("insertintohellotablevalues('FloraShi',92)");
//listthetworecords
ResultSetrs=s.executeQuery("SELECTname,");
System.out.println("name score");
while(rs.next()){
StringBuilderbuilder=newStringBuilder(rs.getString(1));
builder.append(" ");
builder.append(rs.getInt(2));
System.out.println(builder.toString());
}
//deletethetable
s.execute("droptablehellotable");
System.out.println("Droppedtablehellotable");
rs.close();
s.close();
System.out.println("Closedresultsetandstatement");
conn.commit();
conn.close();
System.out.println("");
try{//performacleanshutdown
DriverManager.getConnection("jdbc:derby:;shutdown=true");
}catch(SQLExceptionse){
System.out.println("Databaseshutdownnormally");
}
}catch(Exceptionex){}
System.out.println("SimpleAppfinished");
❺ Java数据库主要有哪些
常用的数据库有MySQL,缓存数据库 一般使用 Redis ,比较大型的项目我们一般一会使用orcal
❻ java中数据库到底是一个什么东西有什么用谢谢。。
数据库不是java中才有
数据库,database,知名见意,就是"存数据的库",是一种专门提供存放数据的功能的软件
举个例子,你刚开始学java,都是打印到控制台之类的小程序,当哪一天,要求你把打印出来的内容存到电脑上,你怎么办?没错,第一个办法就是写到文件里面.
可是,当哪一天,让你处理很多很多个打印内容,并且都要存下来的时候,你怎么办?
你可以都写在文件里面没有问题.
现在又有要求了,让你把你之前打印的内容给取出来,并且需要取内容中包含你的名字的.
好了,你就得写读取文件的处理,并且找到这些内容.
数据库最终的处理,就是把数据写到文件里面,并且提供方法让你以后读取这些内容,也就是非常完美的帮你解决了3中的问题
那这个有什么用呢?
再举个例子:你打游戏,游戏进行到一般,你要存档.你以为存档是做了什么?其实就是把当前的游戏运行的数据存到数据库里面.等你读档的时候再取出来.
举得例子非常简单.再举一个,比如这个网络知道.你提的问题为什么网络在1年以后还能给你显示出来,你以为它存在哪的?