关于JSP里数据库操作的有关sql语句的问题,急,在线等!
核心代码是这样的:try{Stringbname=request.getParameter("bname");Stringauthor=request.getParame...
核心代码是这样的:
try{
String bname=request.getParameter("bname");
String author=request.getParameter("author");
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/db_database09";
String username = "root";
String password = "jyl123JYL123";
Connection conn = DriverManager.getConnection(url,username,password);
Statement stmt = conn.createStatement();
String sql = "select number from tb_book where (bname="+bname+" and author="+author+") or bname="+bname+" or author="+author+" ";
ResultSet rs = stmt.executeQuery(sql);
List list=new ArrayList<bookbean>();
while(rs.next()){
bookbean book = new bookbean();
book.setId(rs.getInt("id"));
book.setBname(rs.getString("bname"));
book.setAuthor(rs.getString("author"));
book.setNumber(rs.getInt("number"));
book.setPrice(rs.getDouble("price"));
list.add(book);
}
request.setAttribute("list", list);
rs.close();
stmt.close();
conn.close();
我想实现的操作是显示查找书目的信息,而查找的时候可以漏填信息,也可以填全,所以其中的sql语句是那样的,现在的问题是编译能通过,也能跳转到页面,但是跳转之后的页面没有数据!我觉得是sql语句的不对导致没有结果,求大神给个解释能不能实现我要的那个操作 展开
try{
String bname=request.getParameter("bname");
String author=request.getParameter("author");
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/db_database09";
String username = "root";
String password = "jyl123JYL123";
Connection conn = DriverManager.getConnection(url,username,password);
Statement stmt = conn.createStatement();
String sql = "select number from tb_book where (bname="+bname+" and author="+author+") or bname="+bname+" or author="+author+" ";
ResultSet rs = stmt.executeQuery(sql);
List list=new ArrayList<bookbean>();
while(rs.next()){
bookbean book = new bookbean();
book.setId(rs.getInt("id"));
book.setBname(rs.getString("bname"));
book.setAuthor(rs.getString("author"));
book.setNumber(rs.getInt("number"));
book.setPrice(rs.getDouble("price"));
list.add(book);
}
request.setAttribute("list", list);
rs.close();
stmt.close();
conn.close();
我想实现的操作是显示查找书目的信息,而查找的时候可以漏填信息,也可以填全,所以其中的sql语句是那样的,现在的问题是编译能通过,也能跳转到页面,但是跳转之后的页面没有数据!我觉得是sql语句的不对导致没有结果,求大神给个解释能不能实现我要的那个操作 展开
1个回答
展开全部
这种情况下,最好在executeQuery之前直接“拼接”一个准确的sql语句供数据库查询,而不是使用如此模糊的查询语句。
追问
兄弟,敢不敢给个明确点的……应该怎改!?
追答
string sqlcmd = "select * from " + lstTables.SelectedItem.ToString();
string[] ArrName = txtName.Text.Split(new char[] { ' ', ',' });
//如果查询条件区域已填写内容,开始拼接
if (cmbCun.Text.Length!=0 || cmbZhen.Text.Length !=0||txtFamilyNo.TextLength !=0 || txtCID.TextLength!=0||txtName.TextLength!=ArrName.Length-1)
{
sqlcmd+=" where";
}
//查询乡镇
if (cmbZhen.Text.Length != 0)
{
sqlcmd += " 乡镇='" + cmbZhen.Text + "'";
}
字数限制了,贴不上太多代码,大体看看吧,后面还有很多,发不上来了。
感觉有帮助的话请采纳哦~~
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询