JAVA学习日记1——配置JDK12,连接Access数据库

配置JDK12

官网下载链接:

https://www.oracle.com/technetwork/java/javase/downloads/index.html

jdk12不会自动安装jre,在安装目录下打开cmd运行:bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre 手动生成jre

cmd 配置环境变量

set JAVA_HOME=C:\Java\jdk-12.0.1
set PATH=%PATH%;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
set CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

 

cmd修改注册表(set指令对环境变量的修改是临时性的,继续修改注册表可以实现持久性的修改)

set RegV=HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

reg add "%RegV%" /v "JAVA_HOME" /d "%JAVA_HOME%" /f
reg add "%RegV%" /v "Path" /t REG_EXPAND_SZ /d "%PATH%" /f
reg add "%RegV%" /v "CLASSPATH" /d "%CLASSPATH%" /f

Access数据库连接

创建access数据库shop.accdb,并建立goods表。

问题:

打开“ODBC数据源管理器”窗口,添加的时候却发现窗口中只有“SQL Server”的驱动程序,没有access的!

解答:

access数据库驱动程序是32位的,应该打开32位的“ODBC数据源管理器”,打开目录:“C:\Windows\SysWOW64”,双击该目录下的“odbcad32.exe”文件,就进去ODBC数据源管理界面了,现在这个界面中就有access的驱动了!

相关代码:

import java.sql

public class JDBCtest{

    public static void main(String args[]){

        Connection con;
        Statement sql;
        ResultSet rs;
        
        try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        }       
        catch(ClassNotFoundException){
            System.out.print(e);
              
        }
        try{ 
             con = DriverManager.getConnection("jdbc:odbc:myData","","")
             sql = con.createStatement();
             rs = sql.executeQuery("SELECT * FROM goods WHERE price >300000");
             while(rs.next()){
                 String number = rs.getString(1);
                 String name = rs.getString(2);
                 Date date = rs.getDate("madeTime");
                 double price = rs.getDouble("price");
      System.out.printf("%-4s,%-6s,%-15s%,%6s/n",number,name,date.toString(),prince);
                                         
                   
             }
             con.close(); 
        
        }
        catch(SQLException e) {
             System.out.println(e);
        }


    }


}

问题:

Class.forName()方法的作用?

解答:

https://blog.youkuaiyun.com/qq_36776216/article/details/80302640

问题:

解释器运行报错, 未能找到驱动类 

java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriverjava.sql.SQLExcept
ion: No suitable driver found for jdbc:odbc:myData

解答:

jdk8以上都抛弃了通过ODBC进行数据库桥接,可以考虑JDBC直连数据库。

(参考https://blog.youkuaiyun.com/ljheee/article/details/51290702)

下载Access_JDBC30.jar,添加到jdk目录下的lib文件夹。

将代码修改如下:

import java.sql.*;
public class JDBCtest{
    public static void main(String args[]){
        Connection con;
        Statement sql;
        ResultSet rs;        
        try{ Class.forName("com.hxtt.sql.access.AccessDriver");
        }       
        catch(ClassNotFoundException e){
            System.out.print(e);              
        }
        try{ 
             String dbpath="C:/Users/wugx/Desktop/Java/code/JDBC/shop.accdb";//修改成你自己的access数据库文件路径
             con = DriverManager.getConnection("jdbc:Access:///"+dbpath,"","");
             sql = con.createStatement();
             rs = sql.executeQuery("SELECT * FROM goods WHERE price > "+args[0]);
             while(rs.next()){
                 String number = rs.getString(1);
                 String name = rs.getString(2);
                 Date date = rs.getDate("madeTime");
                 double price = rs.getDouble("price");
                 System.out.printf("%-4s, %-6s, %-15s, %6s\n",number,name,date.toString(),price);
                 //System.out.printf("price:%6s\n",price);
             }
             con.close();        
        }
        catch(SQLException e) {
             System.out.println(e);
        }
    }
}

编译运行成功!

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值