这个项目是本人接触的第一个springboot项目,之前也没有系统的学习过,好在有我的同事师傅的指点,才能顺利完成。
首先这个项目的技术构成springboot+sqlservice+
Thymeleaf 项目的结构如下
编写整个项目时遇到过如下问题
1:如何将sql语句写到mapper文件中
springboot默认的在数据库访问的接口类方法上写sql语句如
public interface BlogMapper {
@Select("select * from article")
public ArrayList<BlogEntity> getAll();
}
如果想将sql语句抽到mapper文件中需要在
application.properties配置中添加
并在mapper文件里通过mybatis.mapper-locations=classpath:mapper/*.xml
在mappe接口中通过@Mapper注解来映射。<mapper namespace="mapper对应的接口路径">
@Mapper public interface BlackEdmIdsMapper { /** * 查询总记录数 * @return */ int countSqlData(); }
2:对thymeleaf模版语法的使用
2.1: 在springboot项目中如要使用thymeleaf模版需要在pom文件中加
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<version>1.5.3.RELEASE</version>
</dependency>
2.2: 在html语句中thymeleaf的语法
2.2.1 读取后台传的单个对象 使用th:text或者th:value
<span th:text="${object.name}"></span>
2.2.2 读取后台传的集合列表
<tr th:each="email,emailStat : ${emailList}">
<td th:text="${emailStat.index+1}"></td>
<td th:text="${email.id}"></td>
<td th:text="${email.descr}"></td>
<td th:text="${email.mailFrom}"></td>
<td th:text="${email.mailTo}"></td>
<td th:text="${email.mailTitle}"></td>
<td th:text="${email.replyTo}"></td>
</tr>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<version>1.5.3.RELEASE</version>
</dependency>
2.2: 在html语句中thymeleaf的语法
<span th:text="${object.name}"></span>
<tr th:each="email,emailStat : ${emailList}">
<td th:text="${emailStat.index+1}"></td>
<td th:text="${email.id}"></td>
<td th:text="${email.descr}"></td>
<td th:text="${email.mailFrom}"></td>
<td th:text="${email.mailTo}"></td>
<td th:text="${email.mailTitle}"></td>
<td th:text="${email.replyTo}"></td>
</tr>
2.2.3 switch-case语句
<td th:switch="${email.status}">
<p th:case="'N'" style="color: red;">不可用</p>
<p th:case="'Y'" style="color: green;">可用</p>
</td>
2.2.4 thymeleaf语句动态生存select
<td th:switch="${email.status}">
<p th:case="'N'" style="color: red;">不可用</p>
<p th:case="'Y'" style="color: green;">可用</p>
</td>
<select id="sms_app_id" name="smsAppId">
<option th:each="e,eStat:${smsAppAll}" th:value="${e.smsAppId}" th:text=" ${e.smsAppName}" >
</option>
</select>
2.2.5 select option动态匹配选中选中
<select id="sms_app_id" name="smsAppId">
<option th:each="e,eStat:${smsAppAll}" th:value="${e.smsAppId}" th:text=" ${e.smsAppName}" >
</option>
</select>
<option th:each="e,eStat:${smsAppAll}" th:selected="(${e.smsAppId} == ${smsDao.smsAppId})" th:value="${e.smsAppId}" th:text=" ${e.smsAppName}" >
2.2.6 a标签如何使用thymeleaf
<option th:each="e,eStat:${smsAppAll}" th:selected="(${e.smsAppId} == ${smsDao.smsAppId})" th:value="${e.smsAppId}" th:text=" ${e.smsAppName}" >
<a class="btn btn-success" href="#" th:href="@{/sms/smslist(currentPage=${currentPage})}">返回列表</a>
2.2.6 js如何使用thymeleaf 需添加 th:inline="javascript"<script type="text/javascript" th:inline="javascript">
BUI.use('common/main',function(){
var config =$.parseJSON('['+[[${json}]]+']');
});
</script>
<a class="btn btn-success" href="#" th:href="@{/sms/smslist(currentPage=${currentPage})}">返回列表</a>
<script type="text/javascript" th:inline="javascript">
BUI.use('common/main',function(){
var config =$.parseJSON('['+[[${json}]]+']');
});
</script>
3:如何添加日志文件,这个项目采用的是log4j2
首先要在pom文件中添加依赖包
<!-- 添加spring-boot-starter-log4j2的依赖包 -->
<!-- day04 使用log4j2添加包,此时版本是log4j 2.6.2 -->
<dependency> <!-- exclude掉spring-boot的默认log配置 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency> <!-- 引入log4j2依赖 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
然后在application.properties中添加配置#log4j2配置文件
logging.config=classpath:log4j2.xml
<!-- 添加spring-boot-starter-log4j2的依赖包 -->
<!-- day04 使用log4j2添加包,此时版本是log4j 2.6.2 -->
<dependency> <!-- exclude掉spring-boot的默认log配置 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency> <!-- 引入log4j2依赖 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
#log4j2配置文件
logging.config=classpath:log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出-->
<!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数-->
<configuration status="WARN" monitorInterval="30">
<!--先定义所有的appender-->
<appenders>
<!--这个输出控制台的配置-->
<console name="Console" target="SYSTEM_OUT">
<!--输出日志的格式-->
<PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
</console>
<!--文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,这个也挺有用的,适合临时测试用-->
<!-- <File name="log" fileName="log/test.log" append="false">
<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
</File> -->
<!-- 这个会打印出所有的info及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
<RollingFile name="RollingFileInfo" fileName="logs/info.log"
filePattern="logs/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log">
<!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
</RollingFile>
<RollingFile name="RollingFileWarn" fileName="logs/warn.log"
filePattern="logs/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log">
<ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
<!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,这里设置了20 -->
<DefaultRolloverStrategy max="20"/>
</RollingFile>
<RollingFile name="RollingFileError" fileName="logs/error.log"
filePattern="logs/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log">
<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
</RollingFile>
</appenders>
<!--然后定义logger,只有定义了logger并引入的appender,appender才会生效-->
<loggers>
<!--过滤掉spring和mybatis的一些无用的DEBUG信息-->
<logger name="org.springframework" level="INFO"></logger>
<logger name="org.mybatis" level="INFO"></logger>
<root level="all">
<appender-ref ref="Console"/>
<appender-ref ref="RollingFileInfo"/>
<appender-ref ref="RollingFileWarn"/>
<appender-ref ref="RollingFileError"/>
</root>
</loggers>
</configuration>
4:项目在打包运行后如何将配置文件拿到jar外方便对数据库连接进行修改
数据库连接字符串是写在application.properties 把它抽出来(更改为了xzs.properties)方便打包时更改数据库连接。(抽出application.properties有很多种方法详见点击打开链接)我用的是在启动类通过@PropertySource加载
@SpringBootApplication
@PropertySource(value={"file:xzs.properties"})//跟配置文件路径
public class JavaMessageCenterApplication {
public static void main(String[] args) {
SpringApplication.run(JavaMessageCenterApplication.class, args);
}
}
@SpringBootApplication
@PropertySource(value={"file:xzs.properties"})//跟配置文件路径
public class JavaMessageCenterApplication {
public static void main(String[] args) {
SpringApplication.run(JavaMessageCenterApplication.class, args);
}
}
在代码方面需要注意的是对页面传值合法性的判断,对异常的try catch
下面是从mapper到controller的代码
mapper
package com.example.messageCenter.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.example.messageCenter.entity.EdmSettingDao;
/**
* 邮件列表mapper
* @author xzs
*
*/
@Mapper
public interface EdmSettingMapper {
/**
* 查询总记录数
* @return
*/
int countSqlData();
/**
* 分页查询
* @param currentPage 查询页数
* @param pageDataCount 显示条数
* @return
*/
List<EdmSettingDao> pagingQuery(@Param("currentPage")int currentPage,@Param("pageDataCount")int pageDataCount);
/**
* 插入邮件数据
* @param emailDao
* @return
*/
int insertEmail(EdmSettingDao emailList);
/**
* 验证id是否存在
* @param emailDao
* @return
*/
int verificationId(@Param("id")int id);
/**
* 根据条件查询
* @param id
* @param descr
* @return
*/
List<EdmSettingDao> selectEmailIdOrEmailName(@Param("id")String id,@Param("descr")String descr);
/**
* 根据id查询
* @param id
* @return
*/
EdmSettingDao selectById(@Param("id")String id);
/**
* 修改
* @param emailList
* @return
*/
int updateEmail(EdmSettingDao emailList);
mapper.xml
package com.example.messageCenter.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.example.messageCenter.entity.EdmSettingDao;
/**
* 邮件列表mapper
* @author xzs
*
*/
@Mapper
public interface EdmSettingMapper {
/**
* 查询总记录数
* @return
*/
int countSqlData();
/**
* 分页查询
* @param currentPage 查询页数
* @param pageDataCount 显示条数
* @return
*/
List<EdmSettingDao> pagingQuery(@Param("currentPage")int currentPage,@Param("pageDataCount")int pageDataCount);
/**
* 插入邮件数据
* @param emailDao
* @return
*/
int insertEmail(EdmSettingDao emailList);
/**
* 验证id是否存在
* @param emailDao
* @return
*/
int verificationId(@Param("id")int id);
/**
* 根据条件查询
* @param id
* @param descr
* @return
*/
List<EdmSettingDao> selectEmailIdOrEmailName(@Param("id")String id,@Param("descr")String descr);
/**
* 根据id查询
* @param id
* @return
*/
EdmSettingDao selectById(@Param("id")String id);
/**
* 修改
* @param emailList
* @return
*/
int updateEmail(EdmSettingDao emailList);
<?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.example.messageCenter.mapper.EdmSettingMapper">
<!-- 查询总条数 -->
<select id="countSqlData" resultType="int">
select count(id) from
edm_setting(nolock)
</select>
<!-- 验证id是否存在 -->
<select id="verificationId" parameterType="int" resultType="int">
select count(id) from dbo.edm_setting where id=#{id}
</select>
<!-- 分页查询 -->
<select id="pagingQuery" parameterType="map"
resultType="com.example.messageCenter.entity.EdmSettingDao">
select
id,descr,mail_from,mail_to,mail_title,reply_to,status from
edm_setting(nolock) ORDER BY update_date DESC OFFSET
(#{currentPage}-1)*#{pageDataCount} ROWS FETCH NEXT #{pageDataCount}
ROW ONLY
</select>
<insert id="insertEmail" parameterType="com.example.messageCenter.entity.EdmSettingDao">
insert into edm_setting
(
id,
descr,
mail_title,
mail_body,
mail_from,
mail_to,
mail_cc,
mail_bcc,
<if test="bizType !=null and bizType!=''">
biz_type,
</if>
<if test="edmAppId !=null and edmAppId!=''">
edm_app_id,
</if>
<if test="status !=null and status=''">
status,
</if>
reply_to
)
VALUES (
#{id},
#{descr},
#{mailTitle},
#{mailBody},
#{mailFrom},
#{mailTo},
#{mailCc},
#{mailBcc},
<if test="bizType !=null and bizType!=''">
#{bizType},
</if>
<if test="edmAppId !=null and edmAppId!=''">
#{edmAppId},
</if>
<if test="status !=null and status=''">
#{status},
</if>
#{replyTo}
)
</insert>
<!-- 根据搜索条件查询设备 -->
<select id="selectEmailIdOrEmailName" parameterType="map"
resultType="com.example.messageCenter.entity.EdmSettingDao">
SELECT id,descr,mail_from,mail_to,mail_title,reply_to,status from
edm_setting(nolock)
WHERE 1=1
<if test="id !=null and id!=''">
AND id=#{id}
</if>
<if test="descr !=null and descr!=''">
AND descr like CONCAT(CONCAT('%', #{descr}), '%')
</if>
ORDER BY update_date DESC
</select>
<!-- 根据ID查询 -->
<select id="selectById" parameterType="map"
resultType="com.example.messageCenter.entity.EdmSettingDao">
SELECT
id,descr,mail_title,mail_body,mail_from,mail_to,mail_cc,mail_bcc,reply_to,biz_type,edm_app_id,status
from edm_setting(nolock)
WHERE id=#{id}
</select>
<update id="updateEmail" parameterType="com.example.messageCenter.entity.EdmSettingDao">
update edm_setting set
descr=#{descr},
mail_title=#{mailTitle},
mail_body=#{mailBody},
mail_from=#{mailFrom},
mail_to=#{mailTo},
mail_cc=#{mailCc},
mail_bcc=#{mailBcc},
reply_to=#{replyTo},
<if test="bizType !=null and bizType!=''">
biz_type=#{bizType},
</if>
<if test="bizType==''">
biz_type=null,
</if>
<if test="edmAppId !=null and edmAppId!=''">
edm_app_id=#{edmAppId},
</if>
<if test=" edmAppId==''">
edm_app_id=null,
</if>
<if test="status !=null and status!=''">
status=#{status},
</if>
<if test="status==''">
status=null,
</if>
update_date=GETDATE()
where
id=#{id}
</update>
</mapper>
<?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.example.messageCenter.mapper.EdmSettingMapper">
<!-- 查询总条数 -->
<select id="countSqlData" resultType="int">
select count(id) from
edm_setting(nolock)
</select>
<!-- 验证id是否存在 -->
<select id="verificationId" parameterType="int" resultType="int">
select count(id) from dbo.edm_setting where id=#{id}
</select>
<!-- 分页查询 -->
<select id="pagingQuery" parameterType="map"
resultType="com.example.messageCenter.entity.EdmSettingDao">
select
id,descr,mail_from,mail_to,mail_title,reply_to,status from
edm_setting(nolock) ORDER BY update_date DESC OFFSET
(#{currentPage}-1)*#{pageDataCount} ROWS FETCH NEXT #{pageDataCount}
ROW ONLY
</select>
<insert id="insertEmail" parameterType="com.example.messageCenter.entity.EdmSettingDao">
insert into edm_setting
(
id,
descr,
mail_title,
mail_body,
mail_from,
mail_to,
mail_cc,
mail_bcc,
<if test="bizType !=null and bizType!=''">
biz_type,
</if>
<if test="edmAppId !=null and edmAppId!=''">
edm_app_id,
</if>
<if test="status !=null and status=''">
status,
</if>
reply_to
)
VALUES (
#{id},
#{descr},
#{mailTitle},
#{mailBody},
#{mailFrom},
#{mailTo},
#{mailCc},
#{mailBcc},
<if test="bizType !=null and bizType!=''">
#{bizType},
</if>
<if test="edmAppId !=null and edmAppId!=''">
#{edmAppId},
</if>
<if test="status !=null and status=''">
#{status},
</if>
#{replyTo}
)
</insert>
<!-- 根据搜索条件查询设备 -->
<select id="selectEmailIdOrEmailName" parameterType="map"
resultType="com.example.messageCenter.entity.EdmSettingDao">
SELECT id,descr,mail_from,mail_to,mail_title,reply_to,status from
edm_setting(nolock)
WHERE 1=1
<if test="id !=null and id!=''">
AND id=#{id}
</if>
<if test="descr !=null and descr!=''">
AND descr like CONCAT(CONCAT('%', #{descr}), '%')
</if>
ORDER BY update_date DESC
</select>
<!-- 根据ID查询 -->
<select id="selectById" parameterType="map"
resultType="com.example.messageCenter.entity.EdmSettingDao">
SELECT
id,descr,mail_title,mail_body,mail_from,mail_to,mail_cc,mail_bcc,reply_to,biz_type,edm_app_id,status
from edm_setting(nolock)
WHERE id=#{id}
</select>
<update id="updateEmail" parameterType="com.example.messageCenter.entity.EdmSettingDao">
update edm_setting set
descr=#{descr},
mail_title=#{mailTitle},
mail_body=#{mailBody},
mail_from=#{mailFrom},
mail_to=#{mailTo},
mail_cc=#{mailCc},
mail_bcc=#{mailBcc},
reply_to=#{replyTo},
<if test="bizType !=null and bizType!=''">
biz_type=#{bizType},
</if>
<if test="bizType==''">
biz_type=null,
</if>
<if test="edmAppId !=null and edmAppId!=''">
edm_app_id=#{edmAppId},
</if>
<if test=" edmAppId==''">
edm_app_id=null,
</if>
<if test="status !=null and status!=''">
status=#{status},
</if>
<if test="status==''">
status=null,
</if>
update_date=GETDATE()
where
id=#{id}
</update>
</mapper>
service interface
package com.example.messageCenter.service;
import java.util.List;
import com.example.messageCenter.dataResult.DataResult;
import com.example.messageCenter.entity.EdmSettingDao;
/**
* 邮件列表service
* @author xzs
*
*/
public interface EdmSettingService {
/**
* 总记录数
* @return
*/
int countSqlData();
/**
* 总页数
* @param sqlCount
* @return
*/
int returnCountPage();
/**
* 分页查询
* @param currentPage 查询页数
* @return
*/
List<EdmSettingDao> pagingQuery(int currentPage);
/**
* 插入邮件数据
* @param emailDao
* @return
*/
DataResult insertEmail(EdmSettingDao emailDao);
/**
* 根据条件查询
* @param id
* @param descr
* @return
*/
List<EdmSettingDao> selectEmailIdOrEmailName(String idStr,String descr);
/**
* 根据id查询
* @return
*/
EdmSettingDao selectById(String id);
/**
* 修改
* @param emailList
* @return
*/
DataResult updateEmail(EdmSettingDao emailList);
/**
* 验证id是否存在
* @param emailDao
* @return
*/
DataResult verificationId(String idStr);
}
service impl
package com.example.messageCenter.service;
import java.util.List;
import com.example.messageCenter.dataResult.DataResult;
import com.example.messageCenter.entity.EdmSettingDao;
/**
* 邮件列表service
* @author xzs
*
*/
public interface EdmSettingService {
/**
* 总记录数
* @return
*/
int countSqlData();
/**
* 总页数
* @param sqlCount
* @return
*/
int returnCountPage();
/**
* 分页查询
* @param currentPage 查询页数
* @return
*/
List<EdmSettingDao> pagingQuery(int currentPage);
/**
* 插入邮件数据
* @param emailDao
* @return
*/
DataResult insertEmail(EdmSettingDao emailDao);
/**
* 根据条件查询
* @param id
* @param descr
* @return
*/
List<EdmSettingDao> selectEmailIdOrEmailName(String idStr,String descr);
/**
* 根据id查询
* @return
*/
EdmSettingDao selectById(String id);
/**
* 修改
* @param emailList
* @return
*/
DataResult updateEmail(EdmSettingDao emailList);
/**
* 验证id是否存在
* @param emailDao
* @return
*/
DataResult verificationId(String idStr);
}
package com.example.messageCenter.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.example.messageCenter.dataResult.DataResult;
import com.example.messageCenter.entity.SmsAppDao;
import com.example.messageCenter.entity.SmsGroupDao;
import com.example.messageCenter.entity.SmsSettingDao;
import com.example.messageCenter.mapper.SmsAppMapper;
import com.example.messageCenter.mapper.SmsGroupMapper;
import com.example.messageCenter.mapper.SmsSettingMapper;
import com.example.messageCenter.service.SmsSettingService;
import com.example.messageCenter.util.PageUtil;
@Service
public class EdmSettingServiceImpl implements SmsSettingService {
@Autowired
private SmsSettingMapper smsMaper;
@Autowired
private SmsGroupMapper smsGroup;
@Autowired
private SmsAppMapper smsApp;
@Override
public int countSqlData() {
int sqlCount = smsMaper.countSqlData();
return sqlCount;
}
@Override
public int returnCountPage() {
int sqlCount = countSqlData();
int pageCount = PageUtil.returnPageCount(sqlCount);
return pageCount;
}
@Override
public List<SmsSettingDao> pagingQuery(int currentPage) {
List<SmsSettingDao> pagingQuery = smsMaper.pagingQuery(currentPage, PageUtil.PAGEDATACOUNT);
return pagingQuery;
}
@Override
public DataResult insertSms(SmsSettingDao smsDao) {
DataResult data = new DataResult();
int id = smsDao.getSmsId();
if(smsMaper.verificationId(id)>0){//最好判断一下id是否为空
//说明该id已经存在
data.setIsSuccess(false);
data.setMessage("ID为:"+id+"数据已存在,请另外输入ID");
}else{
int insertSms = smsMaper.insertSmsSetting(smsDao);
if(insertSms>0){
data.setIsSuccess(true);
data.setMessage("短信添加成功");
}else{
data.setIsSuccess(false);
data.setMessage("短信添加失败");
}
}
return data;
}
@Override
public List<SmsSettingDao> selectSmsIdOrSmsName(String idStr, String descr) {
List<SmsSettingDao> list =null;
if((idStr==null||"".equals(idStr))&&(descr==null||"".equals(descr))){
list = smsMaper.pagingQuery(1, PageUtil.PAGEDATACOUNT);
}else{
try {
list = smsMaper.selectSmsIdOrSmsName(idStr, descr);
} catch (NumberFormatException e) {
e.printStackTrace();
}}
return list;
}
@Override
public SmsSettingDao selectById(String id) {
// 需要做一下id是否为数字的验证
return smsMaper.selectById(id);
}
@Override
public DataResult updateSms(SmsSettingDao smsDao) {
DataResult data = new DataResult();
int updateEmail = smsMaper.updateSms(smsDao);
if(updateEmail>0){
data.setIsSuccess(true);
data.setMessage("修改成功");
}else{
data.setIsSuccess(false);
data.setMessage("修改失败,请重新修改");
}
return data;
}
@Override
public DataResult verificationId(String idStr) {
DataResult data = new DataResult();
try {
int id = Integer.parseInt(idStr);
id = smsMaper.verificationId(id);
if(id>0){
data.setIsSuccess(true);
data.setMessage("已存在该ID数据");
}else{
data.setIsSuccess(false);
data.setMessage("不存在该ID数据");
}
} catch (NumberFormatException e) {
e.printStackTrace();
}
return data;
}
@Override
public List<SmsAppDao> selectSmsAppAll() {
// TODO Auto-generated method stub
return smsApp.selectAllSmsApp();
}
@Override
public List<SmsGroupDao> selectSmsTypeAll() {
// TODO Auto-generated method stub
return smsGroup.selectAllSmsGroup();
}
}
package com.example.messageCenter.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.example.messageCenter.dataResult.DataResult;
import com.example.messageCenter.entity.SmsAppDao;
import com.example.messageCenter.entity.SmsGroupDao;
import com.example.messageCenter.entity.SmsSettingDao;
import com.example.messageCenter.mapper.SmsAppMapper;
import com.example.messageCenter.mapper.SmsGroupMapper;
import com.example.messageCenter.mapper.SmsSettingMapper;
import com.example.messageCenter.service.SmsSettingService;
import com.example.messageCenter.util.PageUtil;
@Service
public class EdmSettingServiceImpl implements SmsSettingService {
@Autowired
private SmsSettingMapper smsMaper;
@Autowired
private SmsGroupMapper smsGroup;
@Autowired
private SmsAppMapper smsApp;
@Override
public int countSqlData() {
int sqlCount = smsMaper.countSqlData();
return sqlCount;
}
@Override
public int returnCountPage() {
int sqlCount = countSqlData();
int pageCount = PageUtil.returnPageCount(sqlCount);
return pageCount;
}
@Override
public List<SmsSettingDao> pagingQuery(int currentPage) {
List<SmsSettingDao> pagingQuery = smsMaper.pagingQuery(currentPage, PageUtil.PAGEDATACOUNT);
return pagingQuery;
}
@Override
public DataResult insertSms(SmsSettingDao smsDao) {
DataResult data = new DataResult();
int id = smsDao.getSmsId();
if(smsMaper.verificationId(id)>0){//最好判断一下id是否为空
//说明该id已经存在
data.setIsSuccess(false);
data.setMessage("ID为:"+id+"数据已存在,请另外输入ID");
}else{
int insertSms = smsMaper.insertSmsSetting(smsDao);
if(insertSms>0){
data.setIsSuccess(true);
data.setMessage("短信添加成功");
}else{
data.setIsSuccess(false);
data.setMessage("短信添加失败");
}
}
return data;
}
@Override
public List<SmsSettingDao> selectSmsIdOrSmsName(String idStr, String descr) {
List<SmsSettingDao> list =null;
if((idStr==null||"".equals(idStr))&&(descr==null||"".equals(descr))){
list = smsMaper.pagingQuery(1, PageUtil.PAGEDATACOUNT);
}else{
try {
list = smsMaper.selectSmsIdOrSmsName(idStr, descr);
} catch (NumberFormatException e) {
e.printStackTrace();
}}
return list;
}
@Override
public SmsSettingDao selectById(String id) {
// 需要做一下id是否为数字的验证
return smsMaper.selectById(id);
}
@Override
public DataResult updateSms(SmsSettingDao smsDao) {
DataResult data = new DataResult();
int updateEmail = smsMaper.updateSms(smsDao);
if(updateEmail>0){
data.setIsSuccess(true);
data.setMessage("修改成功");
}else{
data.setIsSuccess(false);
data.setMessage("修改失败,请重新修改");
}
return data;
}
@Override
public DataResult verificationId(String idStr) {
DataResult data = new DataResult();
try {
int id = Integer.parseInt(idStr);
id = smsMaper.verificationId(id);
if(id>0){
data.setIsSuccess(true);
data.setMessage("已存在该ID数据");
}else{
data.setIsSuccess(false);
data.setMessage("不存在该ID数据");
}
} catch (NumberFormatException e) {
e.printStackTrace();
}
return data;
}
@Override
public List<SmsAppDao> selectSmsAppAll() {
// TODO Auto-generated method stub
return smsApp.selectAllSmsApp();
}
@Override
public List<SmsGroupDao> selectSmsTypeAll() {
// TODO Auto-generated method stub
return smsGroup.selectAllSmsGroup();
}
}
package com.example.messageCenter.controller;
import java.util.HashMap;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.example.messageCenter.dataResult.DataResult;
import com.example.messageCenter.entity.EdmSettingDao;
import com.example.messageCenter.service.EdmSettingService;
import com.example.messageCenter.util.LoginUtil;
import com.example.messageCenter.util.PageUtil;
/**
* 邮件列表controller
* @author xzs
*
*/
@Controller
@RequestMapping("/email")
public class EdmSettingController {
@Autowired
private EdmSettingService emailList;
@RequestMapping("/emaillist")
public String toEmailList(HttpServletRequest httpRequest,HashMap<String, Object> map){
String currentPageStr = httpRequest.getParameter("currentPage");
int sqlDataCount = emailList.countSqlData();
int pageCount = emailList.returnCountPage();
int currentPage =1;//默认当前页为1
if(currentPageStr==null){
currentPage =1;
}else{
currentPage=PageUtil.pagingLogic(currentPageStr, pageCount);
}
boolean session = LoginUtil.getSession(httpRequest);
if(session){
List<EdmSettingDao> selectAllS = emailList.pagingQuery(currentPage);
map.put("currentPage", currentPage);
map.put("sqlDataCount", sqlDataCount);
map.put("pageCount", pageCount);
map.put("emailList", selectAllS);
return "/emaillist/index";
}else{//未登录
return "/public/login";
}
}
/**
* 跳转到添加邮件页面
* @param httpRequest
* @param map
* @return
*/
@RequestMapping("/addEmailPage")
public String addEmailPage(HttpServletRequest httpRequest,HashMap<String, Object> map){
boolean session = LoginUtil.getSession(httpRequest);
if(session){
return "/emaillist/add";
}else{//未登录
return "/public/login";
}
}
/**
* 添加邮件
* @param emailListDao
* @param httpRequest
* @return
*/
@RequestMapping(value = "/addEmail", method = RequestMethod.POST)
@ResponseBody
public DataResult addEmail(EdmSettingDao emailListDao,HttpServletRequest httpRequest){
DataResult insertEmail = new DataResult();
boolean session = LoginUtil.getSession(httpRequest);
if(session){
insertEmail = emailList.insertEmail(emailListDao);
//System.out.println(insertEmail);
return insertEmail;
}else{//未登录
insertEmail.setData(false);
insertEmail.setIsSuccess(false);
insertEmail.setMessage("请重新登录");
return insertEmail;
}
}
@RequestMapping("/selectEmail")
public String selectEmail(HttpServletRequest httpRequest,HashMap<String, Object> map){
String idStr = httpRequest.getParameter("id");
String descr = httpRequest.getParameter("descr");
boolean session = LoginUtil.getSession(httpRequest);
if(session){
List<EdmSettingDao> selectAllS = emailList.selectEmailIdOrEmailName(idStr, descr);
map.put("idStr", idStr);
map.put("descr", descr);
map.put("currentPage", 1);
map.put("sqlDataCount", selectAllS.size());
map.put("pageCount", 1);
map.put("emailList", selectAllS);
return "/emaillist/index";
}else{//未登录
return "/public/login";
}
}
/**
* 查看或修改
* @param httpRequest
* @param map
* @return
*/
@RequestMapping("/selectById")
public String selectById(HttpServletRequest httpRequest,HashMap<String, Object> map){
String idStr = httpRequest.getParameter("id");
String currentPage = httpRequest.getParameter("currentPage");
boolean session = LoginUtil.getSession(httpRequest);
if(session){
EdmSettingDao emailDao = emailList.selectById(idStr);
//System.out.println(emailDao.toString());
//把当前页传递过去,返回列表时好定位
map.put("currentPage", currentPage);
map.put("emailDao", emailDao);
return "/emaillist/edit";
}else{//未登录
return "/public/login";
}
}
/**
* 添加邮件
* @param emailListDao
* @param httpRequest
* @return
*/
@RequestMapping(value = "/updateEmail", method = RequestMethod.POST)
@ResponseBody
public DataResult updateEmail(EdmSettingDao emailListDao,HttpServletRequest httpRequest){
DataResult insertEmail = new DataResult();
boolean session = LoginUtil.getSession(httpRequest);
if(session){
//System.out.println("修改:"+emailListDao);
insertEmail = emailList.updateEmail(emailListDao);
return insertEmail;
}else{//未登录
insertEmail.setData(false);
insertEmail.setIsSuccess(false);
insertEmail.setMessage("请重新登录");
return insertEmail;
}
}
/**
* 添加邮件
* @param emailListDao
* @param httpRequest
* @return
*/
@RequestMapping(value = "/verificationId")
@ResponseBody
public DataResult verificationId(HttpServletRequest httpRequest){
DataResult insertEmail = new DataResult();
boolean session = LoginUtil.getSession(httpRequest);
if(session){
//System.out.println("修改:"+emailListDao);
String idStr = httpRequest.getParameter("id");
System.out.println("idStr="+idStr);
insertEmail = emailList.verificationId(idStr);
System.out.println(insertEmail.toString());
return insertEmail;
}else{//未登录
insertEmail.setData(false);
insertEmail.setIsSuccess(false);
insertEmail.setMessage("请重新登录");
return insertEmail;
}
}
}
package com.example.messageCenter.controller;
import java.util.HashMap;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.example.messageCenter.dataResult.DataResult;
import com.example.messageCenter.entity.EdmSettingDao;
import com.example.messageCenter.service.EdmSettingService;
import com.example.messageCenter.util.LoginUtil;
import com.example.messageCenter.util.PageUtil;
/**
* 邮件列表controller
* @author xzs
*
*/
@Controller
@RequestMapping("/email")
public class EdmSettingController {
@Autowired
private EdmSettingService emailList;
@RequestMapping("/emaillist")
public String toEmailList(HttpServletRequest httpRequest,HashMap<String, Object> map){
String currentPageStr = httpRequest.getParameter("currentPage");
int sqlDataCount = emailList.countSqlData();
int pageCount = emailList.returnCountPage();
int currentPage =1;//默认当前页为1
if(currentPageStr==null){
currentPage =1;
}else{
currentPage=PageUtil.pagingLogic(currentPageStr, pageCount);
}
boolean session = LoginUtil.getSession(httpRequest);
if(session){
List<EdmSettingDao> selectAllS = emailList.pagingQuery(currentPage);
map.put("currentPage", currentPage);
map.put("sqlDataCount", sqlDataCount);
map.put("pageCount", pageCount);
map.put("emailList", selectAllS);
return "/emaillist/index";
}else{//未登录
return "/public/login";
}
}
/**
* 跳转到添加邮件页面
* @param httpRequest
* @param map
* @return
*/
@RequestMapping("/addEmailPage")
public String addEmailPage(HttpServletRequest httpRequest,HashMap<String, Object> map){
boolean session = LoginUtil.getSession(httpRequest);
if(session){
return "/emaillist/add";
}else{//未登录
return "/public/login";
}
}
/**
* 添加邮件
* @param emailListDao
* @param httpRequest
* @return
*/
@RequestMapping(value = "/addEmail", method = RequestMethod.POST)
@ResponseBody
public DataResult addEmail(EdmSettingDao emailListDao,HttpServletRequest httpRequest){
DataResult insertEmail = new DataResult();
boolean session = LoginUtil.getSession(httpRequest);
if(session){
insertEmail = emailList.insertEmail(emailListDao);
//System.out.println(insertEmail);
return insertEmail;
}else{//未登录
insertEmail.setData(false);
insertEmail.setIsSuccess(false);
insertEmail.setMessage("请重新登录");
return insertEmail;
}
}
@RequestMapping("/selectEmail")
public String selectEmail(HttpServletRequest httpRequest,HashMap<String, Object> map){
String idStr = httpRequest.getParameter("id");
String descr = httpRequest.getParameter("descr");
boolean session = LoginUtil.getSession(httpRequest);
if(session){
List<EdmSettingDao> selectAllS = emailList.selectEmailIdOrEmailName(idStr, descr);
map.put("idStr", idStr);
map.put("descr", descr);
map.put("currentPage", 1);
map.put("sqlDataCount", selectAllS.size());
map.put("pageCount", 1);
map.put("emailList", selectAllS);
return "/emaillist/index";
}else{//未登录
return "/public/login";
}
}
/**
* 查看或修改
* @param httpRequest
* @param map
* @return
*/
@RequestMapping("/selectById")
public String selectById(HttpServletRequest httpRequest,HashMap<String, Object> map){
String idStr = httpRequest.getParameter("id");
String currentPage = httpRequest.getParameter("currentPage");
boolean session = LoginUtil.getSession(httpRequest);
if(session){
EdmSettingDao emailDao = emailList.selectById(idStr);
//System.out.println(emailDao.toString());
//把当前页传递过去,返回列表时好定位
map.put("currentPage", currentPage);
map.put("emailDao", emailDao);
return "/emaillist/edit";
}else{//未登录
return "/public/login";
}
}
/**
* 添加邮件
* @param emailListDao
* @param httpRequest
* @return
*/
@RequestMapping(value = "/updateEmail", method = RequestMethod.POST)
@ResponseBody
public DataResult updateEmail(EdmSettingDao emailListDao,HttpServletRequest httpRequest){
DataResult insertEmail = new DataResult();
boolean session = LoginUtil.getSession(httpRequest);
if(session){
//System.out.println("修改:"+emailListDao);
insertEmail = emailList.updateEmail(emailListDao);
return insertEmail;
}else{//未登录
insertEmail.setData(false);
insertEmail.setIsSuccess(false);
insertEmail.setMessage("请重新登录");
return insertEmail;
}
}
/**
* 添加邮件
* @param emailListDao
* @param httpRequest
* @return
*/
@RequestMapping(value = "/verificationId")
@ResponseBody
public DataResult verificationId(HttpServletRequest httpRequest){
DataResult insertEmail = new DataResult();
boolean session = LoginUtil.getSession(httpRequest);
if(session){
//System.out.println("修改:"+emailListDao);
String idStr = httpRequest.getParameter("id");
System.out.println("idStr="+idStr);
insertEmail = emailList.verificationId(idStr);
System.out.println(insertEmail.toString());
return insertEmail;
}else{//未登录
insertEmail.setData(false);
insertEmail.setIsSuccess(false);
insertEmail.setMessage("请重新登录");
return insertEmail;
}
}
}