mybatis简单使用

简单CURD

User.java:

public class User {

    private String id;
    private String name;
    private String post;
    private Integer age;

    // set and get ...
}

UserDao.java:

public interface UserDao {

    public boolean create(User user);

    public int update(@Param("id") String id,@Param("name")  String name,@Param("age") int age);

    public boolean drop(int id);

    public User findById(int id);

    public List<User> find();
}

userDao.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

<mapper namespace="teclan.springboot.mybatis.UserDao">
    <resultMap id="userResult" type="teclan.springboot.model.User">
        <result column="id" property="id" jdbcType="VARCHAR" />
        <result column="name" property="name" jdbcType="VARCHAR" />
        <result column="post" property="post" jdbcType="VARCHAR" />
        <result column="age" property="age" jdbcType="INTEGER" />
    </resultMap>

    <select id="findById" resultType="teclan.springboot.model.User">
        select * from users where id = #{id}
    </select>

    <select id="find" resultMap="userResult">
        select * from users
    </select>

    <insert id="create" parameterType="teclan.springboot.model.User">
        insert into users (id,name,post,age) values (#{id},#{name},#{post},#{age})
    </insert>

    <update id="update" >
        update users set name=#{name},age=#{age} where id=#{id}
    </update>

    <delete id="drop" >
        delete from users where id=#{id}
    </delete>

</mapper>

进阶

ActivityPojo.java

public class ActivityPojo {
    private int id ;
    private int pid;
    private String userId;
    private String name;
    private int score;
    @JsonDeserialize(using= DateJsonDeserializer.class)
    @JsonSerialize(using= DateJsonSerializer.class)
    private Date endTime;
    private String detail;
    private  String assessmentIndex;
    private String pushUnitId;
    private String pushUnitNames;
    private String fileNames;
    private int countType;
    private String countFormId;
    private String countMeetIds;
    private int type;
    private int status;
    private Date time;

    // set and get ...  
}

ActivityMapper.java

public interface ActivityMapper {
    void addActivity(ActivityPojo pojo);

    @Select("SELECT id,name,endTime,score,pid,type,status FROM theme_activity WHERE pid=#{pid} and status>=#{status}")
    List<ActivityPojo> queryByPidAndStatus(@Param("pid")String pid,@Param("status")String status);

    void updateCollectForm(CollectForm pojo);
}

ActivityMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mapper.ActivityMapper">

<sql id="columns">
        pid,userId,name,score,endTime,detail,assessmentIndex,pushUnitId,pushUnitNames,fileNames,countType,countFormId,countMeetIds,type,status,time
    </sql>

<sql id="properties">
        #{pid},#{userId},#{name},#{score},#{endTime},#{detail},#{assessmentIndex},#{pushUnitId},#{pushUnitNames},#{fileNames},#{countType},#{countFormId},#{countMeetIds},#{type},#{status},#{time}
    </sql>

<insert id="addActivity" keyProperty="id"
        useGeneratedKeys="true" parameterType="po.activity.ActivityPojo">
        insert into theme_activity (
        <include refid="columns" />
        ) values (
        <include refid="properties" />
        )
    </insert>

<sql id="queryColumnsSimple">
        id,pid,userId,name,type,status
    </sql>

    <update id="update" parameterType="po.activity.ActivityPojo">
        update theme_activity
        <trim prefix="set" suffixOverrides=",">
            pid=#{pid},
            userId=#{userId},
            name=#{name},
            score=#{score},
            endTime=#{endTime},
            detail=#{detail},
            assessmentIndex=#{assessmentIndex},
            pushUnitId=#{pushUnitId},
            pushUnitNames=#{pushUnitNames},
            fileNames=#{fileNames},
            countType=#{countType},
            countFormId=#{countFormId},
            countMeetIds=#{countMeetIds},
            type=#{type},
            status=#{status}
        </trim>
        where id=#{id}
    </update>