Java的JDBC的一点小问题

豪哥super叼 2018-05-21 07:17:13
public class ExecuteDDl {
private String driver;
private String url;
private String user;
private String pass;

public void initParam(String paramFile)throws Exception{
//使用Properties类来加载属性文件
Properties props = new Properties();
props.load(new FileInputStream(paramFile));
driver = props.getProperty("com.mysql.cj.jdbc.Driver");
url = props.getProperty("jdbc:mysql://localhost:3306/localhost");
user = props.getProperty("root");
pass = props.getProperty("asd857448959");
}
public void createTable(String sql)throws Exception{
//加载驱动
Class.forName(driver);
try(
//获取数据库链接
Connection conn = DriverManager.getConnection("url", "user", "pass");
//使用Connection来创建一个 Statement对象
Statement stmt = conn.createStatement())
{
//执行DDL语句,创建数据表
stmt.executeUpdate(sql);
}

}
public static void main(String[] args)throws Exception{
ExecuteDDl ed = new ExecuteDDl();
ed.initParam("mysql.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.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Unknown Source)
at JDBCno1.ExecuteDDl.createTable(ExecuteDDl.java:26)
at JDBCno1.ExecuteDDl.main(ExecuteDDl.java:41)
麻烦各位小哥哥小姐姐了,这个弄了挺久就是不知道咋办~~~
...全文
1175 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuailhw123 2018-06-12
  • 打赏
  • 举报
回复
https://blog.csdn.net/zhanghan18333611647
老王的WIFI 2018-06-12
  • 打赏
  • 举报
回复
首先链接写的有问题,其次props.getProperty()取不到值
abolom 2018-06-08
  • 打赏
  • 举报
回复
可能是props.getProperty()这个函数实际上并没有取到值,可以在下面添加一个打印语句试试,确定下这个函数到底取到值了没
虫二飞呀 2018-06-04
  • 打赏
  • 举报
回复
空指针异常………………最简单的错误
阿莯莯 2018-06-04
  • 打赏
  • 举报
回复
应该是你获得连接那一行写错了
爱睡觉的阿狸 2018-05-22
  • 打赏
  • 举报
回复
你读取的properties文件里的有类似com.mysql.cj.jdbc.Driver=XXX的内容吗?注意大小写和不要漏字母了。
竹子_bamboo 2018-05-22
  • 打赏
  • 举报
回复
还有就是你的这些 props.getProperty("com.mysql.cj.jdbc.Driver");方法写的超级奇怪,你的配置文件名称和值一个样吗
给你看个示例

像这个配置文件取值的话
这样写
prop.getProperty("admin.useroid")
竹子_bamboo 2018-05-22
  • 打赏
  • 举报
回复
//获取数据库链接 Connection conn = DriverManager.getConnection("url", "user", "pass"); 不清楚你的什么问题,这里你写错了额,你定义的用引号把数据库连接信息包起来,他就是字符串了,那你这个连接根本就没连接成功,这里就是错的 应该是这样 Connection conn = DriverManager.getConnection(url, user, pass);
当年的春天 2018-05-21
  • 打赏
  • 举报
回复
https://blog.csdn.net/zhanghan18333611647
豪哥super叼 2018-05-21
  • 打赏
  • 举报
回复
那我该怎么弄呢? 打印出来是null值,是因为没有弄健值的原因吗?是个小白,很懵~~谢谢啦
蜉蝣1995 2018-05-21
  • 打赏
  • 举报
回复
props.getProperty()你;传入的值是有误的,他需要传入一个key,返回一个value proterties是键值对的组合 比如 用户名: userName=root 想获得用户名就传入userName,他返回root 其他也一样 比如:DBdriver=jdbc:mysql://localhost:3306/tset 需要传入DBdriver ,返回jdbc:mysql://localhost:3306/localhost 你可试试打印你的这句话:props.getProperty("com.mysql.cj.jdbc.Driver");它返回的值是多少

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