jdbc连接数据库的问题-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

jdbc连接数据库的问题

2016-06-14 15:01:42 2204 1

我是根据教程利用odbc做驱动通过jdbc连接sqlserver2008数据库的,数据表已经建立好,odbc加载驱动是成功的,数据库也连接上了,编写的java代码也没有报错,但是就是不能正常运行添加数据,提示是空异常,纠结了好久没能解决,所以在此拜托各位帮个忙解决一下。在此,表示感谢。以下是代码:
用户类

public class User {
private int id;
private String userName;
private String passWord;
private int roleId;
public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getUserName() {
    return userName;
}

public void setUserName(String userName) {
    this.userName = userName;
}

public String getPassWord() {
    return passWord;
}

public void setPassWord(String passWord) {
    this.passWord = passWord;
}

public int getRoleId() {
    return roleId;
}

public void setRoleId(int roleId) {
    this.roleId = roleId;
}

public User(){

}

public User(int id, String userName, String passWord, int roleId) {
    super();
    this.id = id;
    this.userName = userName;
    this.passWord = passWord;
    this.roleId = roleId;
}

@Override
public String toString() {
    return "User [id=" + id + ", userName=" + userName + ", passWord="
            + passWord + ", roleId=" + roleId + "]";
}
}

main主函数

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class demo01 {
private Connection conn;
private Statement stat;
public static void main(String[] args) {
new demo01().startup();
}
private  void startup(){
    init();
    //添加一个用户
    User user = new User(1, "zhang", "111", 1);
    addUser(user);

}
private void addUser(User user) {
    String sql = String.format("insert into T_User values('%s','%s',%s)",
            user.getUserName(), user.getPassWord(), user.getRoleId());
    try {
        stat = conn.createStatement();
        int result = stat.executeUpdate(sql);

        if (result > 0) {
            System.out.println("添加用户成功!");
        } else {
            System.out.println("添加用户失败!");
        }

    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } finally {
        try {
            stat.close();
            conn.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
private void init(){
    try {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        System.out.println("加载驱动成功");
        //该语句冒号前面是固定的,冒号后面是自己定义的数据源
        String url = "jdbc:odbc:bookshopsource";        
        Connection conn = DriverManager.getConnection(url);
       System.out.println("数据库连接成功");
    } catch (ClassNotFoundException e) {
        System.out.println("加载驱动失败");
        return;
    }catch (SQLException e) {
        System.out.println("数据库连接失败");
        return;
    }
}
}

screenshot

取消 提交回答
全部回答(1)
  • 蛮大人123
    2019-07-17 19:37:45

    Connection conn = DriverManager.getConnection(url); 我觉得问题应该出现在这里。你在init方法作用域里面赋值conn,出去后conn出现了空指针,你如果是要赋值给全局变量private Connection conn就直接这么写就完了conn = DriverManager.getConnection(url);

    0 0
相关问答

1

回答

在Spring框架中如何更有效地使用JDBC?

2021-10-25 22:10:33 169浏览量 回答数 1

1

回答

如何建立JDBC数据库的连接?

2021-09-30 12:50:32 251浏览量 回答数 1

1

回答

JDBC数据库如何进行优化?

2021-09-30 12:54:32 252浏览量 回答数 1

1

回答

Java JDBC连接数据库有哪些步骤?

2020-04-12 21:08:06 628浏览量 回答数 1

1

回答

JDBC 与数据库交互的流程是什么?

2019-12-04 14:14:54 708浏览量 回答数 1

0

回答

使用jdbc 连接时报错

2017-10-31 14:49:14 1679浏览量 回答数 0

0

回答

使用jdbc 连接时报错

2017-10-27 14:15:08 1552浏览量 回答数 0

1

回答

jdbc连接ads数据库,查询报错。

2017-03-07 16:52:25 5356浏览量 回答数 1

1

回答

数据库分页和jdbc游标分页性能比较

2016-03-11 15:09:54 4628浏览量 回答数 1

1

回答

关于jndi和jdbc的问题

2016-03-05 14:04:59 2457浏览量 回答数 1
+关注
蛮大人123
我说我不帅他们就打我,还说我虚伪
0
文章
7733
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载