abbilde Ich habe mit enum für eine Weile jetzt gekämpft, aber es wird nicht meinen Weg gehen. Gibt es jemanden, der mir einen Hinweis geben kann? Ich versuche, Enum-Typ in MySql zu verwenden, und ich verwende auch eine Enum-Klasse in meinem Code.Wie man Enum-Typ in mybatis mit typeHandler auf Einfügung
Wie der Code jetzt ist Es wird MONTAG einfügen, aber es wird auch versuchen, MONTAG auf ArbeitstagID einfügen ... Ich bekomme nicht die ArbeitstagID. Ich glaube, ich muss mit dem DAY_TYPE in gewisser Weise umgehen ... definieren Sie einen TypHandler vielleicht ?? aber ich habe das versucht und es würde nicht funktionieren, oder es ist, weil ich es nicht richtig machen kann?
Ich habe auch versucht die org.apache.ibatis.type.EnumTypeHandler aber ohne Erfolg, wie dieser
#{DAY_TYPE,typeHandler=org.apache.ibatis.type.EnumTypeHandler}
DAY_TYPE.java
package tut.model;
import java.io.Serializable;
public enum DAY_TYPE implements Serializable{
MONDAY(1),TUESDAY(2),WEDNESDAY(3),THURSDAY(4),FRIDAY(5),SATURDAY(6),SUNDAY(7);
private int id; private int workdayID;
private DAY_TYPE(int id) { this.id = id; }
public int getId() { return id; }
public void setId(int id) { this.id = id; }
public int getWorkdayID() { return workdayID; }
public void setWorkdayID(int workdayID) {this.workdayID = workdayID;}
}
DAY_TYPE_Mapper.xml
<insert id="insert" parameterType="DAY_TYPE" useGeneratedKeys="true" keyProperty="iddaytaype">
INSERT INTO daytaype (DAY_TYPE, workdayID)
VALUES (#{DAY_TYPE},#{workdayID})
<selectKey keyProperty="iddaytaype" resultType="long" order="AFTER">
SELECT LAST_INSERT_ID();
</selectKey>
</insert>
<!-- <insert id="insert" parameterMap="insert-params" useGeneratedKeys="true" keyProperty="iddaytaype"> -->
<parameterMap id="insert-params" type="DAY_TYPE">
<parameter property="DAY_TYPE" javaType="DAY_TYPE" typeHandler="mappings.XenumTypeHandler" />
<parameter property="workdayID" javaType="int" />
</parameterMap>
Meine Datenbanktabelle
CREATE TABLE `daytaype` (
`iddaytaype` int(11) NOT NULL AUTO_INCREMENT,
`DAY_TYPE` enum('MONDAY','TUESDAY','WEDNESDAY','THURSDAY','FRIDAY','SATURDAY','SUNDAY') NOT NULL,
`workdayID` int(11) unsigned DEFAULT NULL,
PRIMARY KEY (`iddaytaype`),
KEY `fk_workDayID_idWorkDay` (`workdayID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;=InnoDB DEFAULT CHARSET=utf8;
Vielleicht kann man enum nicht als ParameterType verwenden? Wie diese 'parameterType =" DAY_TYPE "' – user2279869
Ok, jemand? Sag mir wenigstens, wenn ich ungeduldig bin oder meine Hausaufgaben nicht gemacht habe oder etwas anderes fehlt, und ja ich weiß, dass manche Leute sagen, dass man normalerweise keinen Enum-Wert im Code speichert und in der Datenbank nur die ID. – user2279869
http://stackoverflow.com/questions/10219253/mybatis-enum-usage – jalopaba