Spring MVC와 Hibernate를 사용하여 응용 프로그램을 빌드하는 방법을 배우려고합니다. 현재 MySQL 데이터베이스에 체크 박스 값을 삽입하는 데 어려움을 겪고 있습니다. Spring MVC에서 데이터베이스에 체크 박스 값 삽입하기
내 데이터베이스 테이블 구조
은 같다 다음근본 원인
은 java.sql.SQLException : 내 양식을 채우고 난이 오류 메시지가 제출 명중
id name interest
: 잘못된 문자열 값 : 1 행의 'interest'열에 대해 '\ xAC \ xED \ x00 \ x05ur ...'com.mysql.jdbc.SQLError.createSQLException (SQLError.java:1084) com.mysql.jdbc. MysqlIO.checkErrorPacket (Mys
id name interest
1 Steve PHP
2 Steve Java
3 Wuagh C#
4 Wuagh PHP
가 어떻게이를 말해 주 시겠어요 : 삽입 한 후에는 다음과 같아야 qlIO.java:4232)
나는 나의 테이블에 값을 삽입하려고? 그리고 가능하다면 어떻게하면 이것을 달성 할 수 있을까요?
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; }
}
,363,210
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);
}
}