package MysqlTest;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.Properties;
public class ExecuteDDL {
private String driver;
private String url;
private String user;
private String pass;
public void initParam(String paramFile) throws Exception
{
Properties props=new Properties();
//使用Properties类来加载属性文件
props.load(new FileInputStream(paramFile));
driver=props.getProperty("driver");
url=props.getProperty("url");
user=props.getProperty("user");
pass=props.getProperty("pass");
}
public void createTable(String sql) throws Exception
{
Class.forName(driver);//加载驱动
try(
Connection conn=DriverManager.getConnection(url,user,pass);//获取数据库连接,使用Connection来创建一个Statment对象
Statement stmt=conn.createStatement())
{
stmt.executeUpdate(sql); //执行DDL,创建数据表
}
}
public static void main (String[] args) throws Exception
{
ExecuteDDL ed=new ExecuteDDL();
ed.initParam("src/MysqlTest/my.ini");
ed.createTable("create table jdbc_test"+"(jdbc_id int auto_increment primary key,"+"jdbc_name varchar(255),"+"jdbc_desc text);");
System.out.println("----建表成功----");
}
}
错误描述:
Exception in thread "main" java.lang.NullPointerException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at MysqlTest.ExecuteDDL.createTable(ExecuteDDL.java:26)
at MysqlTest.ExecuteDDL.main(ExecuteDDL.java:38)
pass=props.getProperty("password");这个地方必须是password,然后我的文件配置propreties文件也要对应配置
驱动加载都出问题了,输出一下 你从配置文件中获取的那些值是否正确。
好嘞,十分感谢。我解决我的问题了。主要是有一个地方打错了有没有提示,我还以为我的数据库连接问题,唉~
你的数据库连接 的 driver;url;user;pass;这四个属性是单独写了一个类吗??
没有呀
感觉这种一般都是单词或者什么空格之内的问题==。
我是配置文件没打好,然后有个地方漏了一个字母。后来设置输出才发现的。
@耳朵嫁给了真正的谎: 嗯呢,所以就是些小错误。仔细一点儿就好啦