我正在尝试使用搜索页面创建一个简单的Web应用程序。我已经实现了CRUD部分,并且可以正常工作。我是编码新手。搜索选项出现问题。错误-“ java.lang.NumberFormatException:对于输入字符串:” ISBN“”
我需要根据给定的搜索条件获取数据列表。
<b>Hello</b> <i><u>stack</u></i> look https://zh.wikipedia.org/wiki/%E9%A3%9E%E9%B9%B01%E7%BE%8E%E5%88%86%E7%A1%AC%E5%B8%81
Database table name = Items
Columns
* id - primary key
* ISBN - String
* title - String
category_id - String (I changed this from Int to String as I decided to use the book name instead,to make it simple. So this is not an ID its basically the book name so it's kept as a String)
* Author - String
* publisher_id - String (same logic as category_id)
* price - FLOAT
* stock - INT
* photo_id - INT
ItemsController.java
DB DESC
IteamsDAO
@RequestMapping(value ="/search_1")
public ModelAndView search_1(HttpServletRequest request,HttpServletResponse response) {
String category_id = request.getParameter("category_id");
String publisher_id = request.getParameter("publisher_id");
List<Items> listItems2 = ItemsService.searchitems(category_id,publisher_id);
ModelAndView model = new ModelAndView();
model.setViewName("searchResult");
model.addObject("items",listItems2);
return model;
}
ItemsDAOImpl
package com.jwt.dao;
import java.util.List;
import com.jwt.model.Items;
public interface ItemsDAO {
public void additems(Items items);
public List<Items> getallitems();
public void deleteitems(Integer itemsId);
public Items updateitems(Items items);
public Items getitems(int itemsId);
public List<Items> searchitems(String category_id,String publsiher_id);
}
Items.java
package com.jwt.dao;
import java.util.List;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import com.jwt.model.Items;
@Repository ("ItemsDAO")
public class ItemsDAOImpl implements ItemsDAO {
@Autowired
private SessionFactory sessionFactory;
public void additems(Items items) {
sessionFactory.getcurrentSession().saveOrupdate(items);
}
@SuppressWarnings("unchecked")
public List<Items> getallitems() {
return sessionFactory.getcurrentSession().createQuery("from Items")
.list();
}
@Override
public void deleteitems(Integer itemsId) {
Items items = (Items) sessionFactory.getcurrentSession().load(
Items.class,itemsId);
if (null != items) {
this.sessionFactory.getcurrentSession().delete(items);
}
}
public Items getitems(int itemsId) {
return (Items) sessionFactory.getcurrentSession().get(
Items.class,itemsId);
}
@Override
public Items updateitems(Items items) {
sessionFactory.getcurrentSession().update(items);
return items;
}
@SuppressWarnings("unchecked")
public List<Items> searchitems(String category_id,String publsiher_id) {
return sessionFactory.getcurrentSession().createQuery("from Items E where E.category_id = category_id AND E.publisher_id=publisher_id")
.list();
}
}
ItemsService.java
package com.jwt.model;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "items")
public class Items implements Serializable {
private static final long serialVersionUID = -3465813074586302847L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column
private String ISBN;
@Column
private String title;
@Column
private String category_id;
@Column
private String Author;
@Column
private String publisher_id;
@Column
private float price;
@Column
private int stock;
@Column
private int photo_id;
public int getid() {
return id;
}
public void setid(int id) {
this.id = id;
}
public String getISBN() {
return ISBN;
}
public void setISBN(String ISBN) {
this.ISBN = ISBN;
}
public String gettitle() {
return title;
}
public void settitle(String title) {
this.title = title;
}
public String getcategory_id() {
return category_id;
}
public void setcategory_id( String category_id) {
this.category_id = category_id;
}
public String getauthor() {
return Author;
}
public void setauthor(String Author) {
this.Author = Author;
}
public String getpublisher_id() {
return publisher_id;
}
public void setpublisher_id(String publisher_id) {
this.publisher_id = publisher_id;
}
public float getprice() {
return price;
}
public void setprice(float price) {
this.price = price;
}
public int getstock() {
return stock;
}
public void setstock(int stock) {
this.stock = stock;
}
public int getphoto_id() {
return photo_id;
}
public void setphoto_id(int photo_id) {
this.photo_id = photo_id;
}
}
ItemsServiceImpl.java
package com.jwt.service;
import java.util.List;
import com.jwt.model.Items;
public interface ItemsService {
public void additems(Items items);
public List<Items> getallitems();
public void deleteitems(Integer itemsId);
public Items updateitems(Items items);
public Items getitems(int itemsId);
public List<Items> searchitems(String category_id,String publsiher_id);
}
输入搜索JSP页面
search_1.jsp
package com.jwt.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.jwt.dao.ItemsDAO;
import com.jwt.model.Items;
@Service
@Transactional
public class ItemsServiceImpl implements ItemsService {
@Autowired
private ItemsDAO itemsDAO;
@Override
@Transactional
public void additems(Items items) {
itemsDAO.additems(items);
}
@Override
@Transactional
public List<Items> getallitems() {
return itemsDAO.getallitems();
}
@Override
@Transactional
public void deleteitems(Integer itemsId) {
itemsDAO.deleteitems(itemsId);
}
public Items getitems(int itemsid) {
return itemsDAO.getitems(itemsid);
}
public Items updateitems(Items items) {
// TODO Auto-generated method stub
return itemsDAO.updateitems(items);
}
public void setitemsDAO(ItemsDAO itemsDAO) {
this.itemsDAO = itemsDAO;
}
@Override
@Transactional
public List<Items> searchitems(String category_id,String publsiher_id) {
return itemsDAO.searchitems(category_id,publsiher_id);
}
}
搜索结果将在此处填充
searchResult.jsp
<div align="center">
<h1>Search Items</h1>
<form action="search_1" method="get" modelAttribute="items">
<table>
<tr>
<td>Category:</td>
<td>
<select type="text" name="category_id">
<option value="Book">Book</option>
<option value="Audio Books">Audio Books</option>
<option value="Videos">Videos</option>
<option value="Music">Music</option>
</select>
</td>
</tr>
<tr>
<td>Publisher ID:</td>
<td>
<select type="text" name="publisher_id">
<option value="Harper Collins">Harper Collins</option>
<option value="Penguins">Penguins</option>
<option value="Franciscan Media">Franciscan Media</option>
<option value="Orbis">Orbis</option>
</select>
</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="search"></td>
</tr>
</table>
</form>
</div>
完整的错误消息
<div align="center">
<h1>Book shop Inventory</h1>
<table>
<th>ISBN</th>
<th>Title</th>
<th>Category</th>
<th>Author</th>
<th>Publisher</th>
<th>Price</th>
<th>Stock</th>
<th>Photo</th>
<c:forEach var="items" items="${listItems2}">
<tr>
<td>${items.ISBN}</td>
<td>${items.title}</td>
<td>${items.category_id}</td>
<td>${items.author}</td>
<td>${items.publisher_id}</td>
<td>${items.price}</td>
<td>${items.stock}</td>
<td>${items.photo_id}</td>
</tr>
</c:forEach>
</table>
</br>
<input type="button" class="btn btn-info" value="Search Again" onclick="window.location.href='http://localhost:8080/SpringMVCHibernateCRUD_1/search'">
</div>