Java 使用onetomany将表单中的数据插入数据库,也可以根据所选值在行中插入多个seatNo

Java 使用onetomany将表单中的数据插入数据库,也可以根据所选值在行中插入多个seatNo,java,html,spring,Java,Html,Spring,我需要在数据库中插入表单中的数据。还需要使用一个omany映射,以便插入总线seatno的多个行值。用户应该能够从addbus.jsp的下拉框中选择总座位数,并根据所选值将数据插入sideA表中。如果用户在下拉选项中选择no 4,则在sideA表中,应在不同行的seatNo列中插入表1、2、3和4的值 java BusController.java java 包edu.abc.test.daos; 导入java.util.List; 导入edu.abc.test.models.Bus; 公共接口

我需要在数据库中插入表单中的数据。还需要使用一个omany映射,以便插入总线seatno的多个行值。用户应该能够从addbus.jsp的下拉框中选择总座位数,并根据所选值将数据插入sideA表中。如果用户在下拉选项中选择no 4,则在sideA表中,应在不同行的seatNo列中插入表1、2、3和4的值

java

BusController.java

java

包edu.abc.test.daos;
导入java.util.List;
导入edu.abc.test.models.Bus;
公共接口总线{
公共长插页(巴士);
public ListgetAll();
公交车接送(长id);
}
BusDaoImpl.java
包edu.abc.test.daos;
导入java.util.List;
导入javax.annotation.Resource;
导入org.hibernate.Criteria;
导入org.hibernate.Session;
导入org.hibernate.SessionFactory;
导入org.springframework.stereotype.Repository;
导入org.springframework.transaction.annotation.Transactional;
导入edu.abc.test.models.Bus;
@存储库
公共类BusDaoImpl实现BusDao{
@资源
私人会话工厂会话工厂;
@凌驾
@交易的
公共长插页(公共汽车){
Session Session=sessionFactory.getCurrentSession();
Long id=(Long)session.save(总线);
返回id;
}
@凌驾
公共列表getAll(){
Session Session=sessionFactory.openSession();
条件=session.createCriteria(Bus.class);
List busList=criteria.List();
返回总线列表;
}
@凌驾
@交易的
公共巴士站(长id){
Session Session=sessionFactory.getCurrentSession();
总线=(总线)会话.get(总线类,id);
回程巴士;
}
}
addBus.jsp


添加总线
添加总线
公共汽车号码
A1面
6.
10
12
14
16
package edu.abc.test.models;    
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name = "addbus")
public class Bus {
    @Id
    @GeneratedValue
    @Column(name = "Bus_ID")
    private Long id;
    @Column(name = "Bus_No")
    private String busNo;
    @OneToMany(cascade = {CascadeType.ALL})
    @JoinColumn(name = "bus_ID")
    private List<SideA> sideA;  
    /*Getters and setters*/
  }
package edu.abc.test.models;    
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name = "sideA")
public class SideA {
    @Id
    @GeneratedValue
    @Column(name = "sideA_ID")
    private Long id;
    @ManyToOne
    @JoinColumn(name = "bus_ID", insertable = false,  updatable = false,nullable = false)
    private Bus bus;
    @Column(name = "Seat_No")
    private int seatNo;
    @Column(name = "Status",columnDefinition = "enum('Available','Taken')             default 'Available'")
    @Enumerated(value = EnumType.STRING)
    private Status status = Status.Available;
    /*Getter and setters*/
    public enum Status{
        Available,
        Taken
    }
}
package edu.abc.test;    
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import edu.abc.test.daos.BusDao;
import edu.abc.test.models.Bus;

@Controller
public class BusController {
    //private static final Logger logger = LoggerFactory.getLogger(BusController.class);

    @Autowired
    private BusDao busDao;

    @RequestMapping(value = "adBus",method = RequestMethod.GET)
    public String addBus(Model model){
        model.addAttribute("bus",new Bus());
        return "addBus";
    }

    @RequestMapping(value = "adBus", method = RequestMethod.POST)
    public String insert(@ModelAttribute Bus bus,Model model){
        busDao.insert(bus);
        model.addAttribute("bus",new Bus());
        return "addBus";
    }
}
package edu.abc.test.daos;    
import java.util.List;    
import edu.abc.test.models.Bus;    

public interface BusDao {
    public Long insert(Bus bus);
    public List<Bus>getAll();
    public Bus get(Long id);
}

BusDaoImpl.java

package edu.abc.test.daos;    
import java.util.List;    
import javax.annotation.Resource;    
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import edu.abc.test.models.Bus;

@Repository
public class BusDaoImpl implements BusDao{
    @Resource
    private SessionFactory sessionFactory;

    @Override
    @Transactional
    public Long insert(Bus bus) {
        Session session = sessionFactory.getCurrentSession();
        Long id = (Long) session.save(bus);
        return id;
    }

    @Override
    public List<Bus> getAll() {
        Session session = sessionFactory.openSession();
        Criteria criteria = session.createCriteria(Bus.class);
        List<Bus> busList = criteria.list();
        return busList;
    }

    @Override
    @Transactional
    public Bus get(Long id) {
        Session session = sessionFactory.getCurrentSession();
        Bus bus = (Bus) session.get(Bus.class, id);
        return bus;
    }

}
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
   <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
    <%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Add Bus</title>
</head>
<body>
    <div class = "body">
        <form:form method="POST" modelAttribute="bus">
            <table>
                <tr>
                    <td colspan ="2"><h2>Add Bus</h2></td>
                </tr>
            <tr>
                <td> <form:label path="busNo">Bus No</form:label> </td>
                <td> <form:input path="busNo"/> </td>
            </tr>
            <tr>
                <td> <form:label path="sideA.seatNo">Side A1</form:label> </td>
                <td> <form:select path="sideA.seatNo">
                        <form:option value="6">6</form:option>  
                        <form:option value="10">10</form:option>    
                        <form:option value="12">12</form:option>    
                        <form:option value="14">14</form:option>
                        <form:option value="16">16</form:option>        
                     </form:select> </td>
            </tr>
            <tr>
            <td colspan="2"> <input type="submit" value = "Save"> </td>
            </tr>
        </table>
    </form:form>
    </div>
</body>
</html>