classname = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
url = "jdbc:sqlserver://localhost:1433;DatabaseName=HR";
try {
Class.forName(classname).newInstance();
System.out.println("加载数据库驱动成功!");
} catch (Exception e) {
e.printStackTrace();
System.out.println("加载数据库驱动失败!");
}
另外在myeclipse中组装sql语句时,表名是user还是数据库里的名字dbo.user呢? jar包添加了,在浏览器中提示是:
java.lang.NullPointerException
service.LoginService.login(LoginService.java:22)
action.LoginServlet.doPost(LoginServlet.java:82)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)在LoginService中的语句就是调用dao.query();应该不会出错,,到底是为什么连接不到数据库呢
有这方面的成手么,,可以的话留下个联系方式QQ或者邮箱什么的 真心想搞懂这玩意
url = "jdbc:sqlserver://localhost:1433;DatabaseName=HR";
try {
Class.forName(classname).newInstance();
System.out.println("加载数据库驱动成功!");
} catch (Exception e) {
e.printStackTrace();
System.out.println("加载数据库驱动失败!");
}
另外在myeclipse中组装sql语句时,表名是user还是数据库里的名字dbo.user呢? jar包添加了,在浏览器中提示是:
java.lang.NullPointerException
service.LoginService.login(LoginService.java:22)
action.LoginServlet.doPost(LoginServlet.java:82)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)在LoginService中的语句就是调用dao.query();应该不会出错,,到底是为什么连接不到数据库呢
有这方面的成手么,,可以的话留下个联系方式QQ或者邮箱什么的 真心想搞懂这玩意
解决方案 »
- 如何 在 JAVA中创建 sqlserver 数据库 或 执行sql脚本 来创建数据库~!在线等 ...
- java中怎么实现截图! 不是压缩!!! 是截取
- 高分求教JSPSmartUpload里如何自己判断错误?
- 再问关于身份证问题
- JSP中用getString得到数据库字段值,为什么值中有空格的只能显示第一个空格之前的内容???
- 关于下载文件的时候中文文件名变成乱码的问题,送分
- javamail发送邮件出错!!
- 求助 在jspsmartupload中的上传文件的中文名字问题
- 各位老大,如果网页有大量的数据要发送给服务器,用什么语言编写好呢?
- 这个问题怎么解决????!!!
- 高手帮我看下JSP调用BEAN里的get()有啥错误
- 如何把数据库里面的表显示到网页表格中
报的是空指针啊,你设下断点,看dao是不是空的,是的话就是没连到数据库,话说这块我也记不住,每次都是去复制以前的,⊙﹏⊙b汗
我就不了解为什么啊,,愁呀 ,,还有如果sqlserver是windows身份验证的话,,是不是在conn = DriverManager.getConnection(url); 里面就不用写名和密码了。。其他的都没有问题 就是连不到数据库 郁闷了
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1484)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1329)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at DAO.dao.<init>(dao.java:23) //Class.forName(classname).newInstance();
看起来真的是dao木有实例。。怎么解决呢 ·?
conn = DriverManager.getConnection(url);
一般上面的这句为空的可能性比较大
加载驱动就加载驱动呗,何必来个实例呢,静态代码块中有过了都。
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class DB {
private final String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_Blog";
private final String userName = "sa";
private final String password = "123456";
private Connection con = null;
private Statement stm=null;
/* 通过构造方法加载数据库驱动 */
public DB(){
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
} catch (Exception e) {
e.printStackTrace();
System.out.println("加载数据库驱动失败!");
}
}
/* 创建数据库连接 */
public void createCon() {
try {
con = DriverManager.getConnection(url, userName, password);
} catch (Exception e) {
e.printStackTrace();
System.out.println("获取数据库连接失败!");
}
}
/* 获取Statement对象 */
public void getStm(){
createCon();
try {
stm=con.createStatement();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("创建Statement对象失败!");
}
}
/**
* @功能 对数据库的增加、修改和删除的操作
* @参数 sql为要执行的SQL语句
* @返回值 boolean型值
*/
public boolean executeUpdate(String sql) {
System.out.println(sql);
boolean =false;
try {
getStm();
int iCount = stm.executeUpdate(sql);
if(iCount>0)
=true;
else
=false;
} catch (Exception e) {
e.printStackTrace();
=false;
}
return ;
}
/* 查询数据库 */
public ResultSet executeQuery(String sql) {
ResultSet rs=null;
try {
getStm();
try {
rs = stm.executeQuery(sql);
} catch (Exception e) {
e.printStackTrace();
System.out.println("查询数据库失败!");
}
} catch (Exception e) {
e.printStackTrace();
}
return rs;
}
/* 关闭数据库的操作 */
public void closed() {
if(stm!=null)
try {
stm.close();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("关闭stm对象失败!");
}
if(con!=null)
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("关闭con对象失败!");
}
}
}
这是我以前常用的,你试试!