我的代码错在哪了

来源:4-2 JDBC的工具类的抽取二

慕村1463237

2020-02-19 19:11:26

package jdbc;


import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.Statement;


import org.junit.Test;


import utils.Utils;


public class Demo6 {

@Test

    public void show(){

Connection conn=null;

Statement stmt=null;

ResultSet rs=null;

try {

conn=Utils.getConnection();

stmt=conn.createStatement();

String sql="select * from goods";

rs=stmt.executeQuery(sql);

while(rs.next()){

System.out.println(rs.getInt("id"));

}

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally {

Utils.release(conn, stmt, rs);

}

}

}



package utils;


import java.io.IOException;

import java.io.InputStream;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.Properties;


public class Utils {

     private static final String driverClass;

     private static final String url;

     private static final String user;

     private static final String password;

     static {

    Properties pro=new Properties();

    InputStream is= Utils.class.getClassLoader().getResourceAsStream("jdbc.properties");

    try {

pro.load(is);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

    driverClass=pro.getProperty("driverClass");

    url=pro.getProperty("url");

    user=pro.getProperty("user");

    password=pro.getProperty("password");

     }

     //填在驱动

     public static void onloadDriver() throws Exception {

Class.forName(driverClass);

     }

     //获取连接

     public static Connection getConnection() throws Exception{

    Class.forName(driverClass);

    Connection conn=DriverManager.getConnection(url, user, password);

    return conn;

     }

     //释放资源

     public static void release(Connection conn,Statement stmt){

    if(stmt!=null) {

    try {

    stmt.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

    stmt=null;

    }

    if(conn!=null) {

    try {

conn.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

    conn=null;

    }


     }

     public static void release(Connection conn,Statement stmt,ResultSet rs){

    if(rs!=null) {

    try {

rs.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

    rs=null;

    }

    if(stmt!=null) {

    try {

    stmt.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

    stmt=null;

    }

    if(conn!=null) {

    try {

conn.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

    conn=null;

    }


     }

}



driverClass=com.mysql.jdbc.Driver

url=jdbc:mysql:///user

user=root";

password=123456

java.lang.NoClassDefFoundError: Could not initialize class utils.Utils

at jdbc.Demo6.show(Demo6.java:29)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)

at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)

at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)

at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)

at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)

at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)

at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)

at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)

at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)

at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)

at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)

at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)

at org.junit.runners.ParentRunner.run(ParentRunner.java:363)

at org.junit.runner.JUnitCore.run(JUnitCore.java:137)

at org.junit.runner.JUnitCore.run(JUnitCore.java:115)

at org.junit.vintage.engine.execution.RunnerExecutor.execute(RunnerExecutor.java:40)

at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)

at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)

at java.util.Iterator.forEachRemaining(Iterator.java:116)

at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)

at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)

at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)

at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)

at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)

at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)

at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)

at org.junit.vintage.engine.VintageTestEngine.executeAllChildren(VintageTestEngine.java:80)

at org.junit.vintage.engine.VintageTestEngine.execute(VintageTestEngine.java:71)

at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:229)

at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$6(DefaultLauncher.java:197)

at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:211)

at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:191)

at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:137)

at org.eclipse.jdt.internal.junit5.runner.JUnit5TestReference.run(JUnit5TestReference.java:89)

at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:41)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:541)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:763)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:463)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:209)

http://img.mukewang.com/climg/5e4d17dc09c6de1d18190952.jpg

写回答

1回答

好帮手慕酷酷

2020-02-20

同学你好,这里的报错信息,表示不能够初始化Utils类。这里的配置文件编写的有点小问题,root后面没有双引号和分号的,建议同学删除,具体如下:

http://img.mukewang.com/climg/5e4dea0a09f3182d04740161.jpg

然后尝试再运行一下代码。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~


0

0 学习 · 8016 问题

查看课程