(待解决)IDEA配置JDBC查询数据库PreparedStatement pstmt = dbconn.prepareStatement(sql)出现空指针错误
package com.demo; import java.io.*;
import java.sql.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.WebServlet;
@WebServlet("/queryproduct.do")
public class QueryProductServlet extends HttpServlet{
private static final long serialVersionUID = 1L;
Connection dbconn = null;
public void init() {
String driver = "com.jdbc.mysql.Driver";
String dburl = "jdbc:mysql://localhost:3306/prod_data";
String username = "root";
String password = "123456";
try{
Class.forName(driver); // 加载驱动程序
// 创建连接对象
dbconn = DriverManager.getConnection(dburl,username,password);
}catch(ClassNotFoundException e1){
System.out.println(e1);
}catch(SQLException e2){}
} public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException{
String productid = request.getParameter("productid");
try{
String sql="SELECT * FROM products WHERE prod_id = ?";
PreparedStatement pstmt = dbconn.prepareStatement(sql);
pstmt.setString(1,productid);
ResultSet rst = pstmt.executeQuery();
//System.out.println(sql);
if(rst.next()){
Product product = new Product();
product.setProd_id(rst.getString("prod_id"));
product.setPname(rst.getString("pname"));
product.setPrice(rst.getDouble("price"));
product.setStock(rst.getInt("stock"));
request.getSession().setAttribute("product", product);
response.sendRedirect("displayProduct.jsp");
}else{
response.sendRedirect("error.jsp");
}
}catch(SQLException e){
e.printStackTrace();
}
}
}
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head><title>商品查询</title></head>
<body>
<form action = "queryproduct.do" method="post">
请输入商品号:
<input type = "text" name="productid" size="15">
<input type = "submit" value = "确定">
</form>
</body>
</html>
package com.demo; import java.io.Serializable; public class Product implements Serializable{
private String prod_id;
private String pname;
private double price;
private int stock;
public Product(){} public Product(String prod_id, String pname, double price, int stock) {
this.prod_id = prod_id;
this.pname = pname;
this.price = price;
this.stock = stock;
} public String getProd_id() {
return prod_id;
} public void setProd_id(String prod_id) {
this.prod_id = prod_id;
} public String getPname() {
return pname;
} public void setPname(String pname) {
this.pname = pname;
} public double getPrice() {
return price;
} public void setPrice(double price) {
this.price = price;
} public int getStock() {
return stock;
} public void setStock(int stock) {
this.stock = stock;
}
}
错误如下:
(待解决)IDEA配置JDBC查询数据库PreparedStatement pstmt = dbconn.prepareStatement(sql)出现空指针错误的更多相关文章
- Java 通过JDBC查询数据库表结构(字段名称,类型,长度等)
Java 通过JDBC查询数据库表结构(字段名称,类型,长度等) 发布者:唛唛家的豆子 时间:2012-11-20 17:54:02 Java 通过JDBC查询数据库表结构(字段名称,类型,长 ...
- 用JDBC查询数据库
JDBC API的核心组件:1.DriverManager类:用语跟踪可用的JDBC驱动程序并产生数据库连接. 2.Connection接口:用于取得数据库信息.生成数据库语句,并管理数据库事务. 3 ...
- 附加数据库时,提示“Microsoft SQL Server,错误: 5120”, 解决方案
错误的提示内容为:
- JDBC 查询的三大参数 setFetchSize prepareStatement(String sql, int resultSetType, int resultSetConcur)
JDBC 查询的三大参数 本文转载至 http://blog.csdn.net/turkeyzhou/article/details/5115228 DBC1.0 .JDBC2.0 .JDBC3.0 ...
- JDBC查询数据库中的数据
只用JDBC技术查询表中的全部内容时,需要使用查询全部的SQL语句,把查询结果放到List集合中. package qddx.JDBC; import java.util.*; import java ...
- 查询数据库游标使用情况以及sql
----查询游标使用情况以及游标最大数---- SELECT MAX(A.VALUE) AS HIGHEST_OPEN_CUR, P.VALUE AS MAX_OPEN_CUR FROM V$SESS ...
- javaweb三、JDBC访问数据库
JDBC是J2SE的内容,是由java提供的访问数据库的接口,但没有提供具体的实现方法,需要数据库厂商提供,就是对应的数据库驱动. 这样的好处是可以方便的更换数据库,提高了扩展性.这也是面向接口编程的 ...
- MySQL_(Java)使用JDBC向数据库中修改(update)数据
MySQL_(Java)使用JDBC向数据库发起查询请求 传送门 MySQL_(Java)使用JDBC向数据库中插入(insert)数据 传送门 MySQL_(Java)使用JDBC向数据库中删除(d ...
- MySQL_(Java)使用JDBC向数据库中删除(delete)数据
MySQL_(Java)使用JDBC向数据库发起查询请求 传送门 MySQL_(Java)使用JDBC向数据库中插入(insert)数据 传送门 MySQL_(Java)使用JDBC向数据库中删除(d ...
随机推荐
- keepalived+nginx高可用实现
1.keepalived介绍 keepalived最初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了实现高可用的VRRP功能.keepalived除了能 ...
- 关于协程:nodejs和golang协程的不同
nodejs和golang都是支持协程的,从表现上来看,nodejs对于协程的支持在于async/await,golang对协程的支持在于goroutine.关于协程的话题,简单来说,可以看作是非抢占 ...
- git简单使用方法
跟远程库关联起来: http://www.cnblogs.com/Gabriel-Wei/p/6564102.html http://www.liaoxuefeng.com/wiki/00137395 ...
- dubbo中Hessian方法重载问题处理
dubbo中Hessian方法重载,报出如下错误信息: 十一月 , :: 下午 org.apache.catalina.core.StandardWrapperValve invoke 严重: Ser ...
- git部分指令
git stash #会把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录 git stach pop #恢复之前缓存的工作目录 切换分支: git checkout de ...
- iOS UILabel UITextView自适应文本,或文本大小自适应
//UILabel自适应文本的高度 UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(, , , )]; label.numberOf ...
- 转 Oracle最新PSU大搜罗
Quick Reference to Patch Numbers for Database/GI PSU, SPU(CPU), Bundle Patches and Patchsets (文档 ID ...
- php输出中文字符
中文字符不可以使用imagettftext()函数在图片中直接输出,如果要输出中文字符,需要先使用iconv()函数对中文字符进行编码,语法格式如下:string iconv ( string $in ...
- springboot之项目打包
通过win中的cmd或者idea中终端,打包并启动项目: 1.mvn package [打包,在target中生成jar] 2.java -jar xxxxx.jar [启动jar]
- Spring-bean(二)
命名空间 自动装配 bean之间的关系:继承:依赖 使用外部属性文件 SpEL bean的生命周期 bean的后置处理器 (一)util命名空间 当用list,set等集合时,不能将集合作为独立的be ...