baidu_33457054 2016-01-06 04:55 采纳率: 0%
浏览 1617

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();

}

}

  • 写回答

3条回答

  • threenewbee 2016-01-06 05:01
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?