dimanche 3 mai 2015
Daten einer Datenbank in ein Formular einfügen
Posted on 19:43 by verona
Hey,
Mein Problem ist folgendes:
Ich habe Daten zu verschiedenen Räumen gespeichert in einer MySQL-Datenbank. Ich verwende JPA für die Kommunikation mit der DB.
Ich habe also eine Entität "Raum"
Um diese Entität zu verwalten, habe ich eine Manager, und eine Handlerklasse:
Super wäre, wenn ich nun einen Eintrag zu den Räumen aus der Datenbank in ein Formular eintragen kann, welches so aufgebaut ist:
Ich hab echt keinen Schimmer, wie ich das Formular befüllen kann.
Mein Problem ist folgendes:
Ich habe Daten zu verschiedenen Räumen gespeichert in einer MySQL-Datenbank. Ich verwende JPA für die Kommunikation mit der DB.
Ich habe also eine Entität "Raum"
Java Code:
-
-
package model;
-
-
import java.io.Serializable;
-
-
import javax.enterprise.context.RequestScoped;
-
import javax.inject.Named;
-
import javax.persistence.*;
-
-
import org.hibernate.validator.constraints.NotEmpty;
-
-
import java.util.List;
-
-
-
/**
-
* The persistent class for the raum database table.
-
*
-
*/
-
@Named
-
@RequestScoped
-
@NamedQuery(name="Raum.findAll", query="SELECT r FROM Raum r")
-
private static final long serialVersionUID = 1L;
-
-
@Id
-
@GeneratedValue(strategy=GenerationType.IDENTITY)
-
private int raumOID;
-
-
-
-
//bi-directional many-to-many association to Behandlung
-
@ManyToMany(mappedBy="raums")
-
private List<Behandlung> behandlungs;
-
-
//bi-directional many-to-one association to Praxi
-
@ManyToOne
-
@JoinColumn(name="PraxisOID")
-
private Praxi praxi;
-
-
//bi-directional many-to-one association to Termin
-
@OneToMany(mappedBy="raum")
-
private List<Termin> termins;
-
-
public Raum() {
-
}
-
-
public int getRaumOID() {
-
return this.raumOID;
-
}
-
-
public void setRaumOID(int raumOID) {
-
this.raumOID = raumOID;
-
}
-
-
return this.aktiv;
-
}
-
-
this.aktiv = aktiv;
-
}
-
-
return this.bezeichnung;
-
}
-
-
this.bezeichnung = bezeichnung;
-
}
-
-
public List<Behandlung> getBehandlungs() {
-
return this.behandlungs;
-
}
-
-
public void setBehandlungs(List<Behandlung> behandlungs) {
-
this.behandlungs = behandlungs;
-
}
-
-
public Praxi getPraxi() {
-
return this.praxi;
-
}
-
-
public void setPraxi(Praxi praxi) {
-
this.praxi = praxi;
-
}
-
-
public List<Termin> getTermins() {
-
return this.termins;
-
}
-
-
public void setTermins(List<Termin> termins) {
-
this.termins = termins;
-
}
-
-
public Termin addTermin(Termin termin) {
-
getTermins().add(termin);
-
termin.setRaum(this);
-
-
return termin;
-
}
-
-
public Termin removeTermin(Termin termin) {
-
getTermins().remove(termin);
-
termin.setRaum(null);
-
-
return termin;
-
}
-
-
public Raum clone()
-
{
-
Raum r = new Raum();
-
r.setAktiv(this.getAktiv());
-
r.setBehandlungs(this.getBehandlungs());
-
r.setBezeichnung(this.getBezeichnung());
-
r.setPraxi(this.getPraxi());
-
r.setRaumOID(this.getRaumOID());
-
r.setTermins(this.getTermins());
-
return r;
-
}
-
-
@Override
-
if(a.equals(b))
-
{
-
return true;
-
}
-
return false;
-
}
-
-
}
Um diese Entität zu verwalten, habe ich eine Manager, und eine Handlerklasse:
Java Code:
-
-
-
-
import java.util.Iterator;
-
import java.util.List;
-
-
import javax.ejb.Stateless;
-
import javax.inject.Inject;
-
import javax.persistence.EntityManager;
-
import javax.persistence.PersistenceContext;
-
import javax.persistence.Query;
-
-
import model.Behandlung;
-
import model.Raum;
-
-
-
@Stateless
-
public class RaumManager {
-
-
@PersistenceContext
-
private EntityManager em;
-
@Inject
-
private SessionBeanManager sessionBean;
-
-
public Raum updateRaum(int id)
-
{
-
Raum r = getRaumById(id);
-
r.setBezeichnung("Pups2");
-
em.merge(r);
-
//em.refresh(r);
-
return r;
-
}
-
-
public Raum save(Raum raum)
-
{
-
em.persist(raum);
-
em.flush();
-
List<Behandlung> l = raum.getBehandlungs();
-
for (Iterator<Behandlung> iterator = l.iterator(); iterator.hasNext();) {
-
Behandlung type = (Behandlung) iterator.next();
-
Query q = em.createNativeQuery("INSERT INTO raumbehandlung VALUES(" + raum.getRaumOID() + ", " + type.getBehandlungOID() + ")");
-
q.executeUpdate();
-
}
-
-
return raum;
-
}
-
-
@SuppressWarnings("unchecked")
-
public List<Raum> getRaums() {
-
Query query = em.createNativeQuery("SELECT * FROM raum WHERE PraxisOID = " + sessionBean.getPraxis().getPraxisOID(), Raum.class);
-
return query.getResultList();
-
}
-
-
public Raum getRaumById(int id)
-
{
-
Query query = em.createNativeQuery("SELECT * FROM raum WHERE RaumOID = " + id + " AND PraxisOID = " + sessionBean.getPraxis().getPraxisOID(), Raum.class);
-
try{
-
return (Raum) query.getSingleResult();
-
}
-
{
-
return null;
-
}
-
-
}
-
-
public void delete(int id)
-
{
-
em.remove(this.getRaumById(id));
-
}
-
}
Java Code:
-
-
-
-
import java.io.Serializable;
-
import java.util.Iterator;
-
import java.util.List;
-
-
import javax.ejb.EJB;
-
import javax.enterprise.context.RequestScoped;
-
import javax.faces.event.ActionEvent;
-
import javax.inject.Inject;
-
import javax.inject.Named;
-
-
import model.Behandlung;
-
import model.Raum;
-
import de.fhswf.kositza.manager.RaumManager;
-
import de.fhswf.kositza.manager.SessionBeanManager;
-
-
@Named
-
@RequestScoped
-
-
/**
-
*
-
*/
-
private static final long serialVersionUID = 8665180820620170277L;
-
-
private int updateRaum;
-
@Inject
-
private Raum raum;
-
-
@Inject
-
private SessionBeanManager sessionBean;
-
-
private int updateID;
-
-
@EJB
-
private RaumManager manager;
-
-
// Flags
-
private boolean successFlag = false;
-
-
{
-
List<Behandlung> l = raum.getBehandlungs();
-
for (Iterator<Behandlung> iterator = l.iterator(); iterator.hasNext();) {
-
Behandlung type = (Behandlung) iterator.next();
-
-
}
-
raum.setPraxi(sessionBean.getPraxis());
-
raum.setAktiv("1");
-
manager.save(raum.clone());
-
-
setSuccessFlag(true);
-
}
-
-
-
public void deleteRaum(int id)
-
{
-
manager.delete(id);
-
}
-
-
public void output()
-
{
-
}
-
public void update(int id)
-
{
-
updateRaum = id;
-
Raum r = getRaumById(id);
-
r.setPraxi(sessionBean.getPraxis());
-
r.setAktiv("1");
-
r.setRaumOID(id);
-
raum = manager.updateRaum(id);
-
}
-
-
public Raum getRaumById(int id)
-
{
-
try {
-
-
return raum;
-
}
-
{
-
return null;
-
}
-
}
-
-
public List<Raum> getRaums()
-
{
-
return manager.getRaums();
-
}
-
-
public boolean isSuccessFlag() {
-
return successFlag;
-
}
-
-
public void setSuccessFlag(boolean successFlag) {
-
this.successFlag = successFlag;
-
}
-
-
-
public int getUpdateID() {
-
return updateID;
-
}
-
-
-
public void doUpdateID(int updateID) {
-
-
this.updateID = updateID;
-
}
-
-
}
Super wäre, wenn ich nun einen Eintrag zu den Räumen aus der Datenbank in ein Formular eintragen kann, welches so aufgebaut ist:
HTML-Code:
<h:form>
<span class="beforeinput fa fa-user"></span>
<h:inputText id="bezeichnung"
class="validationToolTip checkForEmpty"
value="#{raum.bezeichnung}"
p:placeholder="Bezeichnung" />
<h:message for="bezeichnung" errorClass="errorText"/>
<br/>
<div class="behandlungenCheckbox">
<h4>Behandlungen wählen:</h4>
<h:selectManyCheckbox value="#{raum.behandlungs}" converter="BehandlungConverter">
<c:forEach items="${behandlungHandler.behandlungen}" var="item">
<f:selectItem itemValue="${item.behandlungOID}" itemLabel="${item.bezeichnung}"/>
</c:forEach>
<f:converter converterId="BehandlungConverter"/>
</h:selectManyCheckbox>
</div>
<br/>
<span class="beforeinput fa fa-check"></span>
<h:commandButton actionListener="#{ raumHandler.createRaum}" value="Anlegen">
<f:ajax execute="@form" render="@all"></f:ajax>
</h:commandButton>
<span class="beforeinput fa fa-trash"></span>
<h:commandButton p:type="reset" value="Abbrechen"></h:commandButton>
<h:outputScript library="js/Validation" name="Validation.js"></h:outputScript>
</h:form>
Daten einer Datenbank in ein Formular einfügen
Categories: Daten einer Datenbank in ein Formular einfügen
Inscription à :
Publier les commentaires (Atom)
0 commentaires:
Enregistrer un commentaire