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>