数据库中有这样一组数据:pid=p1001 pname="mp3" price=200
现有如一个javabean,如下package ajax.biz;
import java.sql.*;
public class Product
{
private String productId=null;
private String productName=null;
private double productPrice=0;
private int productsNum=0;
public Product(String productId)
{
String sql="select pid,pname,price from products where pid=?";
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
try
{
Class.forName("org.gjt.mm.mysql.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost/ajax?useUnicode=true&CharacterEncoding=utf-8","root","123");
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,productId);
rs=pstmt.executeQuery();
if(rs.next())
{
this.productId=rs.getString(1);
this.productName=rs.getString(2);
this.productPrice=rs.getDouble(3);
this.productsNum=1;
}
rs.close();
pstmt.close();
conn.close();
}
catch(Exception e)
{
e.printStackTrace();
} }
public String getProductId()
{
return productId;
}
public void setProductId(String productId)
{
this.productId=productId;
}
public String getProductName()
{
return productName;
}
public void setProductName(String productName)
{
this.productName=productName;
}
public int getProductsNum()
{
return productsNum;
}
public void setProductsNum(int productsNum)
{
this.productsNum=productsNum;
}
public double getProductPrice()
{
return productPrice;
}
public void setProductPrice(double productPrice)
{
this.productPrice=productPrice;
}
} 有一个jsp页面:
<%@ page import="ajax.biz.*" contentType="text/html;charset=utf-8"%>
<%try{
Product product=new Product("p1001");
out.println(product.getProductName());
out.println(product.getProductsNum());
out.println(product.getProductId());
}
catch(Exception e)
{
out.println(e.toString());
}
%>
这个jsp页面的输出结果为什么是null 0 null?
现有如一个javabean,如下package ajax.biz;
import java.sql.*;
public class Product
{
private String productId=null;
private String productName=null;
private double productPrice=0;
private int productsNum=0;
public Product(String productId)
{
String sql="select pid,pname,price from products where pid=?";
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
try
{
Class.forName("org.gjt.mm.mysql.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost/ajax?useUnicode=true&CharacterEncoding=utf-8","root","123");
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,productId);
rs=pstmt.executeQuery();
if(rs.next())
{
this.productId=rs.getString(1);
this.productName=rs.getString(2);
this.productPrice=rs.getDouble(3);
this.productsNum=1;
}
rs.close();
pstmt.close();
conn.close();
}
catch(Exception e)
{
e.printStackTrace();
} }
public String getProductId()
{
return productId;
}
public void setProductId(String productId)
{
this.productId=productId;
}
public String getProductName()
{
return productName;
}
public void setProductName(String productName)
{
this.productName=productName;
}
public int getProductsNum()
{
return productsNum;
}
public void setProductsNum(int productsNum)
{
this.productsNum=productsNum;
}
public double getProductPrice()
{
return productPrice;
}
public void setProductPrice(double productPrice)
{
this.productPrice=productPrice;
}
} 有一个jsp页面:
<%@ page import="ajax.biz.*" contentType="text/html;charset=utf-8"%>
<%try{
Product product=new Product("p1001");
out.println(product.getProductName());
out.println(product.getProductsNum());
out.println(product.getProductId());
}
catch(Exception e)
{
out.println(e.toString());
}
%>
这个jsp页面的输出结果为什么是null 0 null?
while(rs.next())
{
this.productId=rs.getString(1);
this.productName=rs.getString(2);
this.productPrice=rs.getDouble(3);
this.productsNum=1;
}
while(rs.next) //就是 将rs全部进行读取
if(rs.next) //rs进行读取一次 判断是否有数据
con=java.sql.DriverManager.getConnection("jdbc:mysql://localhost/ajax?useUnicode=true&CharacterEncoding=utf-8","root","123");
public Bean()
{
}
private String DbName = "nacs";
private String pass = "";
private String url = "";
private Connection con = null;
private Statement stmt = null;
private ResultSet rs = null;public Connection getConn()
{
try
{
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
url ="jdbc:mysql://localhost/"+DbName+"?user=root&password="+pass+"&useUnicode=true&characterEncoding=UTF-8";
con= DriverManager.getConnection(url);
stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
}
catch (Exception e)
{
e.printStackTrace();
}
return con;
}public ResultSet selectLog(String sql)
{
try
{
rs = stmt.executeQuery(sql);
}
catch(Exception e)
{
System.out.println(e.toString());
}
return rs;
}public int updateLog(String sql)
{
int count=0;
try
{
Statement stmt= con.createStatement();
count= stmt.executeUpdate(sql);
}
catch (Exception e)
{
}
return count;
}public void close()
{
try
{
con.close();
stmt.close();
}
catch (SQLException e)
{
}
}
}
这个是mysql的连接 你还要去下一个连接驱动
{
Class.forName("org.gjt.mm.mysql.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost/ajax?useUnicode=true&CharacterEncoding=utf-8","root","123");
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,productId);
rs=pstmt.executeQuery();
if(rs.next())
{
System.out.println("ok");----------->看看是否进这个if了
this.productId=rs.getString(1);
this.productName=rs.getString(2);
this.productPrice=rs.getDouble(3);
this.productsNum=1;
}
rs.close();
pstmt.close();
conn.close();
System.out.println(productId+" "+productName+" "+productPrice );-->再看看这里输出什么
}
然后再看下你rs.NEXT()是否执行.
饿~~~~~~~~7楼正解
{
this.productId=rs.getString(1);
this.productName=rs.getString(2);
this.productPrice=rs.getDouble(3);
this.productsNum=1;
}
if改成while