diff --git a/cms/cms-dao/pom.xml b/cms/cms-dao/pom.xml
new file mode 100644
index 00000000..ce16bb9d
--- /dev/null
+++ b/cms/cms-dao/pom.xml
@@ -0,0 +1,55 @@
+
+
+ cms
+ com.zheng
+ 1.0.0
+
+ 4.0.0
+
+ cms-dao
+ jar
+
+ cms-dao
+ http://www.zhangshuzheng.cn
+
+
+ UTF-8
+
+
+
+
+ com.zheng
+ common
+ 1.0.0
+ jar
+
+
+
+
+ cms-dao
+
+
+ src/main/java
+
+ **/*.xml
+
+ true
+
+
+ src/main/resources
+
+
+
+
+ org.mybatis.generator
+ mybatis-generator-maven-plugin
+ 1.3.2
+
+ true
+ true
+
+
+
+
+
diff --git a/cms/cms-dao/src/main/java/com/zheng/interceptor/PageInterceptor.java b/cms/cms-dao/src/main/java/com/zheng/interceptor/PageInterceptor.java
new file mode 100644
index 00000000..6d7ebc63
--- /dev/null
+++ b/cms/cms-dao/src/main/java/com/zheng/interceptor/PageInterceptor.java
@@ -0,0 +1,77 @@
+package com.zheng.interceptor;
+
+import java.sql.Connection;
+import java.util.Map;
+import java.util.Properties;
+
+import org.apache.ibatis.executor.statement.StatementHandler;
+import org.apache.ibatis.mapping.BoundSql;
+import org.apache.ibatis.mapping.MappedStatement;
+import org.apache.ibatis.plugin.Interceptor;
+import org.apache.ibatis.plugin.Intercepts;
+import org.apache.ibatis.plugin.Invocation;
+import org.apache.ibatis.plugin.Plugin;
+import org.apache.ibatis.plugin.Signature;
+import org.apache.ibatis.reflection.MetaObject;
+import org.apache.ibatis.reflection.SystemMetaObject;
+
+import com.zheng.util.Paginator;
+
+
+/**
+ * 分页拦截器
+ * @author shuzheng
+ * @date 2016年7月6日 下午6:04:12
+ */
+@Intercepts({
+ @Signature(
+ type = StatementHandler.class,
+ method = "prepare",
+ args = {Connection.class }
+ )
+})
+public class PageInterceptor implements Interceptor {
+
+ private String pageSqlId;
+
+ @Override
+ public Object intercept(Invocation invocation) throws Throwable {
+ // 拦截的对象
+ StatementHandler statementHandler = (StatementHandler) invocation.getTarget();
+ // 通过反射拿到拦截对象的sqlid
+ MetaObject metaObject = MetaObject.forObject(statementHandler, SystemMetaObject.DEFAULT_OBJECT_FACTORY, SystemMetaObject.DEFAULT_OBJECT_WRAPPER_FACTORY);
+ MappedStatement mappedStatement = (MappedStatement) metaObject.getValue("delegate.mappedStatement");
+ // 配置文件中SQL语句的ID
+ String id = mappedStatement.getId();
+ // 如果SQL的ID符合我们的过滤正则表达式
+ if (id.matches(pageSqlId)) {
+ BoundSql boundSql = statementHandler.getBoundSql();
+ // 原始的SQL语句
+ String sql = boundSql.getSql();
+ Map, ?> parameter = (Map, ?>) boundSql.getParameterObject();
+ // 有参数对象才能进行
+ if (parameter != null) {
+ Paginator paginator = (Paginator) parameter.get("paginator");
+ // 有分页对象,则改造为带分页查询的SQL语句
+ if (paginator != null) {
+ String pageSql = sql + " limit " + (paginator.getPage() - 1) * paginator.getRows() + "," + paginator.getRows();
+ metaObject.setValue("delegate.boundSql.sql", pageSql);
+ }
+ }
+ }
+ return invocation.proceed();
+ }
+
+ @Override
+ public Object plugin(Object target) {
+ // 拦截的对象是否需要代理,如果是则执行intercept方法增强,不是则直接放行
+ return Plugin.wrap(target, this);
+ }
+
+ @Override
+ public void setProperties(Properties properties) {
+ // 初始化拦截器的配置
+ this.pageSqlId = properties.getProperty("pageSqlId");
+ }
+
+}
diff --git a/cms/cms-dao/src/main/java/com/zheng/mapper/BookMapper.java b/cms/cms-dao/src/main/java/com/zheng/mapper/BookMapper.java
new file mode 100644
index 00000000..78bc6613
--- /dev/null
+++ b/cms/cms-dao/src/main/java/com/zheng/mapper/BookMapper.java
@@ -0,0 +1,30 @@
+package com.zheng.mapper;
+
+import com.zheng.model.Book;
+import com.zheng.model.BookExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface BookMapper {
+ int countByExample(BookExample example);
+
+ int deleteByExample(BookExample example);
+
+ int deleteByPrimaryKey(Integer id);
+
+ int insert(Book record);
+
+ int insertSelective(Book record);
+
+ List selectByExample(BookExample example);
+
+ Book selectByPrimaryKey(Integer id);
+
+ int updateByExampleSelective(@Param("record") Book record, @Param("example") BookExample example);
+
+ int updateByExample(@Param("record") Book record, @Param("example") BookExample example);
+
+ int updateByPrimaryKeySelective(Book record);
+
+ int updateByPrimaryKey(Book record);
+}
\ No newline at end of file
diff --git a/cms/cms-dao/src/main/java/com/zheng/mapper/BookMapper.xml b/cms/cms-dao/src/main/java/com/zheng/mapper/BookMapper.xml
new file mode 100644
index 00000000..082eae0b
--- /dev/null
+++ b/cms/cms-dao/src/main/java/com/zheng/mapper/BookMapper.xml
@@ -0,0 +1,181 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ and ${criterion.condition}
+
+
+ and ${criterion.condition} #{criterion.value}
+
+
+ and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+
+
+ and ${criterion.condition}
+
+ #{listItem}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ and ${criterion.condition}
+
+
+ and ${criterion.condition} #{criterion.value}
+
+
+ and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+
+
+ and ${criterion.condition}
+
+ #{listItem}
+
+
+
+
+
+
+
+
+
+
+ id, userid, name
+
+
+
+
+ delete from book
+ where id = #{id,jdbcType=INTEGER}
+
+
+ delete from book
+
+
+
+
+
+ insert into book (id, userid, name
+ )
+ values (#{id,jdbcType=INTEGER}, #{userid,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}
+ )
+
+
+ insert into book
+
+
+ id,
+
+
+ userid,
+
+
+ name,
+
+
+
+
+ #{id,jdbcType=INTEGER},
+
+
+ #{userid,jdbcType=INTEGER},
+
+
+ #{name,jdbcType=VARCHAR},
+
+
+
+
+
+ update book
+
+
+ id = #{record.id,jdbcType=INTEGER},
+
+
+ userid = #{record.userid,jdbcType=INTEGER},
+
+
+ name = #{record.name,jdbcType=VARCHAR},
+
+
+
+
+
+
+
+ update book
+ set id = #{record.id,jdbcType=INTEGER},
+ userid = #{record.userid,jdbcType=INTEGER},
+ name = #{record.name,jdbcType=VARCHAR}
+
+
+
+
+
+ update book
+
+
+ userid = #{userid,jdbcType=INTEGER},
+
+
+ name = #{name,jdbcType=VARCHAR},
+
+
+ where id = #{id,jdbcType=INTEGER}
+
+
+ update book
+ set userid = #{userid,jdbcType=INTEGER},
+ name = #{name,jdbcType=VARCHAR}
+ where id = #{id,jdbcType=INTEGER}
+
+
\ No newline at end of file
diff --git a/cms/cms-dao/src/main/java/com/zheng/mapper/UserMapper.java b/cms/cms-dao/src/main/java/com/zheng/mapper/UserMapper.java
new file mode 100644
index 00000000..abb7e579
--- /dev/null
+++ b/cms/cms-dao/src/main/java/com/zheng/mapper/UserMapper.java
@@ -0,0 +1,36 @@
+package com.zheng.mapper;
+
+import com.zheng.model.User;
+import com.zheng.model.UserExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface UserMapper {
+ int countByExample(UserExample example);
+
+ int deleteByExample(UserExample example);
+
+ int deleteByPrimaryKey(Integer id);
+
+ int insert(User record);
+
+ int insertSelective(User record);
+
+ List selectByExampleWithBLOBs(UserExample example);
+
+ List selectByExample(UserExample example);
+
+ User selectByPrimaryKey(Integer id);
+
+ int updateByExampleSelective(@Param("record") User record, @Param("example") UserExample example);
+
+ int updateByExampleWithBLOBs(@Param("record") User record, @Param("example") UserExample example);
+
+ int updateByExample(@Param("record") User record, @Param("example") UserExample example);
+
+ int updateByPrimaryKeySelective(User record);
+
+ int updateByPrimaryKeyWithBLOBs(User record);
+
+ int updateByPrimaryKey(User record);
+}
\ No newline at end of file
diff --git a/cms/cms-dao/src/main/java/com/zheng/mapper/UserMapper.xml b/cms/cms-dao/src/main/java/com/zheng/mapper/UserMapper.xml
new file mode 100644
index 00000000..03ada7d3
--- /dev/null
+++ b/cms/cms-dao/src/main/java/com/zheng/mapper/UserMapper.xml
@@ -0,0 +1,287 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ and ${criterion.condition}
+
+
+ and ${criterion.condition} #{criterion.value}
+
+
+ and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+
+
+ and ${criterion.condition}
+
+ #{listItem}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ and ${criterion.condition}
+
+
+ and ${criterion.condition} #{criterion.value}
+
+
+ and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+
+
+ and ${criterion.condition}
+
+ #{listItem}
+
+
+
+
+
+
+
+
+
+
+ id, username, password, nickname, sex, ctime
+
+
+ content
+
+
+
+
+
+ delete from user
+ where id = #{id,jdbcType=INTEGER}
+
+
+ delete from user
+
+
+
+
+
+ insert into user (id, username, password,
+ nickname, sex, ctime,
+ content)
+ values (#{id,jdbcType=INTEGER}, #{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR},
+ #{nickname,jdbcType=VARCHAR}, #{sex,jdbcType=INTEGER}, #{ctime,jdbcType=BIGINT},
+ #{content,jdbcType=LONGVARCHAR})
+
+
+ insert into user
+
+
+ id,
+
+
+ username,
+
+
+ password,
+
+
+ nickname,
+
+
+ sex,
+
+
+ ctime,
+
+
+ content,
+
+
+
+
+ #{id,jdbcType=INTEGER},
+
+
+ #{username,jdbcType=VARCHAR},
+
+
+ #{password,jdbcType=VARCHAR},
+
+
+ #{nickname,jdbcType=VARCHAR},
+
+
+ #{sex,jdbcType=INTEGER},
+
+
+ #{ctime,jdbcType=BIGINT},
+
+
+ #{content,jdbcType=LONGVARCHAR},
+
+
+
+
+
+ update user
+
+
+ id = #{record.id,jdbcType=INTEGER},
+
+
+ username = #{record.username,jdbcType=VARCHAR},
+
+
+ password = #{record.password,jdbcType=VARCHAR},
+
+
+ nickname = #{record.nickname,jdbcType=VARCHAR},
+
+
+ sex = #{record.sex,jdbcType=INTEGER},
+
+
+ ctime = #{record.ctime,jdbcType=BIGINT},
+
+
+ content = #{record.content,jdbcType=LONGVARCHAR},
+
+
+
+
+
+
+
+ update user
+ set id = #{record.id,jdbcType=INTEGER},
+ username = #{record.username,jdbcType=VARCHAR},
+ password = #{record.password,jdbcType=VARCHAR},
+ nickname = #{record.nickname,jdbcType=VARCHAR},
+ sex = #{record.sex,jdbcType=INTEGER},
+ ctime = #{record.ctime,jdbcType=BIGINT},
+ content = #{record.content,jdbcType=LONGVARCHAR}
+
+
+
+
+
+ update user
+ set id = #{record.id,jdbcType=INTEGER},
+ username = #{record.username,jdbcType=VARCHAR},
+ password = #{record.password,jdbcType=VARCHAR},
+ nickname = #{record.nickname,jdbcType=VARCHAR},
+ sex = #{record.sex,jdbcType=INTEGER},
+ ctime = #{record.ctime,jdbcType=BIGINT}
+
+
+
+
+
+ update user
+
+
+ username = #{username,jdbcType=VARCHAR},
+
+
+ password = #{password,jdbcType=VARCHAR},
+
+
+ nickname = #{nickname,jdbcType=VARCHAR},
+
+
+ sex = #{sex,jdbcType=INTEGER},
+
+
+ ctime = #{ctime,jdbcType=BIGINT},
+
+
+ content = #{content,jdbcType=LONGVARCHAR},
+
+
+ where id = #{id,jdbcType=INTEGER}
+
+
+ update user
+ set username = #{username,jdbcType=VARCHAR},
+ password = #{password,jdbcType=VARCHAR},
+ nickname = #{nickname,jdbcType=VARCHAR},
+ sex = #{sex,jdbcType=INTEGER},
+ ctime = #{ctime,jdbcType=BIGINT},
+ content = #{content,jdbcType=LONGVARCHAR}
+ where id = #{id,jdbcType=INTEGER}
+
+
+ update user
+ set username = #{username,jdbcType=VARCHAR},
+ password = #{password,jdbcType=VARCHAR},
+ nickname = #{nickname,jdbcType=VARCHAR},
+ sex = #{sex,jdbcType=INTEGER},
+ ctime = #{ctime,jdbcType=BIGINT}
+ where id = #{id,jdbcType=INTEGER}
+
+
\ No newline at end of file
diff --git a/cms/cms-dao/src/main/java/com/zheng/model/Book.java b/cms/cms-dao/src/main/java/com/zheng/model/Book.java
new file mode 100644
index 00000000..4c5eaa65
--- /dev/null
+++ b/cms/cms-dao/src/main/java/com/zheng/model/Book.java
@@ -0,0 +1,33 @@
+package com.zheng.model;
+
+public class Book {
+ private Integer id;
+
+ private Integer userid;
+
+ private String name;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public Integer getUserid() {
+ return userid;
+ }
+
+ public void setUserid(Integer userid) {
+ this.userid = userid;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+}
\ No newline at end of file
diff --git a/cms/cms-dao/src/main/java/com/zheng/model/BookExample.java b/cms/cms-dao/src/main/java/com/zheng/model/BookExample.java
new file mode 100644
index 00000000..64145fd2
--- /dev/null
+++ b/cms/cms-dao/src/main/java/com/zheng/model/BookExample.java
@@ -0,0 +1,390 @@
+package com.zheng.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class BookExample {
+ protected String orderByClause;
+
+ protected boolean distinct;
+
+ protected List oredCriteria;
+
+ public BookExample() {
+ oredCriteria = new ArrayList();
+ }
+
+ 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 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 criteria;
+
+ protected GeneratedCriteria() {
+ super();
+ criteria = new ArrayList();
+ }
+
+ public boolean isValid() {
+ return criteria.size() > 0;
+ }
+
+ public List getAllCriteria() {
+ return criteria;
+ }
+
+ public List 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 values) {
+ addCriterion("id in", values, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdNotIn(List 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 andUseridIsNull() {
+ addCriterion("userid is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUseridIsNotNull() {
+ addCriterion("userid is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUseridEqualTo(Integer value) {
+ addCriterion("userid =", value, "userid");
+ return (Criteria) this;
+ }
+
+ public Criteria andUseridNotEqualTo(Integer value) {
+ addCriterion("userid <>", value, "userid");
+ return (Criteria) this;
+ }
+
+ public Criteria andUseridGreaterThan(Integer value) {
+ addCriterion("userid >", value, "userid");
+ return (Criteria) this;
+ }
+
+ public Criteria andUseridGreaterThanOrEqualTo(Integer value) {
+ addCriterion("userid >=", value, "userid");
+ return (Criteria) this;
+ }
+
+ public Criteria andUseridLessThan(Integer value) {
+ addCriterion("userid <", value, "userid");
+ return (Criteria) this;
+ }
+
+ public Criteria andUseridLessThanOrEqualTo(Integer value) {
+ addCriterion("userid <=", value, "userid");
+ return (Criteria) this;
+ }
+
+ public Criteria andUseridIn(List values) {
+ addCriterion("userid in", values, "userid");
+ return (Criteria) this;
+ }
+
+ public Criteria andUseridNotIn(List values) {
+ addCriterion("userid not in", values, "userid");
+ return (Criteria) this;
+ }
+
+ public Criteria andUseridBetween(Integer value1, Integer value2) {
+ addCriterion("userid between", value1, value2, "userid");
+ return (Criteria) this;
+ }
+
+ public Criteria andUseridNotBetween(Integer value1, Integer value2) {
+ addCriterion("userid not between", value1, value2, "userid");
+ return (Criteria) this;
+ }
+
+ public Criteria andNameIsNull() {
+ addCriterion("name is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andNameIsNotNull() {
+ addCriterion("name is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andNameEqualTo(String value) {
+ addCriterion("name =", value, "name");
+ return (Criteria) this;
+ }
+
+ public Criteria andNameNotEqualTo(String value) {
+ addCriterion("name <>", value, "name");
+ return (Criteria) this;
+ }
+
+ public Criteria andNameGreaterThan(String value) {
+ addCriterion("name >", value, "name");
+ return (Criteria) this;
+ }
+
+ public Criteria andNameGreaterThanOrEqualTo(String value) {
+ addCriterion("name >=", value, "name");
+ return (Criteria) this;
+ }
+
+ public Criteria andNameLessThan(String value) {
+ addCriterion("name <", value, "name");
+ return (Criteria) this;
+ }
+
+ public Criteria andNameLessThanOrEqualTo(String value) {
+ addCriterion("name <=", value, "name");
+ return (Criteria) this;
+ }
+
+ public Criteria andNameLike(String value) {
+ addCriterion("name like", value, "name");
+ return (Criteria) this;
+ }
+
+ public Criteria andNameNotLike(String value) {
+ addCriterion("name not like", value, "name");
+ return (Criteria) this;
+ }
+
+ public Criteria andNameIn(List values) {
+ addCriterion("name in", values, "name");
+ return (Criteria) this;
+ }
+
+ public Criteria andNameNotIn(List values) {
+ addCriterion("name not in", values, "name");
+ return (Criteria) this;
+ }
+
+ public Criteria andNameBetween(String value1, String value2) {
+ addCriterion("name between", value1, value2, "name");
+ return (Criteria) this;
+ }
+
+ public Criteria andNameNotBetween(String value1, String value2) {
+ addCriterion("name not between", value1, value2, "name");
+ 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);
+ }
+ }
+}
\ No newline at end of file
diff --git a/cms/cms-dao/src/main/java/com/zheng/model/User.java b/cms/cms-dao/src/main/java/com/zheng/model/User.java
new file mode 100644
index 00000000..9ee023e5
--- /dev/null
+++ b/cms/cms-dao/src/main/java/com/zheng/model/User.java
@@ -0,0 +1,73 @@
+package com.zheng.model;
+
+public class User {
+ private Integer id;
+
+ private String username;
+
+ private String password;
+
+ private String nickname;
+
+ private Integer sex;
+
+ private Long ctime;
+
+ private String content;
+
+ 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 getNickname() {
+ return nickname;
+ }
+
+ public void setNickname(String nickname) {
+ this.nickname = nickname;
+ }
+
+ public Integer getSex() {
+ return sex;
+ }
+
+ public void setSex(Integer sex) {
+ this.sex = sex;
+ }
+
+ public Long getCtime() {
+ return ctime;
+ }
+
+ public void setCtime(Long ctime) {
+ this.ctime = ctime;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+}
\ No newline at end of file
diff --git a/cms/cms-dao/src/main/java/com/zheng/model/UserExample.java b/cms/cms-dao/src/main/java/com/zheng/model/UserExample.java
new file mode 100644
index 00000000..88756118
--- /dev/null
+++ b/cms/cms-dao/src/main/java/com/zheng/model/UserExample.java
@@ -0,0 +1,590 @@
+package com.zheng.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class UserExample {
+ protected String orderByClause;
+
+ protected boolean distinct;
+
+ protected List oredCriteria;
+
+ public UserExample() {
+ oredCriteria = new ArrayList();
+ }
+
+ 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 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 criteria;
+
+ protected GeneratedCriteria() {
+ super();
+ criteria = new ArrayList();
+ }
+
+ public boolean isValid() {
+ return criteria.size() > 0;
+ }
+
+ public List getAllCriteria() {
+ return criteria;
+ }
+
+ public List 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 values) {
+ addCriterion("id in", values, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdNotIn(List 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 values) {
+ addCriterion("username in", values, "username");
+ return (Criteria) this;
+ }
+
+ public Criteria andUsernameNotIn(List 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 values) {
+ addCriterion("password in", values, "password");
+ return (Criteria) this;
+ }
+
+ public Criteria andPasswordNotIn(List 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 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 values) {
+ addCriterion("nickname in", values, "nickname");
+ return (Criteria) this;
+ }
+
+ public Criteria andNicknameNotIn(List 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 andSexIsNull() {
+ addCriterion("sex is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andSexIsNotNull() {
+ addCriterion("sex is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andSexEqualTo(Integer value) {
+ addCriterion("sex =", value, "sex");
+ return (Criteria) this;
+ }
+
+ public Criteria andSexNotEqualTo(Integer value) {
+ addCriterion("sex <>", value, "sex");
+ return (Criteria) this;
+ }
+
+ public Criteria andSexGreaterThan(Integer value) {
+ addCriterion("sex >", value, "sex");
+ return (Criteria) this;
+ }
+
+ public Criteria andSexGreaterThanOrEqualTo(Integer value) {
+ addCriterion("sex >=", value, "sex");
+ return (Criteria) this;
+ }
+
+ public Criteria andSexLessThan(Integer value) {
+ addCriterion("sex <", value, "sex");
+ return (Criteria) this;
+ }
+
+ public Criteria andSexLessThanOrEqualTo(Integer value) {
+ addCriterion("sex <=", value, "sex");
+ return (Criteria) this;
+ }
+
+ public Criteria andSexIn(List values) {
+ addCriterion("sex in", values, "sex");
+ return (Criteria) this;
+ }
+
+ public Criteria andSexNotIn(List values) {
+ addCriterion("sex not in", values, "sex");
+ return (Criteria) this;
+ }
+
+ public Criteria andSexBetween(Integer value1, Integer value2) {
+ addCriterion("sex between", value1, value2, "sex");
+ return (Criteria) this;
+ }
+
+ public Criteria andSexNotBetween(Integer value1, Integer value2) {
+ addCriterion("sex not between", value1, value2, "sex");
+ return (Criteria) this;
+ }
+
+ public Criteria andCtimeIsNull() {
+ addCriterion("ctime is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andCtimeIsNotNull() {
+ addCriterion("ctime is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andCtimeEqualTo(Long value) {
+ addCriterion("ctime =", value, "ctime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCtimeNotEqualTo(Long value) {
+ addCriterion("ctime <>", value, "ctime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCtimeGreaterThan(Long value) {
+ addCriterion("ctime >", value, "ctime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCtimeGreaterThanOrEqualTo(Long value) {
+ addCriterion("ctime >=", value, "ctime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCtimeLessThan(Long value) {
+ addCriterion("ctime <", value, "ctime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCtimeLessThanOrEqualTo(Long value) {
+ addCriterion("ctime <=", value, "ctime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCtimeIn(List values) {
+ addCriterion("ctime in", values, "ctime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCtimeNotIn(List values) {
+ addCriterion("ctime not in", values, "ctime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCtimeBetween(Long value1, Long value2) {
+ addCriterion("ctime between", value1, value2, "ctime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCtimeNotBetween(Long value1, Long value2) {
+ addCriterion("ctime not between", value1, value2, "ctime");
+ 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);
+ }
+ }
+}
\ No newline at end of file
diff --git a/cms/cms-dao/src/main/java/com/zheng/util/Paginator.java b/cms/cms-dao/src/main/java/com/zheng/util/Paginator.java
new file mode 100644
index 00000000..dc14ed10
--- /dev/null
+++ b/cms/cms-dao/src/main/java/com/zheng/util/Paginator.java
@@ -0,0 +1,229 @@
+package com.zheng.util;
+
+
+/**
+ * 分页实体类
+ * @author shuzheng
+ * @date 2016年7月6日 下午6:05:00
+ */
+public class Paginator {
+
+ private long total = 0l; // 总记录数
+ private int page = 1; // 当前页数
+ private long totalPage = 1; // 总页数
+ private int rows = 10; // 每页记录数
+ private int step = 5; // 最多显示分页页码数
+ private String param = "page"; // 分页参数名称,用于支持一个页面多个分页功能
+ private String url = ""; // 项目路径
+ private String query = ""; // 当前页所有参数
+
+ public long getTotal() {
+ return total;
+ }
+
+ public void setTotal(long total) {
+ this.total = total;
+ this.initTotalPage();
+ }
+
+ public int getPage() {
+ return page;
+ }
+
+ public void setPage(int page) {
+ this.page = page;
+ }
+
+ public long getTotalPage() {
+ return totalPage;
+ }
+
+ public void setTotalPage(long totalPage) {
+ this.totalPage = totalPage;
+ }
+
+ public int getRows() {
+ return rows;
+ }
+
+ public void setRows(int rows) {
+ // 设置个最大记录数,限制单页记录过多
+ if (rows > 10000) {
+ rows = 10000;
+ }
+ this.rows = rows;
+ this.initTotalPage();
+ }
+
+ public int getStep() {
+ return step;
+ }
+
+ public void setStep(int step) {
+ this.step = step;
+ }
+
+ public String getParam() {
+ return param;
+ }
+
+ public void setParam(String param) {
+ this.param = param;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
+ public String getQuery() {
+ return query;
+ }
+
+ public void setQuery(String query) {
+ this.query = query;
+ }
+
+ /**
+ * 初始化分页信息
+ */
+ public void initTotalPage() {
+ totalPage = (total % rows) == 0 ? (total / rows) : ((total / rows) + 1);
+ if (page > totalPage) {
+ page = (int) totalPage;
+ }
+ if (page < 1) {
+ page = 1;
+ }
+ }
+
+ /**
+ * 生成简单的分页页面内容
+ * @return
+ */
+ public String getHtml() {
+ // 根据request获取当前url,包括参数,如果有已存在名称未paramname的参数,剔除掉,后面会追加新的参数
+ //String contextPath = request.getContextPath();
+ //String requestURI = request.getRequestURI();
+ //String url = contextPath + requestURI;
+ //String url = request.getRequestURI();
+ //String query = request.getQueryString();
+ if (query != null) {
+ String params = "";
+ String[] querys = query.split("&");
+ for (int i = 0; i < querys.length; i++) {
+ if (querys[i].startsWith(param))
+ continue;
+ if (params.equals(""))
+ params += querys[i];
+ else
+ params += "&" + querys[i];
+ }
+ if (!params.equals(""))
+ url += "?" + params;
+ }
+ // 结果html
+ String pages = "";
+
+ int pageCount = (int) Math.ceil((double) total / rows);// 求总页数
+ if (pageCount <= 1) {
+ return pages;
+ }
+ if (page > pageCount) {
+ page = pageCount;// 如果分页变量大总页数,则将分页变量设计为总页数
+ }
+ if (page <= 0) {
+ page = 1;// 如果分页变量小于1,则将分页变量设为1
+ }
+
+ // 显示上一页
+ if (page > 1) {
+ if (url.contains("?")) {
+ pages = pages.concat("上一页\n");
+ } else {
+ pages = pages.concat("上一页\n");
+ }
+ } else {
+ // pages =
+ // pages.concat("上一页\n");
+ }
+ // 如果总页数大于要显示的个数,则拼接显示
+ if (pageCount > step) {
+ // 显示分页码
+ int listBegin = (page - (int) Math.floor((double) step / 2));// 从第几页开始显示分页信息
+ if (listBegin < 1) {
+ listBegin = 1;
+ }
+ // 显示第1页
+ if (listBegin >= 2) {
+ if (url.contains("?")) {
+ pages = pages.concat("1 ... \n");
+ } else {
+ pages = pages.concat("1 ... \n");
+ }
+ }
+ // 当前页数右侧还有未显示页码时
+ if (pageCount - page >= page - listBegin) {
+ for (int i = listBegin; i < (listBegin + step); i++) {
+ if (i != page) {
+ if (url.contains("?")) {
+ pages = pages.concat("" + i + "\n");
+ } else {
+ pages = pages.concat("" + i + "\n");
+ }
+ } else {
+ pages = pages.concat("" + i + "\n");
+ }
+ }
+ // 显示最后1页
+ if (listBegin + step <= pageCount) {
+ if (url.contains("?")) {
+ pages = pages.concat(" ... " + pageCount + "\n");
+ } else {
+ pages = pages.concat(" ... " + pageCount + "\n");
+ }
+ }
+ } else { // 显示最后剩余的几个页码
+ for (int i = (pageCount - step) + 1; i <= pageCount; i++) {
+ if (i != page) {
+ if (url.contains("?")) {
+ pages = pages.concat("" + i + "\n");
+ } else {
+ pages = pages.concat("" + i + "\n");
+ }
+ } else {
+ pages = pages.concat("" + i + "\n");
+ }
+ }
+ }
+ } else { // 总页数小于等于step时,直接显示
+ for (int i = 1; i <= pageCount; i++) {
+ if (i != page) {
+ if (url.contains("?")) {
+ pages = pages.concat("" + i + "\n");
+ } else {
+ pages = pages.concat("" + i + "\n");
+ }
+ } else {
+ pages = pages.concat("" + i + "\n");
+ }
+ }
+ }
+ // 显示下一页
+ if (page < pageCount) {
+ if (url.contains("?")) {
+ pages = pages.concat("下一页\n");
+ } else {
+ pages = pages.concat("下一页\n");
+ }
+ } else {
+ // pages =
+ // pages.concat("下一页\n");
+ }
+ return pages;
+ }
+
+}
diff --git a/cms/cms-dao/src/main/resources/applicationContext-jdbc.xml b/cms/cms-dao/src/main/resources/applicationContext-jdbc.xml
new file mode 100644
index 00000000..d5ca07ce
--- /dev/null
+++ b/cms/cms-dao/src/main/resources/applicationContext-jdbc.xml
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cms/cms-dao/src/main/resources/generatorConfig.xml b/cms/cms-dao/src/main/resources/generatorConfig.xml
new file mode 100644
index 00000000..60d9e1b3
--- /dev/null
+++ b/cms/cms-dao/src/main/resources/generatorConfig.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cms/cms-dao/src/main/resources/jdbc.properties b/cms/cms-dao/src/main/resources/jdbc.properties
new file mode 100644
index 00000000..86f767dc
--- /dev/null
+++ b/cms/cms-dao/src/main/resources/jdbc.properties
@@ -0,0 +1,4 @@
+jdbc.driver=com.mysql.jdbc.Driver
+jdbc.url=jdbc\:mysql\://127.0.0.1\:3306/zheng?useUnicode\=true&characterEncoding\=utf-8&autoReconnect\=true
+jdbc.username=root
+jdbc.password=123456
\ No newline at end of file
diff --git a/cms/cms-dao/src/main/resources/mybatis-config.xml b/cms/cms-dao/src/main/resources/mybatis-config.xml
new file mode 100644
index 00000000..7fbc3529
--- /dev/null
+++ b/cms/cms-dao/src/main/resources/mybatis-config.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cms/pom.xml b/cms/pom.xml
index 1354d031..a8c082d1 100644
--- a/cms/pom.xml
+++ b/cms/pom.xml
@@ -14,4 +14,7 @@
UTF-8
+
+ cms-dao
+
\ No newline at end of file