首先使用逆向工程创建相关类

数据库表

author

blog

新建一个项目,将逆向工程的生成的拷贝进来

配置文件

log4j.properties

### \u914D\u7F6E\u6839 ###
log4j.rootLogger = debug,console ,fileAppender,dailyRollingFile,ROLLING_FILE,MAIL,DATABASE### \u8BBE\u7F6E\u8F93\u51FAsql\u7684\u7EA7\u522B\uFF0C\u5176\u4E2Dlogger\u540E\u9762\u7684\u5185\u5BB9\u5168\u90E8\u4E3Ajar\u5305\u4E2D\u6240\u5305\u542B\u7684\u5305\u540D ###
log4j.logger.org.apache=dubug
log4j.logger.java.sql.Connection=dubug
log4j.logger.java.sql.Statement=dubug
log4j.logger.java.sql.PreparedStatement=dubug
log4j.logger.java.sql.ResultSet=dubug### \u914D\u7F6E\u8F93\u51FA\u5230\u63A7\u5236\u53F0 ###
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern =  %d{ABSOLUTE} %5p %c{1}:%L - %m%n

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings><setting name="useGeneratedKeys" value="true"/>
</settings>
<typeAliases><!--  <typeAlias type="com.geyao.mybatis.pojo.Blog" alias="Blog"/><typeAlias type="com.geyao.mybatis.pojo.Author" alias="Author"/>--><package name="com.geyao.mybatis.pojo"/><package name="com.geyao.mybatis.mvo"/>
</typeAliases><environments default="development"><environment id="development"><transactionManager type="JDBC" /><!-- 配置数据库连接信息 --><dataSource type="POOLED"><property name="driver" value="com.mysql.cj.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/blog_gp1701?serverTimezone=GMT%2B8" /><property name="username" value="root" /><property name="password" value="123" /></dataSource></environment></environments><mappers><!-- 注册userMapper.xml文件, userMapper.xml位于me.gacl.mapping这个包下,所以resource写成me/gacl/mapping/userMapper.xml--><mapper resource="com/geyao/mybatis/mapper/BlogMapper.xml"/><mapper resource="com/geyao/mybatis/mapper/AuthorMapper.xml"/><mapper resource="com/geyao/mybatis/mapper/BlogMapperCustom.xml"/></mappers></configuration>

com.geyao.mybatis.mapper

BlogMapper.java

package com.geyao.mybatis.mapper;import com.geyao.mybatis.pojo.Blog;
import com.geyao.mybatis.pojo.BlogExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;public interface BlogMapper {int countByExample(BlogExample example);int deleteByExample(BlogExample example);int insert(Blog record);int insertSelective(Blog record);List<Blog> selectByExample(BlogExample example);int updateByExampleSelective(@Param("record") Blog record, @Param("example") BlogExample example);int updateByExample(@Param("record") Blog record, @Param("example") BlogExample example);
}

BlogMapper.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="com.geyao.mybatis.mapper.BlogMapper" ><resultMap id="BaseResultMap" type="com.geyao.mybatis.pojo.Blog" ><result column="id" property="id" jdbcType="INTEGER" /><result column="title" property="title" jdbcType="VARCHAR" /><result column="authod_id" property="authodId" jdbcType="INTEGER" /><result column="state" property="state" jdbcType="VARCHAR" /><result column="featured" property="featured" jdbcType="TINYINT" /><result column="style" property="style" jdbcType="VARCHAR" /></resultMap><sql id="Example_Where_Clause" ><where ><foreach collection="oredCriteria" item="criteria" separator="or" ><if test="criteria.valid" ><trim prefix="(" suffix=")" prefixOverrides="and" ><foreach collection="criteria.criteria" item="criterion" ><choose ><when test="criterion.noValue" >and ${criterion.condition}</when><when test="criterion.singleValue" >and ${criterion.condition} #{criterion.value}</when><when test="criterion.betweenValue" >and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}</when><when test="criterion.listValue" >and ${criterion.condition}<foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >#{listItem}</foreach></when></choose></foreach></trim></if></foreach></where></sql><sql id="Update_By_Example_Where_Clause" ><where ><foreach collection="example.oredCriteria" item="criteria" separator="or" ><if test="criteria.valid" ><trim prefix="(" suffix=")" prefixOverrides="and" ><foreach collection="criteria.criteria" item="criterion" ><choose ><when test="criterion.noValue" >and ${criterion.condition}</when><when test="criterion.singleValue" >and ${criterion.condition} #{criterion.value}</when><when test="criterion.betweenValue" >and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}</when><when test="criterion.listValue" >and ${criterion.condition}<foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >#{listItem}</foreach></when></choose></foreach></trim></if></foreach></where></sql><sql id="Base_Column_List" >id, title, authod_id, state, featured, style</sql><select id="selectByExample" resultMap="BaseResultMap" parameterType="com.geyao.mybatis.pojo.BlogExample" >select<if test="distinct" >distinct</if><include refid="Base_Column_List" />from blog<if test="_parameter != null" ><include refid="Example_Where_Clause" /></if><if test="orderByClause != null" >order by ${orderByClause}</if></select><delete id="deleteByExample" parameterType="com.geyao.mybatis.pojo.BlogExample" >delete from blog<if test="_parameter != null" ><include refid="Example_Where_Clause" /></if></delete><insert id="insert" parameterType="com.geyao.mybatis.pojo.Blog" >insert into blog (id, title, authod_id, state, featured, style)values (#{id,jdbcType=INTEGER}, #{title,jdbcType=VARCHAR}, #{authodId,jdbcType=INTEGER}, #{state,jdbcType=VARCHAR}, #{featured,jdbcType=TINYINT}, #{style,jdbcType=VARCHAR})</insert><insert id="insertSelective" parameterType="com.geyao.mybatis.pojo.Blog" >insert into blog<trim prefix="(" suffix=")" suffixOverrides="," ><if test="id != null" >id,</if><if test="title != null" >title,</if><if test="authodId != null" >authod_id,</if><if test="state != null" >state,</if><if test="featured != null" >featured,</if><if test="style != null" >style,</if></trim><trim prefix="values (" suffix=")" suffixOverrides="," ><if test="id != null" >#{id,jdbcType=INTEGER},</if><if test="title != null" >#{title,jdbcType=VARCHAR},</if><if test="authodId != null" >#{authodId,jdbcType=INTEGER},</if><if test="state != null" >#{state,jdbcType=VARCHAR},</if><if test="featured != null" >#{featured,jdbcType=TINYINT},</if><if test="style != null" >#{style,jdbcType=VARCHAR},</if></trim></insert><select id="countByExample" parameterType="com.geyao.mybatis.pojo.BlogExample" resultType="java.lang.Integer" >select count(*) from blog<if test="_parameter != null" ><include refid="Example_Where_Clause" /></if></select><update id="updateByExampleSelective" parameterType="map" >update blog<set ><if test="record.id != null" >id = #{record.id,jdbcType=INTEGER},</if><if test="record.title != null" >title = #{record.title,jdbcType=VARCHAR},</if><if test="record.authodId != null" >authod_id = #{record.authodId,jdbcType=INTEGER},</if><if test="record.state != null" >state = #{record.state,jdbcType=VARCHAR},</if><if test="record.featured != null" >featured = #{record.featured,jdbcType=TINYINT},</if><if test="record.style != null" >style = #{record.style,jdbcType=VARCHAR},</if></set><if test="_parameter != null" ><include refid="Update_By_Example_Where_Clause" /></if></update><update id="updateByExample" parameterType="map" >update blogset id = #{record.id,jdbcType=INTEGER},title = #{record.title,jdbcType=VARCHAR},authod_id = #{record.authodId,jdbcType=INTEGER},state = #{record.state,jdbcType=VARCHAR},featured = #{record.featured,jdbcType=TINYINT},style = #{record.style,jdbcType=VARCHAR}<if test="_parameter != null" ><include refid="Update_By_Example_Where_Clause" /></if></update>
</mapper>

