我想學習如何使用Spring MVC和Hibernate構建應用程序。目前我堅持將複選框值插入MySQL數據庫。在Spring MVC中插入複選框值到數據庫中
我的數據庫表結構就像是以下幾點:
id name interest
當我填寫了我的形式和點擊提交我收到此錯誤信息:
根源
值java.sql.SQLException :不正確的字符串值:'\ xAC \ xED \ x00 \ x05ur ...'用於第1行'interest'列 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1084) com.mysql.jdbc。 MysqlIO.checkErrorPacket(MYS qlIO.java:4232)
我想在我的表中插入值,以便插入後,它看起來像如下:
id name interest
1 Steve PHP
2 Steve Java
3 Wuagh C#
4 Wuagh PHP
你能告訴我如何實現這一目標?如果可能的話,你是否也可以告訴我我怎樣才能做到這一點?
id name interest
1 Steve PHP, Java
2 Wuagh C#, PHP
請參考下面我的代碼
我的表格:
<c:url var="action" value="/register" ></c:url>
<form:form action="${action}" modelAttribute="subscriber" method="POST" >
<div>
<label>Name</label>
<form:input path="name"/>
<form:errors path="name" cssClass="error"/>
</div>
<div>
<label>Interests</label>
<form:checkboxes path="interest" items="${records.interests}"/>
</div>
<input type="submit" value="Submit">
</form:form>
控制器:
package com.spring.org;
@Controller
public class HomeController {
@Autowired
private SubscriberService subService;
@RequestMapping(value="/register", method= RequestMethod.GET)
public ModelAndView RegistrationForm(@ModelAttribute Subscriber subscriber, BindingResult result)
{
HashMap<Integer, String> interest = new HashMap<Integer, String>();
interest.put(1,"Java");
interest.put(2,"PHP");
interest.put(3, "C#");
return new ModelAndView("regForm", "records", interest);
}
@RequestMapping(value="/register", method= RequestMethod.POST)
public ModelAndView RegistrationFormSubmit(@ModelAttribute("subscriber") @Valid Subscriber subscriber, BindingResult result)
{
if (result.hasErrors()) {
return new ModelAndView("regForm");
}
else
{
subService.addSubscriber(subscriber);
return new ModelAndView("redirect:/showList");
}
}
}
模式 - 用戶
@Entity
@Table(name = "PERSON", schema = "java2")
public class Subscriber {
@Id
@Column(name="ID")
@GeneratedValue
private int id;
@NotEmpty(message = "Please enter your Name.")
private String name;
private String[] interest;
public String getName() {return name;}
public void setName(String name) { this.name = name; }
public String[] getInterest() { return interest; }
public void setInterest(String[] interest) { this.interest = interest; }
}
SubscribeService實現:
@Service
public class SubscriberServiceImpl implements SubscriberService{
@Autowired
private SubscriberDao subsDao ;
@Override
public void addSubscriber(Subscriber subscriber) {
subsDao.addSubscriber(subscriber);
}
}
SubscriberDao實現:
@Repository
public class SubscriberDaoImpl implements SubscriberDao {
@Autowired
private SessionFactory sessionFactory ;
public SessionFactory getSessionFactory() {
return sessionFactory;
}
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
@Override
public void addSubscriber(Subscriber subscriber) {
getSessionFactory().openSession().save(subscriber);
}
}