java-Java怎么把 连接access数据库的路径改成相对路径

问题描述

Java怎么把 连接access数据库的路径改成相对路径

import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.awt.Container;
import java.util.*;
import java.sql.*;

class BookBrower implements ActionListener
{

JFrame f;
Container cp;
JPanel jpS,jpanelWest;
JButton  jbt1,jbt2;//按钮,查询、取消、修改
JLabel label,L;             //标签
    //定义文本框
JTable table;//用来接收数据库中返回的信息
Object columnName[]={"图书名","图书号","单价","作者","出版社","入库时间"};
Object ar[][] =new Object[80][6];
String sno;
String count="xx";

BookBrower()

{
f=new JFrame();
cp=f.getContentPane(); // 初始化面板、按钮、标签、文本框
jpS=new JPanel();

jpanelWest=new JPanel();

//------------------------------------------------
jbt1=new JButton("确定");
jbt2=new JButton("返回");

//------------------------------------------------
label=new JLabel("<html><font color=#CC00FF size='4'>图书概览</font>",SwingConstants.CENTER);
label.setForeground(Color.blue);
L=new JLabel("书库现在共有图书"+count+"本");
//------------------------------------------------
table=new JTable(ar,columnName);//ar存放表中的数据,columnname表示列名
JScrollPane scrollpane = new JScrollPane(table);

//------------------------------------------------
//布局,添加控件

jpS.add(jbt1);

jpS.add(jbt2);

JPanel jpanel=new JPanel();
jpanel.add(label);

JPanel pp4=new JPanel();
JPanel jpE=new JPanel();

cp.add(jpanel,"North");
JPanel jp=new JPanel();
//jp.add(scrollpane);
JPanel p=new JPanel();//用来放两个表
p.setLayout(new BorderLayout());

p.add(L,"North");
p.add(scrollpane);

cp.add(pp4,"West");
cp.add(p,"Center");
cp.add(jpS,"South");

cp.add(jpE,"East");

//------------------------------------------------
 Toolkit kit=Toolkit.getDefaultToolkit();
Dimension screen=kit.getScreenSize();
int x=screen.width;                 /*取得显示器窗口的宽度*/
int y=screen.height;                    /*取得显示器窗口的高度*/
 f.setSize(1200,450);
 int xcenter=(x-1200)/2;
 int ycenter=(y-350)/2;
 f.setLocation(xcenter,ycenter);/*显示在窗口中央*/
  f.setVisible(true);

//-------------------------------------------------
jbt1.addActionListener(this);//注册监听器
jbt2.addActionListener(this);

/* f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
);*/
}
//------------------------------------------------
int i=0;
public void showRecord()
{
while(i>=0)
{

ar[i][0]="";
ar[i][1]="";
ar[i][2]="";
ar[i][3]="";
ar[i][4]="";
ar[i][5]="";
i--;
}
i=0;

    try{
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
       }catch(ClassNotFoundException e){System.out.println("加载驱动程序失败!");}
    try{
         String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=g:/111/222/aaa.accdb";//直接使用当前类目录下的数据库文件
         Connection con=DriverManager.getConnection(url);

         String s="select * from book ";
         Statement sql=con.createStatement();
          ResultSet rs=sql.executeQuery(s);

         while(rs.next())
          {
            String bname=rs.getString(1);
            String bno=rs.getString(2);
            String price=rs.getString(3);
            String writer=rs.getString(4);
            String publish=rs.getString(5);
            String indate=rs.getString(6);
            ar[i][0]=bname;
            ar[i][1]=bno;
            ar[i][2]=price;
            ar[i][3]=writer;
            ar[i][4]=publish;
            ar[i][5]=indate;
            i++;
          }
            count=""+i+"";
            L.setText("书库现在共有图书"+count+"本");
            f.repaint();

             con.close();
       }catch(SQLException g)
            {
             System.out.println("E Code"+g.getErrorCode());
             System.out.println("E M"+g.getMessage());
            }

 }

public void actionPerformed(ActionEvent e)
{

     String cmd=e.getActionCommand();
      if(cmd.equals("确定"))

           {
             f.hide();

          } 

       if(cmd.equals("返回"))
               f.hide(); 

}

public static void main(String []arg){

       BookBrower a=new BookBrower();
       a.showRecord();

}

}

解决方案

"...DBQ=g:/111/222/aaa.accdb";
->
..DBQ=" + ClassLoader.getSystemResource("") + "/aaa.accdb";

解决方案二:

--使用DataDirectory替换绝对路径
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|db1.mdb;

解决方案三:

能不能把完整代码发给我,小白 第一次弄数据库

时间: 2024-09-17 04:47:33

java-Java怎么把 连接access数据库的路径改成相对路径的相关文章