AuthorMapper.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,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的
例如namespace="me.gacl.mapping.userMapper"就是me.gacl.mapping(包名)+userMapper(userMapper.xml文件去除后缀)-->
<mapper namespace="com.geyao.mybatis.mapper.AuthorMapper"><resultMap type="Author" id="authorResultMap"><id column="id" property="id" jdbcType="INTEGER"></id></resultMap><select id="selectAuthorById" parameterType="int" resultMap="authorResultMap">select * from author where id=#{id}</select>
</mapper>

AuthorMapper类

package com.geyao.mybatis.mapper;import com.geyao.mybatis.pojo.Author;
public interface AuthorMapper {Author selectAuthorById(Integer id);
}

BlogAuthorMapperCustom.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="com.geyao.mybatis.mapper.BlogMapperCustom" >
<sql id="baseColumn">b.`id`,b.`title`,b.`state`,b.`featured`,b.`style`,a.username as authorUsername</sql><select id="selectBlogById" parameterType="int" resultType="BlogCustom">select<include refid="baseColumn"></include>from blog bleft join author aon b.author =a.idwhere b.id=#{id}</select>
</mapper>

BlogMapperCustom类

package com.geyao.mybatis.mapper;import com.geyao.mybatis.mvo.BlogCustom;public interface BlogMapperCustom {BlogCustom selectBlogById(Integer id);
}

com.geyao.mybatis.pojo

Blog

package com.geyao.mybatis.pojo;public class Blog {private Integer id;private String title;private Integer authodId;private String state;private Byte featured;private String style;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title == null ? null : title.trim();}public Integer getAuthodId() {return authodId;}public void setAuthodId(Integer authodId) {this.authodId = authodId;}public String getState() {return state;}public void setState(String state) {this.state = state == null ? null : state.trim();}public Byte getFeatured() {return featured;}public void setFeatured(Byte featured) {this.featured = featured;}public String getStyle() {return style;}public void setStyle(String style) {this.style = style == null ? null : style.trim();}
}

BlogExample

