10,606
社区成员
发帖
与我相关
我的任务
分享
Exception in thread "main" java.lang.NullPointerException
at java.util.Properties$LineReader.readLine(Properties.java:418)
at java.util.Properties.load0(Properties.java:337)
at java.util.Properties.load(Properties.java:325)
at cn.pb.news.util.ConfigManager.<init>(ConfigManager.java:19)
at cn.pb.news.util.ConfigManager.getInstance(ConfigManager.java:30)
at edu.njcc.rj1514.dao.NewsDao.add(NewsDao.java:72)
at edu.njcc.rj1514.dao.NewsDao.main(NewsDao.java:118)
package edu.njcc.rj1514.dao;
import java.sql.Connection;
import java.util.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
// import com.mysql.jdbc.PreparedStatement;
import cn.pb.news.util.ConfigManager;
public class NewsDao {
//查询新闻明细表
public void getNewsList(){
Connection connection = null;
Statement st = null;
ResultSet rs =null;
//从工具类里面得到我配置文件里的值
String driver = ConfigManager.getInstance().getString("jdbc.driver.class");
String url = ConfigManager.getInstance().getString("jdbc.connection.url");
String username = ConfigManager.getInstance().getString("jdbc.connection.username");
String password = ConfigManager.getInstance().getString("jdbc.connection.password");
try {
// 1、加载驱动
Class.forName(driver);
//2、获取数据库连接
connection = DriverManager.getConnection(url, username, password);
//3、获取Statement对象
String sql = "SELECT * FROM `news`.`news_detail`";
st = connection.createStatement();
rs = st.executeQuery(sql);
//4、处理sql执行结果
while (rs.next()) {
int id = rs.getInt("id");
int cate = rs.getInt("categoryId");
String title = rs.getString("title");
String summary = rs.getString("summary");
String content = rs.getString("content");
System.out.println("id:" + id + "\t" +"categoryId:" + cate +"\t" +"title:" +title +"\t"+"summary" +summary );
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//5、关闭资源
try {
rs.close();
st.close();
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//增加新闻信息
public void add(int id,int categoryId,String title,String summary,String author,Date createDate){
Connection connection = null;
// Statement st = null;
PreparedStatement pst = null;
//从工具类里面得到我配置文件里的值
String driver = ConfigManager.getInstance().getString("jdbc.driver_class");
String url = ConfigManager.getInstance().getString("jdbc.connection.url");
String username = ConfigManager.getInstance().getString("jdbc.connection.username");
String password = ConfigManager.getInstance().getString("jdbc.connection.password");
try {
//1加载驱动
Class.forName(driver);
//2获取数据库连接
connection = DriverManager.getConnection(url, username, password);
//3获取statement对象,执行sql
// String sql = "insert into news_detail(id,categoryId,title,summary,author,createdate) values('"+id+"','"+categoryId+"','"+title+"','"+summary+"','"+new Timestamp(createDate.getTime())+"')";
// st = connection.createStatement();
String sql = "insert into news_detail(id,categoryId,title,summary,createdate) values(?,?,?,?,?)";
pst = connection.prepareStatement(sql);
pst.setInt(1, id);
pst.setInt(2, categoryId);
pst.setString(3, title);
pst.setString(4, summary);
pst.setTimestamp(5,new Timestamp(createDate.getTime()) );
//处理执行结果
// int i = st.executeUpdate(sql);
int i = pst.executeUpdate();
if (i>0) {
System.out.println("插入成功");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
pst.close();
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args){
NewsDao newsDao = new NewsDao();
newsDao.add(16, 11, "增加测试", "摘要", "admin", new Date());
newsDao.getNewsList();
}
}
package cn.pb.news.util;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
//读取配置文件的工具类-单例模式
public class ConfigManager {
//读取配置文件properties.load(inputstream)
private static ConfigManager configManager;
private static Properties properties;
private ConfigManager(){
String configFile = "databse.properties";
properties = new Properties();
InputStream is = ConfigManager.class.getResourceAsStream(configFile);
try {
properties.load(is);
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//提供一个入口
public static ConfigManager getInstance(){
if (configManager == null) {
configManager = new ConfigManager();
}
return configManager;
}
//取值
public String getString(String key){
return properties.getProperty(key);
}
}