Java Web项目中连接Access数据库的配置方法_JSP编程

老师决定期末考试采用access数据库实现增删改查,我认为现在的我已经没有问题了,但是以前都是在JSP页面中连接access数据库,无论是以下的那种方式都进行了连接的练习,但是现在我想让我的项目中的访问access数据库的java代码,封装到DAO中,在DAO中连接数据库,没有和Servlet API有任何的关系.对于大多数人都会优先选择使用ODBC数据源的方式或者是使用绝对路径的方式连接access数据库,但是我个人认为,这样做不太好,如果采用这样的方式,项目做好后,放到他人的服务器上是无法运

java连接数据库-java连接access数据库

问题描述 java连接access数据库 为什么提示Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);这条语句"未出现的异常类型"啊,我是照书上写的啊 解决方案 ACCESS数据库虽然在功能和性能上无法和MYSQL.ORACLE等专业数据库相比,但由于安装方便.使用便捷,在JAVA数据学习时可作为临时数据库使用.JAVA连接ACCESS数据库非常便捷,一种方式是使用JDBC for ACCESS的专门驱动,在java官网或office官网都有下载,

Java web开发中要是用jdbc连接access数据库,连接url怎么写相对位置

问题描述 Java web开发中要是用jdbc连接access数据库,连接url怎么写相对位置 Java web开发中要是用jdbc连接access数据库,连接url怎么写相对位置,注意这里是jdbc方法连接 而不是jdbc-odbc 例如access数据库就在项目中(project文件夹下) 代码为: try { // 加载jdbc - odbc驱动 Class.forName("com.hxtt.sql.access.AccessDriver"); // 根据url创建连接实例 a

java 连接 access数据库问题

问题描述 java 连接 access数据库问题 方法如下: public List> queryProject(String path) throws SQLException { //加载驱动 try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch (ClassNotFoundException e) { e.printStackTrace(); return null; } String dbUrl = &q

Java 连接Access数据库的两种方式_java

java连接MS Access的两种方式: 1.JDBC-ODBC Java连接Access可以使用MS自带的管理工具-->数据源(ODBC)设置建立连接,这样就不需要导入jar.但是,如此一来程序部署的每个机器上都要进行设置不方面.所以现在不会使用啦. 2.JDBC java也可以和连接其他数据库一样连接MS Access,导入数据库相应的jar包,进行连接. 复制代码 代码如下: java Access JDBC jar包:Access_JDBC30.jar 具体连接,参考下面代码: 复制代

操作-【急】问一个关于java web中tomcat连接mysql数据库的问题(问题点数40无满意结贴

问题描述 [急]问一个关于java web中tomcat连接mysql数据库的问题(问题点数40无满意结贴 我是计科专业在做毕业设计没接触过java,做一个在线答疑系统,在csdn上下了一个jsp+struts2+spring的感觉比较全的系统,下载地址为http://download.csdn.net/detail/hmshust/6950301,该文是0积分的,下载的如图![图片说明](http://img.ask.csdn.net/upload/201505/07/1431008698_8

java在eclipse上能连接sql2012数据库,为什么打包成jar后就不行了?

问题描述 java在eclipse上能连接sql2012数据库,为什么打包成jar后就不行了? java在eclipse上能连接sql2012,用Fat jar打包成jar后就不行了.为什么?之前没下载过什么sqljdbc.jar.sqljdbc4.jar的驱动也能连接的呀.最后在网上下载了驱动一同打包后还是没能连接成功.classpath什么的也不会配置.求教!已附上错误提示图 解决方案 打包的时候选择方式问题,把引用的包也要打包,你是用eclipse打包的吗?有三个选项,你得好好看看 解决方

求教如何java程序调用cmd 连接mysql数据库读取sql文件

问题描述 求教如何java程序调用cmd 连接mysql数据库读取sql文件 开始 -> 运行 -> 输入CMD D: cd mysqlbin mysql -u root -p123456 test <d:a.sql 这是在命令行执行的 谁能告诉我JAVA要怎么写 谢谢啦 解决方案 http://www.cnblogs.com/taoweiji/archive/2012/12/11/2812852.html 解决方案二: java本身就是在虚拟机里面运行的,不可能去调用Windows的组

Java使用JDBC驱动连接MySQL数据库_java

Java使用JDBC驱动连接MySQL数据库的步骤: 1.下载驱动,导入jar包 2.加载驱动 3.设置连接 连接成功后就是一些对数据库中数据的操作 1.下载驱动,导入jar包 当你看到jdbc目录下有相应的jar包说明第一步操作已经完成. 2.加载驱动 3.设置连接 import java.sql.Connection; import java.sql.DriverManager; public class DB_Helper { public static void main(String[