package com.geyao.mybatis.pojo;import java.util.ArrayList;
import java.util.List;public class BlogExample {protected String orderByClause;protected boolean distinct;protected List<Criteria> oredCriteria;public BlogExample() {oredCriteria = new ArrayList<Criteria>();}public void setOrderByClause(String orderByClause) {this.orderByClause = orderByClause;}public String getOrderByClause() {return orderByClause;}public void setDistinct(boolean distinct) {this.distinct = distinct;}public boolean isDistinct() {return distinct;}public List<Criteria> getOredCriteria() {return oredCriteria;}public void or(Criteria criteria) {oredCriteria.add(criteria);}public Criteria or() {Criteria criteria = createCriteriaInternal();oredCriteria.add(criteria);return criteria;}public Criteria createCriteria() {Criteria criteria = createCriteriaInternal();if (oredCriteria.size() == 0) {oredCriteria.add(criteria);}return criteria;}protected Criteria createCriteriaInternal() {Criteria criteria = new Criteria();return criteria;}public void clear() {oredCriteria.clear();orderByClause = null;distinct = false;}protected abstract static class GeneratedCriteria {protected List<Criterion> criteria;protected GeneratedCriteria() {super();criteria = new ArrayList<Criterion>();}public boolean isValid() {return criteria.size() > 0;}public List<Criterion> getAllCriteria() {return criteria;}public List<Criterion> getCriteria() {return criteria;}protected void addCriterion(String condition) {if (condition == null) {throw new RuntimeException("Value for condition cannot be null");}criteria.add(new Criterion(condition));}protected void addCriterion(String condition, Object value, String property) {if (value == null) {throw new RuntimeException("Value for " + property + " cannot be null");}criteria.add(new Criterion(condition, value));}protected void addCriterion(String condition, Object value1, Object value2, String property) {if (value1 == null || value2 == null) {throw new RuntimeException("Between values for " + property + " cannot be null");}criteria.add(new Criterion(condition, value1, value2));}public Criteria andIdIsNull() {addCriterion("id is null");return (Criteria) this;}public Criteria andIdIsNotNull() {addCriterion("id is not null");return (Criteria) this;}public Criteria andIdEqualTo(Integer value) {addCriterion("id =", value, "id");return (Criteria) this;}public Criteria andIdNotEqualTo(Integer value) {addCriterion("id <>", value, "id");return (Criteria) this;}public Criteria andIdGreaterThan(Integer value) {addCriterion("id >", value, "id");return (Criteria) this;}public Criteria andIdGreaterThanOrEqualTo(Integer value) {addCriterion("id >=", value, "id");return (Criteria) this;}public Criteria andIdLessThan(Integer value) {addCriterion("id <", value, "id");return (Criteria) this;}public Criteria andIdLessThanOrEqualTo(Integer value) {addCriterion("id <=", value, "id");return (Criteria) this;}public Criteria andIdIn(List<Integer> values) {addCriterion("id in", values, "id");return (Criteria) this;}public Criteria andIdNotIn(List<Integer> values) {addCriterion("id not in", values, "id");return (Criteria) this;}public Criteria andIdBetween(Integer value1, Integer value2) {addCriterion("id between", value1, value2, "id");return (Criteria) this;}public Criteria andIdNotBetween(Integer value1, Integer value2) {addCriterion("id not between", value1, value2, "id");return (Criteria) this;}public Criteria andTitleIsNull() {addCriterion("title is null");return (Criteria) this;}public Criteria andTitleIsNotNull() {addCriterion("title is not null");return (Criteria) this;}public Criteria andTitleEqualTo(String value) {addCriterion("title =", value, "title");return (Criteria) this;}public Criteria andTitleNotEqualTo(String value) {addCriterion("title <>", value, "title");return (Criteria) this;}public Criteria andTitleGreaterThan(String value) {addCriterion("title >", value, "title");return (Criteria) this;}public Criteria andTitleGreaterThanOrEqualTo(String value) {addCriterion("title >=", value, "title");return (Criteria) this;}public Criteria andTitleLessThan(String value) {addCriterion("title <", value, "title");return (Criteria) this;}public Criteria andTitleLessThanOrEqualTo(String value) {addCriterion("title <=", value, "title");return (Criteria) this;}public Criteria andTitleLike(String value) {addCriterion("title like", value, "title");return (Criteria) this;}public Criteria andTitleNotLike(String value) {addCriterion("title not like", value, "title");return (Criteria) this;}public Criteria andTitleIn(List<String> values) {addCriterion("title in", values, "title");return (Criteria) this;}public Criteria andTitleNotIn(List<String> values) {addCriterion("title not in", values, "title");return (Criteria) this;}public Criteria andTitleBetween(String value1, String value2) {addCriterion("title between", value1, value2, "title");return (Criteria) this;}public Criteria andTitleNotBetween(String value1, String value2) {addCriterion("title not between", value1, value2, "title");return (Criteria) this;}public Criteria andAuthodIdIsNull() {addCriterion("authod_id is null");return (Criteria) this;}public Criteria andAuthodIdIsNotNull() {addCriterion("authod_id is not null");return (Criteria) this;}public Criteria andAuthodIdEqualTo(Integer value) {addCriterion("authod_id =", value, "authodId");return (Criteria) this;}public Criteria andAuthodIdNotEqualTo(Integer value) {addCriterion("authod_id <>", value, "authodId");return (Criteria) this;}public Criteria andAuthodIdGreaterThan(Integer value) {addCriterion("authod_id >", value, "authodId");return (Criteria) this;}public Criteria andAuthodIdGreaterThanOrEqualTo(Integer value) {addCriterion("authod_id >=", value, "authodId");return (Criteria) this;}public Criteria andAuthodIdLessThan(Integer value) {addCriterion("authod_id <", value, "authodId");return (Criteria) this;}public Criteria andAuthodIdLessThanOrEqualTo(Integer value) {addCriterion("authod_id <=", value, "authodId");return (Criteria) this;}public Criteria andAuthodIdIn(List<Integer> values) {addCriterion("authod_id in", values, "authodId");return (Criteria) this;}public Criteria andAuthodIdNotIn(List<Integer> values) {addCriterion("authod_id not in", values, "authodId");return (Criteria) this;}public Criteria andAuthodIdBetween(Integer value1, Integer value2) {addCriterion("authod_id between", value1, value2, "authodId");return (Criteria) this;}public Criteria andAuthodIdNotBetween(Integer value1, Integer value2) {addCriterion("authod_id not between", value1, value2, "authodId");return (Criteria) this;}public Criteria andStateIsNull() {addCriterion("state is null");return (Criteria) this;}public Criteria andStateIsNotNull() {addCriterion("state is not null");return (Criteria) this;}public Criteria andStateEqualTo(String value) {addCriterion("state =", value, "state");return (Criteria) this;}public Criteria andStateNotEqualTo(String value) {addCriterion("state <>", value, "state");return (Criteria) this;}public Criteria andStateGreaterThan(String value) {addCriterion("state >", value, "state");return (Criteria) this;}public Criteria andStateGreaterThanOrEqualTo(String value) {addCriterion("state >=", value, "state");return (Criteria) this;}public Criteria andStateLessThan(String value) {addCriterion("state <", value, "state");return (Criteria) this;}public Criteria andStateLessThanOrEqualTo(String value) {addCriterion("state <=", value, "state");return (Criteria) this;}public Criteria andStateLike(String value) {addCriterion("state like", value, "state");return (Criteria) this;}public Criteria andStateNotLike(String value) {addCriterion("state not like", value, "state");return (Criteria) this;}public Criteria andStateIn(List<String> values) {addCriterion("state in", values, "state");return (Criteria) this;}public Criteria andStateNotIn(List<String> values) {addCriterion("state not in", values, "state");return (Criteria) this;}public Criteria andStateBetween(String value1, String value2) {addCriterion("state between", value1, value2, "state");return (Criteria) this;}public Criteria andStateNotBetween(String value1, String value2) {addCriterion("state not between", value1, value2, "state");return (Criteria) this;}public Criteria andFeaturedIsNull() {addCriterion("featured is null");return (Criteria) this;}public Criteria andFeaturedIsNotNull() {addCriterion("featured is not null");return (Criteria) this;}public Criteria andFeaturedEqualTo(Byte value) {addCriterion("featured =", value, "featured");return (Criteria) this;}public Criteria andFeaturedNotEqualTo(Byte value) {addCriterion("featured <>", value, "featured");return (Criteria) this;}public Criteria andFeaturedGreaterThan(Byte value) {addCriterion("featured >", value, "featured");return (Criteria) this;}public Criteria andFeaturedGreaterThanOrEqualTo(Byte value) {addCriterion("featured >=", value, "featured");return (Criteria) this;}public Criteria andFeaturedLessThan(Byte value) {addCriterion("featured <", value, "featured");return (Criteria) this;}public Criteria andFeaturedLessThanOrEqualTo(Byte value) {addCriterion("featured <=", value, "featured");return (Criteria) this;}public Criteria andFeaturedIn(List<Byte> values) {addCriterion("featured in", values, "featured");return (Criteria) this;}public Criteria andFeaturedNotIn(List<Byte> values) {addCriterion("featured not in", values, "featured");return (Criteria) this;}public Criteria andFeaturedBetween(Byte value1, Byte value2) {addCriterion("featured between", value1, value2, "featured");return (Criteria) this;}public Criteria andFeaturedNotBetween(Byte value1, Byte value2) {addCriterion("featured not between", value1, value2, "featured");return (Criteria) this;}public Criteria andStyleIsNull() {addCriterion("style is null");return (Criteria) this;}public Criteria andStyleIsNotNull() {addCriterion("style is not null");return (Criteria) this;}public Criteria andStyleEqualTo(String value) {addCriterion("style =", value, "style");return (Criteria) this;}public Criteria andStyleNotEqualTo(String value) {addCriterion("style <>", value, "style");return (Criteria) this;}public Criteria andStyleGreaterThan(String value) {addCriterion("style >", value, "style");return (Criteria) this;}public Criteria andStyleGreaterThanOrEqualTo(String value) {addCriterion("style >=", value, "style");return (Criteria) this;}public Criteria andStyleLessThan(String value) {addCriterion("style <", value, "style");return (Criteria) this;}public Criteria andStyleLessThanOrEqualTo(String value) {addCriterion("style <=", value, "style");return (Criteria) this;}public Criteria andStyleLike(String value) {addCriterion("style like", value, "style");return (Criteria) this;}public Criteria andStyleNotLike(String value) {addCriterion("style not like", value, "style");return (Criteria) this;}public Criteria andStyleIn(List<String> values) {addCriterion("style in", values, "style");return (Criteria) this;}public Criteria andStyleNotIn(List<String> values) {addCriterion("style not in", values, "style");return (Criteria) this;}public Criteria andStyleBetween(String value1, String value2) {addCriterion("style between", value1, value2, "style");return (Criteria) this;}public Criteria andStyleNotBetween(String value1, String value2) {addCriterion("style not between", value1, value2, "style");return (Criteria) this;}}public static class Criteria extends GeneratedCriteria {protected Criteria() {super();}}public static class Criterion {private String condition;private Object value;private Object secondValue;private boolean noValue;private boolean singleValue;private boolean betweenValue;private boolean listValue;private String typeHandler;public String getCondition() {return condition;}public Object getValue() {return value;}public Object getSecondValue() {return secondValue;}public boolean isNoValue() {return noValue;}public boolean isSingleValue() {return singleValue;}public boolean isBetweenValue() {return betweenValue;}public boolean isListValue() {return listValue;}public String getTypeHandler() {return typeHandler;}protected Criterion(String condition) {super();this.condition = condition;this.typeHandler = null;this.noValue = true;}protected Criterion(String condition, Object value, String typeHandler) {super();this.condition = condition;this.value = value;this.typeHandler = typeHandler;if (value instanceof List<?>) {this.listValue = true;} else {this.singleValue = true;}}protected Criterion(String condition, Object value) {this(condition, value, null);}protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {super();this.condition = condition;this.value = value;this.secondValue = secondValue;this.typeHandler = typeHandler;this.betweenValue = true;}protected Criterion(String condition, Object value, Object secondValue) {this(condition, value, secondValue, null);}}
}

