男朋友那方面好像不行那个不行~~T^T

你现在的位置:&&&&&&最近迷这个二次元***迷到不行……T^T
最近迷这个二次元***迷到不行……T^T
--------------------Im lolicon,thats good.I might never be normal,and thats not bad.There's no one I'd rather be~than me楼主管理员给此话题奖励了2分!
&&&&& 1885年 19岁 与卢慕贞(18岁)结婚,后育有三子 &&&&& 1891年 24岁 认识陈粹芬(18岁),后成为侧室 &&&&& 1894年 28岁 初次见到宋庆龄(1岁的女婴)开始光源氏计划 &&&&& 1897年 31岁 流亡日本,认识浅田春(15岁女仆) &&&&& 1898年 32岁 认识大月熏(10岁罗莉) &&&&& 1900年 34岁 9月20日上午在神户市相生町加藤旅馆跟浅田春(18岁)&&&&& 1901年 35岁 向卢慕贞(34岁)提出离婚(当时似乎还没正式离婚)&&&&& 1902年 36岁 向大月熏(14岁)父亲提亲被拒绝&&&&& 1903年 37岁 8月与大月熏(15岁)订婚&&&&& 1904年 38岁 7月19日与大月熏(16岁)正式成亲 &&&&& 1915年 49岁 与卢慕贞(48岁)正式离婚 与宋庆龄(22岁)结婚
原来国父也是志同道合的战友啊!~
三民主义,吾党所宗。
以建民国,以进大同,
咨尔多士,为民前锋。
夙夜匪懈,主义是从,
矢勤矢勇,必信必忠,
一心一德,贯彻始终。~
--------------------Im lolicon,thats good.I might never be normal,and thats not bad.There's no one I'd rather be~than me
管理员给此回复奖励了
补给你补给你,小气样子~
--------------------It s better to burn out,than fade away
就喜欢给2分。。。啦啦啦~
--------------------It s better to burn out,than fade away
我向来都加三分,你做人太不厚道了……
--------------------Im lolicon,thats good.I might never be normal,and thats not bad.There's no one I'd rather be~than me
哈哈哈哈哈~~
--------------------It s better to burn out,than fade away
参与话题讨论,请先
20970名成员1144个主题
可用积分:25分查看: 578|回复: 6
新手求教各位大神,JDBC连接数据库空指针报错,何解?T^T
TA的每日心情开心 13:18签到天数: 213 天[LV.7]常住居民III
*******未加载load之前******
Exception in thread &main& java.lang.NullPointerException
& & & & at java.util.Properties$LineReader.readLine(Properties.java:434)
& & & & at java.util.Properties.load0(Properties.java:353)
& & & & at java.util.Properties.load(Properties.java:341)
& & & & at cn.pb.news.util.ConfigManager.&init&(ConfigManager.java:34)
& & & & at cn.pb.news.util.ConfigManager.getInstance(ConfigManager.java:52)
& && &&&at cn.pb.news.dao.NewsDao.getNewsList(NewsDao.java:26)
& & & & at cn.pb.news.dao.NewsDao.main(NewsDao.java:177)
配置文件:ConfigManager.java
package cn.pb.news.
import java.io.IOE
import java.io.InputS
import java.util.P
public class ConfigManager {
& & & & private static ConfigManager configM
& & & & private static Properties properties = new Properties();
& & & & //无参构造
& & & & private ConfigManager(){
& & & & & & & & String configFile = &database.properties&;& & & & & & & &
& & & & & & & & InputStream is = ConfigManager.class.getClassLoader().getResourceAsStream(configFile);
//& & & & & & & & System.out.println(&能找到database.properties文件&);
& & & & & & & & try {
& & & & & & & & & & & & System.out.println(&*******未加载load之前******&);
& & & & & & & & & & & & properties.load(is);
& & & & & & & & & & & & System.out.println(&load成功!!!!!!!!&);
& & & & & & & & & & & & //使用完关闭
& & & & & & & & & & & & is.close();
& & & & & & & & & & & & System.out.println(&is关闭成功!!!!!!!&);
& & & & & & & & } catch (IOException e) {
& & & & & & & & & & & & // TODO Auto-generated catch block
& & & & & & & & & & & & e.printStackTrace();
& & & & & & & & }
& & & & public static ConfigManager getInstance(){
& & & & & & & & //判断ConfigManager是否有configManager实例
& & & & & & & & if(configManager == null){
//& & & & & & & & & & & & System.out.println(&null进来了===============&);
& & & & & & & & & & & & //如果空则构造一下
& & & & & & & & & & & & configManager = new ConfigManager();
& & & & & & & & & & & & //System.out.println(&ConfigManager实例化了================&);
& & & & & & & & }
& & & & & & & & return configM
& & & & //取key对应的value值
& & & & public String getString(String key){
& & & & & & & & return properties.getProperty(key);
新闻实现类:NewsDao.java
package cn.pb.news.
import java.sql.C
import java.sql.DriverM
import java.sql.PreparedS
import java.sql.ResultS
import java.sql.SQLE
import java.sql.S
import java.sql.T
import java.util.D
import cn.pb.news.util.ConfigM
public class NewsDao {
& & & & //查询新闻明细表方法
& & & & public void getNewsList(){
& & & & & & & & Connection connection =
& & & & & & & & Statement st =
//& & & & & & & & PreparedStatement pst =
& & & & & & & & ResultSet rs =
& & & & & & & & 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 = &select * from news_detail&;
& & & & & & & & & & & & st = connection.createStatement();
//& & & & & & & & & & & & pst = connection.prepareStatement(sql);
& & & & & & & & & & & & rs = st.executeQuery(sql);
//& & & & & & & & & & & & rs = pst.executeQuery();
& & & & & & & & & & & & //4、处理sql执行结果
& & & & & & & & & & & & while(rs.next()){
& & & & & & & & & & & & & & & & int id = rs.getInt(&id&);
& & & & & & & & & & & & & & & & int categoryId = rs.getInt(&categoryId&);
& & & & & & & & & & & & & & & & String title = rs.getString(&title&);
& & & & & & & & & & & & & & & & String summary = rs.getString(&summary&);
& & & & & & & & & & & & & & & & String content = rs.getString(&content&);
& & & & & & & & & & & & & & & & String author = rs.getString(&author&);
& & & & & & & & & & & & & & & & Timestamp createDate = rs.getTimestamp(&createDate&);
& & & & & & & & & & & & & & & & System.out.println(&id:&+id+&\t&+&title:&+title+&\t&+&summary:&+summary+&\t&+&author:&+author+&\t&+&content:&+content+&\t&+&createDate:&+createDate);
& & & & & & & & & & & & }
& & & & & & & & & & & &
& & & & & & & & } catch (ClassNotFoundException e) {
& & & & & & & & & & & & // TODO Auto-generated catch block
& & & & & & & & & & & & e.printStackTrace();
& & & & & & & & } catch (SQLException e) {
& & & & & & & & & & & & // TODO Auto-generated catch block
& & & & & & & & & & & & e.printStackTrace();
& & & & & & & & }finally{
& & & & & & & & & & & & //5、释放资源
& & & & & & & & & & & & try {
& & & & & & & & & & & & & & & & rs.close();
& & & & & & & & & & & & & & & & st.close();
//& & & & & & & & & & & & & & & & pst.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 =
//& & & & & & & & Statement st =
& & & & & & & & PreparedStatement pst =
& & & & & & & & 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+&','&+author+&','&+new Timestamp(createDate.getTime())+&')&;
//& & & & & & & & & & & & st = connection.createStatement();
& & & & & & & & & & & & String sql = &insert into news_detail(id,categoryId,title,summary,author,createDate) values(?,?,?,?,?,?)&;
& & & & & & & & & & & & pst = connection.prepareStatement(sql);//预编译
& & & & & & & & & & & & pst.setInt(1, id);
& & & & & & & & & & & & pst.setInt(2, categoryId);
& & & & & & & & & & & & pst.setString(3, title);
& & & & & & & & & & & & pst.setString(4, summary);
& & & & & & & & & & & & pst.setString(5, author);
& & & & & & & & & & & & pst.setTimestamp(6, new Timestamp(createDate.getTime()));
& & & & & & & & & & & &
& & & & & & & & & & & &
& & & & & & & & & & & & //4.处理执行结果 executeUpdate()返回int类型,记录影响的行数
& & & & & & & & & & & & int i = pst.executeUpdate();
//& & & & & & & & & & & & int i = st.executeUpdate(sql);
& & & & & & & & & & & & if(i & 0){
& & & & & & & & & & & & & & & & System.out.println(&插入成功!&);
& & & & & & & & & & & & }
& & & & & & & & } catch (ClassNotFoundException e) {
& & & & & & & & & & & & // TODO Auto-generated catch block
& & & & & & & & & & & & e.printStackTrace();
& & & & & & & & } catch (SQLException e) {
& & & & & & & & & & & & // TODO Auto-generated catch block
& & & & & & & & & & & & e.printStackTrace();
& & & & & & & & }finally{
& & & & & & & & & & & & //5.释放资源
& & & & & & & & & & & & try {
//& & & & & & & & & & & & & & & & st.close();
& & & & & & & & & & & & & & & & pst.close();
& & & & & & & & & & & & & & & & connection.close();
& & & & & & & & & & & & } catch (SQLException e) {
& & & & & & & & & & & & & & & & // TODO Auto-generated catch block
& & & & & & & & & & & & & & & & e.printStackTrace();
& & & & & & & & & & & & }
& & & & & & & & }
& & & & //修改新闻信息
& & & & public void update(int id,String title){
& & & & & & & & Connection conn =
& & & & & & & & PreparedStatement ps =
& & & & & & & &
& & & & & & & & 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.获取数据库连接
& & & & & & & & & & & & conn = DriverManager.getConnection(url, username, password);
& & & & & & & & & & & & //3.传输并执行sql
& & & & & & & & & & & & String sql = &update news_detail set title=? where id=?&;
& & & & & & & & & & & & ps = conn.prepareStatement(sql);
& & & & & & & & & & & & ps.setString(1, title);
& & & & & & & & & & & & ps.setInt(2, id);
& & & & & & & & & & & & //4.处理执行结果 executeUpdate()返回int类型,记录影响的行数
& & & & & & & & & & & & int i = ps.executeUpdate();
& & & & & & & & & & & & if(i & 0){
& & & & & & & & & & & & & & & & System.out.println(&修改成功!&);
& & & & & & & & & & & & & & & & }
& & & & & & & & } catch (ClassNotFoundException e) {
& & & & & & & & & & & & // TODO Auto-generated catch block
& & & & & & & & & & & & e.printStackTrace();
& & & & & & & & } catch (SQLException e) {
& & & & & & & & & & & & // TODO Auto-generated catch block
& & & & & & & & & & & & e.printStackTrace();
& & & & & & & & }finally{& & & &
& & & & & & & & & & & & try {
& & & & & & & & & & & & & & & & //5.释放资源
& & & & & & & & & & & & & & & & ps.close();
& & & & & & & & & & & & & & & & conn.close();
& & & & & & & & & & & & } catch (SQLException e) {
& & & & & & & & & & & & & & & & // TODO Auto-generated catch block
& & & & & & & & & & & & & & & & e.printStackTrace();
& & & & & & & & & & & & }
& & & & & & & & }
& & & & public static void main(String[] args){
& & & & & & & & NewsDao newsDao = new NewsDao();
//& & & & & & & & newsDao.add(12, 11, &增加测试&, &摘要&, &admin&, new Date());
& & & & & & & & newsDao.getNewsList();
& & & & & & & & newsDao.update(10,&修改测试&);
properties文件:database.properties,文件位于news工程的src下
jdbc.driver.class=com.mysql.jdbc.Driver
jdbc.connection.url=jdbc:mysql://127.0.0.1:3306/news
jdbc.connection.username=root
jdbc.connection.password=root
数据库正常启动,表设置没有问题
本人新手,第一次操作,总报空指针,不知道是什么情况,请各位大神帮帮忙,感激涕零T^T~~~
该用户从未签到
报空指针异常的原因有很多,如
1,对一个空数组遍历会报空指针
2,传递的参数与数据库中的字段对应不上会报空指针
3,rs.next()方法中,取出的字段与数据库中的字段对应不上时会报空指针
写完一个方法应该立即测试,出现问题也很容易排查
不要一股脑子全写完,再来测试。谁会费那个劲看你全写完的代码
TA的每日心情开心 13:18签到天数: 213 天[LV.7]常住居民III
报空指针异常的原因有很多,如
1,对一个空数组遍历会报空指针
2,传递的参数与数据库中的字段对应不上会报 ...
该用户从未签到
本帖最后由 Dew 于
01:07 编辑
你这代码写的挺认真的。把 Properties properties=new Porperties();
写在构造方法中,或者去掉static关键字。
你为什么没用oracle?
TA的每日心情开心 13:18签到天数: 213 天[LV.7]常住居民III
你这代码写的挺认真的。把 Properties properties=new Porperties();
写在构造方法中,或者去掉static关键 ...
第一次写,先试一下,再优化,多谢:)
TA的每日心情开心 13:18签到天数: 213 天[LV.7]常住居民III
把database.properties文件的的127.0.0.1改成localhost,运行后再改回127.0.0.1就可以了,这是为什么呢?
TA的每日心情开心 13:18签到天数: 213 天[LV.7]常住居民III
localhost与127.0.0.1的区别
localhost也叫local -----&:本地服务器
127.0.0.1在windows等系统的正确解释是:本机地址(本机服务器)
他们的解析通过本机的host文件,windows自动将localhost解析为127.0.0.1
localhot(local)不经网卡传输,它不受网络防火墙和网卡相关的的限制。
127.0.0.1是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。
一般设置程序时本地服务用localhost是最好的,localhost不会解析成ip,也不会占用网卡、网络资源。
有时候用localhost可以,但用127.0.0.1就不可以的情况就是在于此。猜想localhost访问时,系统带的本机当前用户的权限去访问,而用ip的时候,等于本机是通过网络再去访问本机,可能涉及到网络用户的权限。
Beijing Aptech Beida Jade Bird Information Technology Co.,Ltd
北大青鸟IT教育 北京阿博泰克北大青鸟信息技术有限公司 版权所有

参考资料

 

随机推荐