mybatis简单使用
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>