Aothor类

package com.geyao.mybatis.pojo;public class Author {private Integer id;private String username;private String password;private String email;private String bio;private String favouriteSection;private String nickname;private String realname;public Author() {super();}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getBio() {return bio;}public void setBio(String bio) {this.bio = bio;}public String getFavouriteSection() {return favouriteSection;}public void setFavouriteSection(String favouriteSection) {this.favouriteSection = favouriteSection;}public String getNickname() {return nickname;}public void setNickname(String nickname) {this.nickname = nickname;}public String getRealname() {return realname;}public void setRealname(String realname) {this.realname = realname;}public Author(Integer id, String username, String password, String email, String bio, String favouriteSection,String nickname, String realname) {super();this.id = id;this.username = username;this.password = password;this.email = email;this.bio = bio;this.favouriteSection = favouriteSection;this.nickname = nickname;this.realname = realname;}@Overridepublic String toString() {return "Author [id=" + id + ", username=" + username + ", password=" + password + ", email=" + email + ", bio="+ bio + ", favouriteSection=" + favouriteSection + ", nickname=" + nickname + ", realname=" + realname+ "]";}}

AuthorExample

package com.geyao.mybatis.pojo;import java.util.ArrayList;
import java.util.List;public class AuthorExample {protected String orderByClause;protected boolean distinct;protected List<Criteria> oredCriteria;public AuthorExample() {oredCriteria = new ArrayList<Criteria>();}public void setOrderByClause(String orderByClause) {this.orderByClause = orderByClause;}public String getOrderByClause() {return orderByClause;}public void setDistinct(boolean distinct) {this.distinct = distinct;}public boolean isDistinct() {return distinct;}public List<Criteria> getOredCriteria() {return oredCriteria;}public void or(Criteria criteria) {oredCriteria.add(criteria);}public Criteria or() {Criteria criteria = createCriteriaInternal();oredCriteria.add(criteria);return criteria;}public Criteria createCriteria() {Criteria criteria = createCriteriaInternal();if (oredCriteria.size() == 0) {oredCriteria.add(criteria);}return criteria;}protected Criteria createCriteriaInternal() {Criteria criteria = new Criteria();return criteria;}public void clear() {oredCriteria.clear();orderByClause = null;distinct = false;}protected abstract static class GeneratedCriteria {protected List<Criterion> criteria;protected GeneratedCriteria() {super();criteria = new ArrayList<Criterion>();}public boolean isValid() {return criteria.size() > 0;}public List<Criterion> getAllCriteria() {return criteria;}public List<Criterion> getCriteria() {return criteria;}protected void addCriterion(String condition) {if (condition == null) {throw new RuntimeException("Value for condition cannot be null");}criteria.add(new Criterion(condition));}protected void addCriterion(String condition, Object value, String property) {if (value == null) {throw new RuntimeException("Value for " + property + " cannot be null");}criteria.add(new Criterion(condition, value));}protected void addCriterion(String condition, Object value1, Object value2, String property) {if (value1 == null || value2 == null) {throw new RuntimeException("Between values for " + property + " cannot be null");}criteria.add(new Criterion(condition, value1, value2));}public Criteria andIdIsNull() {addCriterion("id is null");return (Criteria) this;}public Criteria andIdIsNotNull() {addCriterion("id is not null");return (Criteria) this;}public Criteria andIdEqualTo(Integer value) {addCriterion("id =", value, "id");return (Criteria) this;}public Criteria andIdNotEqualTo(Integer value) {addCriterion("id <>", value, "id");return (Criteria) this;}public Criteria andIdGreaterThan(Integer value) {addCriterion("id >", value, "id");return (Criteria) this;}public Criteria andIdGreaterThanOrEqualTo(Integer value) {addCriterion("id >=", value, "id");return (Criteria) this;}public Criteria andIdLessThan(Integer value) {addCriterion("id <", value, "id");return (Criteria) this;}public Criteria andIdLessThanOrEqualTo(Integer value) {addCriterion("id <=", value, "id");return (Criteria) this;}public Criteria andIdIn(List<Integer> values) {addCriterion("id in", values, "id");return (Criteria) this;}public Criteria andIdNotIn(List<Integer> values) {addCriterion("id not in", values, "id");return (Criteria) this;}public Criteria andIdBetween(Integer value1, Integer value2) {addCriterion("id between", value1, value2, "id");return (Criteria) this;}public Criteria andIdNotBetween(Integer value1, Integer value2) {addCriterion("id not between", value1, value2, "id");return (Criteria) this;}public Criteria andUsernameIsNull() {addCriterion("username is null");return (Criteria) this;}public Criteria andUsernameIsNotNull() {addCriterion("username is not null");return (Criteria) this;}public Criteria andUsernameEqualTo(String value) {addCriterion("username =", value, "username");return (Criteria) this;}public Criteria andUsernameNotEqualTo(String value) {addCriterion("username <>", value, "username");return (Criteria) this;}public Criteria andUsernameGreaterThan(String value) {addCriterion("username >", value, "username");return (Criteria) this;}public Criteria andUsernameGreaterThanOrEqualTo(String value) {addCriterion("username >=", value, "username");return (Criteria) this;}public Criteria andUsernameLessThan(String value) {addCriterion("username <", value, "username");return (Criteria) this;}public Criteria andUsernameLessThanOrEqualTo(String value) {addCriterion("username <=", value, "username");return (Criteria) this;}public Criteria andUsernameLike(String value) {addCriterion("username like", value, "username");return (Criteria) this;}public Criteria andUsernameNotLike(String value) {addCriterion("username not like", value, "username");return (Criteria) this;}public Criteria andUsernameIn(List<String> values) {addCriterion("username in", values, "username");return (Criteria) this;}public Criteria andUsernameNotIn(List<String> values) {addCriterion("username not in", values, "username");return (Criteria) this;}public Criteria andUsernameBetween(String value1, String value2) {addCriterion("username between", value1, value2, "username");return (Criteria) this;}public Criteria andUsernameNotBetween(String value1, String value2) {addCriterion("username not between", value1, value2, "username");return (Criteria) this;}public Criteria andPasswordIsNull() {addCriterion("password is null");return (Criteria) this;}public Criteria andPasswordIsNotNull() {addCriterion("password is not null");return (Criteria) this;}public Criteria andPasswordEqualTo(String value) {addCriterion("password =", value, "password");return (Criteria) this;}public Criteria andPasswordNotEqualTo(String value) {addCriterion("password <>", value, "password");return (Criteria) this;}public Criteria andPasswordGreaterThan(String value) {addCriterion("password >", value, "password");return (Criteria) this;}public Criteria andPasswordGreaterThanOrEqualTo(String value) {addCriterion("password >=", value, "password");return (Criteria) this;}public Criteria andPasswordLessThan(String value) {addCriterion("password <", value, "password");return (Criteria) this;}public Criteria andPasswordLessThanOrEqualTo(String value) {addCriterion("password <=", value, "password");return (Criteria) this;}public Criteria andPasswordLike(String value) {addCriterion("password like", value, "password");return (Criteria) this;}public Criteria andPasswordNotLike(String value) {addCriterion("password not like", value, "password");return (Criteria) this;}public Criteria andPasswordIn(List<String> values) {addCriterion("password in", values, "password");return (Criteria) this;}public Criteria andPasswordNotIn(List<String> values) {addCriterion("password not in", values, "password");return (Criteria) this;}public Criteria andPasswordBetween(String value1, String value2) {addCriterion("password between", value1, value2, "password");return (Criteria) this;}public Criteria andPasswordNotBetween(String value1, String value2) {addCriterion("password not between", value1, value2, "password");return (Criteria) this;}public Criteria andEmailIsNull() {addCriterion("email is null");return (Criteria) this;}public Criteria andEmailIsNotNull() {addCriterion("email is not null");return (Criteria) this;}public Criteria andEmailEqualTo(String value) {addCriterion("email =", value, "email");return (Criteria) this;}public Criteria andEmailNotEqualTo(String value) {addCriterion("email <>", value, "email");return (Criteria) this;}public Criteria andEmailGreaterThan(String value) {addCriterion("email >", value, "email");return (Criteria) this;}public Criteria andEmailGreaterThanOrEqualTo(String value) {addCriterion("email >=", value, "email");return (Criteria) this;}public Criteria andEmailLessThan(String value) {addCriterion("email <", value, "email");return (Criteria) this;}public Criteria andEmailLessThanOrEqualTo(String value) {addCriterion("email <=", value, "email");return (Criteria) this;}public Criteria andEmailLike(String value) {addCriterion("email like", value, "email");return (Criteria) this;}public Criteria andEmailNotLike(String value) {addCriterion("email not like", value, "email");return (Criteria) this;}public Criteria andEmailIn(List<String> values) {addCriterion("email in", values, "email");return (Criteria) this;}public Criteria andEmailNotIn(List<String> values) {addCriterion("email not in", values, "email");return (Criteria) this;}public Criteria andEmailBetween(String value1, String value2) {addCriterion("email between", value1, value2, "email");return (Criteria) this;}public Criteria andEmailNotBetween(String value1, String value2) {addCriterion("email not between", value1, value2, "email");return (Criteria) this;}public Criteria andBioIsNull() {addCriterion("bio is null");return (Criteria) this;}public Criteria andBioIsNotNull() {addCriterion("bio is not null");return (Criteria) this;}public Criteria andBioEqualTo(String value) {addCriterion("bio =", value, "bio");return (Criteria) this;}public Criteria andBioNotEqualTo(String value) {addCriterion("bio <>", value, "bio");return (Criteria) this;}public Criteria andBioGreaterThan(String value) {addCriterion("bio >", value, "bio");return (Criteria) this;}public Criteria andBioGreaterThanOrEqualTo(String value) {addCriterion("bio >=", value, "bio");return (Criteria) this;}public Criteria andBioLessThan(String value) {addCriterion("bio <", value, "bio");return (Criteria) this;}public Criteria andBioLessThanOrEqualTo(String value) {addCriterion("bio <=", value, "bio");return (Criteria) this;}public Criteria andBioLike(String value) {addCriterion("bio like", value, "bio");return (Criteria) this;}public Criteria andBioNotLike(String value) {addCriterion("bio not like", value, "bio");return (Criteria) this;}public Criteria andBioIn(List<String> values) {addCriterion("bio in", values, "bio");return (Criteria) this;}public Criteria andBioNotIn(List<String> values) {addCriterion("bio not in", values, "bio");return (Criteria) this;}public Criteria andBioBetween(String value1, String value2) {addCriterion("bio between", value1, value2, "bio");return (Criteria) this;}public Criteria andBioNotBetween(String value1, String value2) {addCriterion("bio not between", value1, value2, "bio");return (Criteria) this;}public Criteria andFavouritesectionIsNull() {addCriterion("favouriteSection is null");return (Criteria) this;}public Criteria andFavouritesectionIsNotNull() {addCriterion("favouriteSection is not null");return (Criteria) this;}public Criteria andFavouritesectionEqualTo(String value) {addCriterion("favouriteSection =", value, "favouritesection");return (Criteria) this;}public Criteria andFavouritesectionNotEqualTo(String value) {addCriterion("favouriteSection <>", value, "favouritesection");return (Criteria) this;}public Criteria andFavouritesectionGreaterThan(String value) {addCriterion("favouriteSection >", value, "favouritesection");return (Criteria) this;}public Criteria andFavouritesectionGreaterThanOrEqualTo(String value) {addCriterion("favouriteSection >=", value, "favouritesection");return (Criteria) this;}public Criteria andFavouritesectionLessThan(String value) {addCriterion("favouriteSection <", value, "favouritesection");return (Criteria) this;}public Criteria andFavouritesectionLessThanOrEqualTo(String value) {addCriterion("favouriteSection <=", value, "favouritesection");return (Criteria) this;}public Criteria andFavouritesectionLike(String value) {addCriterion("favouriteSection like", value, "favouritesection");return (Criteria) this;}public Criteria andFavouritesectionNotLike(String value) {addCriterion("favouriteSection not like", value, "favouritesection");return (Criteria) this;}public Criteria andFavouritesectionIn(List<String> values) {addCriterion("favouriteSection in", values, "favouritesection");return (Criteria) this;}public Criteria andFavouritesectionNotIn(List<String> values) {addCriterion("favouriteSection not in", values, "favouritesection");return (Criteria) this;}public Criteria andFavouritesectionBetween(String value1, String value2) {addCriterion("favouriteSection between", value1, value2, "favouritesection");return (Criteria) this;}public Criteria andFavouritesectionNotBetween(String value1, String value2) {addCriterion("favouriteSection not between", value1, value2, "favouritesection");return (Criteria) this;}public Criteria andNicknameIsNull() {addCriterion("nickname is null");return (Criteria) this;}public Criteria andNicknameIsNotNull() {addCriterion("nickname is not null");return (Criteria) this;}public Criteria andNicknameEqualTo(String value) {addCriterion("nickname =", value, "nickname");return (Criteria) this;}public Criteria andNicknameNotEqualTo(String value) {addCriterion("nickname <>", value, "nickname");return (Criteria) this;}public Criteria andNicknameGreaterThan(String value) {addCriterion("nickname >", value, "nickname");return (Criteria) this;}public Criteria andNicknameGreaterThanOrEqualTo(String value) {addCriterion("nickname >=", value, "nickname");return (Criteria) this;}public Criteria andNicknameLessThan(String value) {addCriterion("nickname <", value, "nickname");return (Criteria) this;}public Criteria andNicknameLessThanOrEqualTo(String value) {addCriterion("nickname <=", value, "nickname");return (Criteria) this;}public Criteria andNicknameLike(String value) {addCriterion("nickname like", value, "nickname");return (Criteria) this;}public Criteria andNicknameNotLike(String value) {addCriterion("nickname not like", value, "nickname");return (Criteria) this;}public Criteria andNicknameIn(List<String> values) {addCriterion("nickname in", values, "nickname");return (Criteria) this;}public Criteria andNicknameNotIn(List<String> values) {addCriterion("nickname not in", values, "nickname");return (Criteria) this;}public Criteria andNicknameBetween(String value1, String value2) {addCriterion("nickname between", value1, value2, "nickname");return (Criteria) this;}public Criteria andNicknameNotBetween(String value1, String value2) {addCriterion("nickname not between", value1, value2, "nickname");return (Criteria) this;}public Criteria andRealnameIsNull() {addCriterion("realname is null");return (Criteria) this;}public Criteria andRealnameIsNotNull() {addCriterion("realname is not null");return (Criteria) this;}public Criteria andRealnameEqualTo(String value) {addCriterion("realname =", value, "realname");return (Criteria) this;}public Criteria andRealnameNotEqualTo(String value) {addCriterion("realname <>", value, "realname");return (Criteria) this;}public Criteria andRealnameGreaterThan(String value) {addCriterion("realname >", value, "realname");return (Criteria) this;}public Criteria andRealnameGreaterThanOrEqualTo(String value) {addCriterion("realname >=", value, "realname");return (Criteria) this;}public Criteria andRealnameLessThan(String value) {addCriterion("realname <", value, "realname");return (Criteria) this;}public Criteria andRealnameLessThanOrEqualTo(String value) {addCriterion("realname <=", value, "realname");return (Criteria) this;}public Criteria andRealnameLike(String value) {addCriterion("realname like", value, "realname");return (Criteria) this;}public Criteria andRealnameNotLike(String value) {addCriterion("realname not like", value, "realname");return (Criteria) this;}public Criteria andRealnameIn(List<String> values) {addCriterion("realname in", values, "realname");return (Criteria) this;}public Criteria andRealnameNotIn(List<String> values) {addCriterion("realname not in", values, "realname");return (Criteria) this;}public Criteria andRealnameBetween(String value1, String value2) {addCriterion("realname between", value1, value2, "realname");return (Criteria) this;}public Criteria andRealnameNotBetween(String value1, String value2) {addCriterion("realname not between", value1, value2, "realname");return (Criteria) this;}}public static class Criteria extends GeneratedCriteria {protected Criteria() {super();}}public static class Criterion {private String condition;private Object value;private Object secondValue;private boolean noValue;private boolean singleValue;private boolean betweenValue;private boolean listValue;private String typeHandler;public String getCondition() {return condition;}public Object getValue() {return value;}public Object getSecondValue() {return secondValue;}public boolean isNoValue() {return noValue;}public boolean isSingleValue() {return singleValue;}public boolean isBetweenValue() {return betweenValue;}public boolean isListValue() {return listValue;}public String getTypeHandler() {return typeHandler;}protected Criterion(String condition) {super();this.condition = condition;this.typeHandler = null;this.noValue = true;}protected Criterion(String condition, Object value, String typeHandler) {super();this.condition = condition;this.value = value;this.typeHandler = typeHandler;if (value instanceof List<?>) {this.listValue = true;} else {this.singleValue = true;}}protected Criterion(String condition, Object value) {this(condition, value, null);}protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {super();this.condition = condition;this.value = value;this.secondValue = secondValue;this.typeHandler = typeHandler;this.betweenValue = true;}protected Criterion(String condition, Object value, Object secondValue) {this(condition, value, secondValue, null);}}
}

