建了一个.properties文件用以实现连接不同数据库,在ItemDao4MySqlImpl类里只是简单的输出语句用以测试而已。可以保证其他文件没什么问题,之前可以正常运行,但是现在改用properties文件来实现连接不同数据库却报没有主函数,纠结中public class ItemManager {
private static ItemManager instance = new ItemManager();
private ItemDaoFactory itemDaoFactory;
private ItemManager() {
//itemDaoFactory = new ItemDao4OracleFactory();
//itemDaoFactory = new ItemDao4MySqlFactory();
Properties props = loadProperties();
String className = props.getProperty("item-dao-factory");
try {
itemDaoFactory = (ItemDaoFactory) Class.forName(className).newInstance();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static ItemManager getInstance() {
return instance;
}
public void addItem(Item item) {
Connection conn = null;
try {
conn = DB.getConnection();
itemDaoFactory.createItemDao().addItem(conn, item);
}catch(DBException e) {
throw new AppException("数据库连接异常,请联系系统管理员!");
}catch(DaoException e) {
throw new AppException("添加物料失败!");
}finally {
DB.close(conn);
}
}
/**
* 读取factory-class-mapping.properties
* @return
*/
private Properties loadProperties() {
Properties props = new Properties();
//ItemManagerImpl.class
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("com/drp/basedata/manager/factory-class-mapping.properties");
try {
props.load(is);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
ItemManager.getInstance().addItem(null);
}
}
private static ItemManager instance = new ItemManager();
private ItemDaoFactory itemDaoFactory;
private ItemManager() {
//itemDaoFactory = new ItemDao4OracleFactory();
//itemDaoFactory = new ItemDao4MySqlFactory();
Properties props = loadProperties();
String className = props.getProperty("item-dao-factory");
try {
itemDaoFactory = (ItemDaoFactory) Class.forName(className).newInstance();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static ItemManager getInstance() {
return instance;
}
public void addItem(Item item) {
Connection conn = null;
try {
conn = DB.getConnection();
itemDaoFactory.createItemDao().addItem(conn, item);
}catch(DBException e) {
throw new AppException("数据库连接异常,请联系系统管理员!");
}catch(DaoException e) {
throw new AppException("添加物料失败!");
}finally {
DB.close(conn);
}
}
/**
* 读取factory-class-mapping.properties
* @return
*/
private Properties loadProperties() {
Properties props = new Properties();
//ItemManagerImpl.class
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("com/drp/basedata/manager/factory-class-mapping.properties");
try {
props.load(is);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
ItemManager.getInstance().addItem(null);
}
}
解决方案 »
- 关于spring 定时器的 时间问题
- 根据页面的网址链接个数,用ajax去后台请求数据,后台根据这个网址,用httpclient去网站采集数据,当页面连接很多时,如何让ajax sleep
- byte[]数组存入数据库的问题
- 大家帮忙看看,这种非常规的做法可行吗????
- Spring+hibernate3.0 +mysql5.0,hibernate的createSQLQuery时,Column '' not found错误?
- 非struts高手不能解决:在action类中如何获取jsp里的一个标签对象
- 怎样让网页中的路径跟随网络地址的变化而变化
- The value for the useBean class attribute lyb.jdbc is invalid.怎么解决啊!郁闷啊!好几天了!
- 有劳朋友,做ORACLE数据库和J2EE 都用到那些开发软件?OS用2000,2000SERVER,还是XP Pro?听说一个什么VMAVE,就是可以同时装多个OS,
- web.xml加载bean.xml获取不到bean属性的值?也没有报错日志
- 怎么利用java读取google提供的 Calander API获取日历和日程提醒的信息!请高手指点
- 学JAVA的女程序员好找工作不?
Caused by: java.lang.NullPointerException
at com.drp.basedata.manager.ItemManager.<init>(ItemManager.java:23)
at com.drp.basedata.manager.ItemManager.<clinit>(ItemManager.java:16)
Exception in thread "main"
......Count not find the main class......
java.lang.ExceptionInInitializerError
Caused by: java.lang.NullPointerException
at com.drp.basedata.manager.ItemManager.<init>(ItemManager.java:23)
at com.drp.basedata.manager.ItemManager.<clinit>(ItemManager.java:16)
Exception in thread "main"
......Count not find the main class......
/**
* 读取factory-class-mapping.properties
* @return
*/
private Properties loadProperties() {
Properties props = new Properties();
//ItemManagerImpl.class
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("com/drp/basedata/manager/factory-class-mapping.properties");
try {
props.load(is);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}return null;