com.geyao.mybatis.mvo

BlogCustom

package com.geyao.mybatis.mvo;import com.geyao.mybatis.pojo.Blog;public class BlogCustom extends Blog {private String authorUsername;public String getAuthorUsername() {return authorUsername;}public void setAuthorUsername(String authorUsername) {this.authorUsername = authorUsername;}}

com.geyao.mybatis.util

MybatisUtil

package com.geyao.mybatis.util;import java.io.InputStream;
import java.io.Reader;import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class MyBatisUtil {private static SqlSessionFactory sqlSessionFactory =null;static {try {InputStream in = Resources.getResourceAsStream("mybatis-config.xml");sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}private MyBatisUtil() {}public static SqlSession getSqlSession() {return sqlSessionFactory.openSession();}
}

com.geyao.mybatis.mapper

BlogMapperCustomTest

package com.geyao.mybatis.mapper;import java.util.ArrayList;
import java.util.List;import org.apache.ibatis.session.SqlSession;
import org.junit.Test;import com.geyao.mybatis.mvo.BlogCustom;import com.geyao.mybatis.util.MyBatisUtil;public class BlogMapperCustomTest {@Testpublic void testselectBlogById() {SqlSession session =MyBatisUtil.getSqlSession();BlogMapperCustom blogMapper =session.getMapper(BlogMapperCustom.class);BlogCustom blog=blogMapper.selectBlogById(1);session.close();System.out.println(blog);}
}

运行结果

mybatis学习(52):扩展结果的展现相关推荐

  1. mybatis学习(51):扩展集

    大部分现实应用中我们并不需要把数据库中的整行数据都拉出来, 所以要做扩展结果集 笔记: 在实际项目过程中, 先用逆向工程自动生成, 然后再做扩展结果集来满足大部分的现实需要 本节内容应该注意扩展结果集 ...

  2. 【转】MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突

    [转]MyBatis学习总结(四)--解决字段名与实体类属性名不相同的冲突 在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体 ...

  3. MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作

    上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对u ...

  4. MyBatis学习--简单的增删改查

    jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: 1 Public static void main(String[] arg ...

  5. MyBatis学习随记

    1       Mybatis入门 1.1     单独使用jdbc编程问题总结 1.1.1  jdbc程序 Public static void main(String[] args) { Conn ...

  6. Java框架学习笔记--Mybatis学习

    一.Mybatis学习 1.Mybatis简介 简介:Mybatis开源免费框架.原名叫iBatis,2010在googlecode,2013年迁移到github2 作用:数据访问层框架.底层是对JD ...

  7. mybatis学习与理解

    mybatis学习 mybatis框架:是一个框架,早期叫做ibatis,代码在github mybatis是MyBatis SQL Framework for Java(sql映射框架) sql m ...

  8. MyBatis学习从练气到化虚

    MyBatis从练气到化虚 一.MyBatis的由来 1.什么是ORM 2.iBatis的由来 3.为什么选择Mybatis 二.MyBatis的基本使用 1.准备数据库 2.创建工程,增加实体类 3 ...

  9. mybatis学习笔记(12)-多对多查询

    mybatis学习笔记12-多对多查询 示例 多对多查询总结 resultMap总结 本文实现多对多查询,查询用户及用户购买商品信息. 示例 查询主表是:用户表 关联表:由于用户和商品没有直接关联,通 ...

最新文章

  1. dataframe 筛选_使用pandas筛选出指定列值所对应的行
  2. Alibaba Cloud Toolkit——简介
  3. Action framework BAdI Definition TRIGGER_EXECUTED
  4. js 解除网页右键菜单被禁用
  5. java撤销上一步_CAD快速入门技巧:CAD软件中撤销操作的方法汇总
  6. 使用WinPcap抓包分析网络协议
  7. mysql二进制包安装mysql_基于linux使用mysql二进制包安装mysql
  8. 配置 mysql/mariadb sphinxSE 错误解决 1st column must be bigint to accept 64-bit DOCID
  9. java编译命令是什么_java编译命令,java的编译命令是什么?
  10. 如何在 Windows 10 上完全禁用 UAC
  11. 如何快速查询京东快递物流正在派送中的单号
  12. 计算机屏幕有条线,为什么电脑屏幕上有条线
  13. docker之win安装gitlab
  14. 要来了!国内安卓统一推送标准将于 今年3 月开启测试
  15. c语言的实验题答案,大一C语言上机实验试题及答案
  16. 美团点评2017校园招聘编程题--取红包
  17. 【机器学习】机器学习30个笔试题
  18. html img设置形状,图片img直接设置样式
  19. 用好故事思维,轻松获得人心
  20. 为什么我爱Golang

热门文章

  1. php中urlencode使用
  2. oracle查看登录时间黑屏,oracle 11g默认用户名、密码解锁 以及安装后重启黑屏问题.doc...
  3. html动态网页效果代码_教你制作网页的第一步
  4. python elasticsearch update_使用python的elasticsearch部分更新
  5. 解决问题E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用) E: 无法锁定管理目录,
  6. Exynos4412 中断驱动开发(一)—— 中断基础及中断的注册过程
  7. 解决表字段使用关键字导致Mybatis Generator生成代码异常的解决方案
  8. 【Linux】FTP文件下载
  9. 苹果MacOS系统上安装第三方驱动失败/无效
  10. Nginx下配置小绿锁https