目录
ssm+maven项目结构
配置web.xml
resources相关配置
db.properties配置
log4j.properties配置
spring.xml配置
springmvc.xml配置
mybatis映射文件
mapper示例
测试类示例
ssm项目即spring+springmvc+mybatis三大框架整合项目。
以ssm作为技术框架,建立一个人事管理系统的项目,通过项目来检验对ssm框架的掌握程度。在进行项目前需要做好开始准备,先配置好需要的配置文件等。本篇文章就是用来说明配置文件信息的。
一、新建一个Maven项目,给项目分好目录。方便后续写代码时整理。在Java目录下新建5个基本包:bean(bean包作为放置数据库表对应的Java类文件)、controller(controller包放置项目中控制器,逻辑跳转的Java文件)、dao(dao包放置抽象出的与数据库做连接的接口)、service(service放置项目业务逻辑的接口)、serviceimpl(serviceimpl对应业务逻辑接口的实现类)。
4.0.0
com.tingyu
tingyu_project
1.0-SNAPSHOT
war
tingyu_project Maven Webapp
http://www.example.com
UTF-8
1.8
1.8
org.mybatis
mybatis
3.5.9
mysql
mysql-connector-java
8.0.28
org.slf4j
slf4j-log4j12
1.7.36
log4j
log4j
1.2.17
com.fasterxml.jackson.core
jackson-databind
2.9.10.8
javax.servlet
javax.servlet-api
4.0.1
provided
javax.servlet.jsp
javax.servlet.jsp-api
2.3.3
provided
org.springframework
spring-webmvc
5.3.16
org.mybatis
mybatis-spring
2.0.7
org.springframework
spring-jdbc
5.3.16
org.springframework
spring-tx
5.3.16
javax.servlet
jstl
1.2
org.springframework
spring-aspects
5.3.16
aopalliance
aopalliance
1.0
org.aspectj
aspectjweaver
1.9.8
commons-fileupload
commons-fileupload
1.4
org.springframework
spring-test
5.3.16
junit
junit
4.12
test
org.projectlombok
lombok
1.18.12
provided
tingyu_project
maven-clean-plugin
3.1.0
maven-resources-plugin
3.0.2
maven-compiler-plugin
3.8.0
maven-surefire-plugin
2.22.1
maven-war-plugin
3.2.2
maven-install-plugin
2.5.2
maven-deploy-plugin
2.8.2
src/main/java
**/*.xml
true
src/main/resources
true
db.driver=com.mysql.cj.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/tingyu?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
db.username=root
db.password=root
# 全局日志 级别 ERROR 一般在测试日志建议调成debug,若项目完成可以设置全局日志ERROR
log4j.rootLogger=ERROR, stdout
# 局部日志 级别:需要设置局部日志的包名
log4j.logger.com.tingyu=TRACE
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
mapper映射文件与接口文件名一致
代码示例companyMapper
package com.tingyu.mapper;
import com.tingyu.pojo.Company;
import com.tingyu.pojo.Planner;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.util.List;
/**
* 婚庆公司信息 接口:数据库交互
* 接口绑定,与mapper.xml文件映射,在spring中配置
*/
public interface CompanyMapper {
/**
* 查询公司信息
* @param name 公司名
* @param status 账户状态
* @param order 订单数排序
* @param index 起始索引
* @param pageSize 查询多少条数据
* @return
*/
List findCompanyByCondition(@Param("name") String name, @Param("status") String status, @Param("order") String order, @Param("index") int index, @Param("pageSize") int pageSize);
/**
* 查询公司信息总数量
* @param name
* @param status
* @return
*/
int findCompanyCount(@Param("name") String name, @Param("status") String status);
/**
* 添加公司信息
* @param company
* @return
*/
int add(Company company);
/**
* 通过id查询公司信息
* @param id
* @return
*/
@Select("select cid id, cpwd pwd, cname name, ceo, cphone phone, cmail mail, starttime startTime, status, cnum num from t_company where cid = #{id}")
Company findCompanyById(int id);
/**
* 修改公司信息
* @param company
* @return
*/
int update(Company company);
/**
* 通过公司id,查询对应公司的策划人信息
* @param id
* @param index
* @param pageSize
* @return
*/
@Select("select nid id,nname name,nphone phone,addtime addTime,status,cid,pnum num from t_planner where cid = #{id} limit #{index},#{pageSize}")
List findPlanById(@Param("id") int id,@Param("index") int index,@Param("pageSize") int pageSize);
/**
* 通过公司id,查询对应公司策划人数量
* @param id
* @return
*/
@Select("select count(1) from t_planner where cid = #{id}")
int findPlanByIdCount(int id);
/**
* 修改公司状态
* @param id
* @param status
* @return
*/
@Update("update t_company set status=#{status} where cid = #{id}")
int updateStatus(@Param("id") int id,@Param("status") String status);
}
insert into t_company
values (default, #{pwd}, #{name}, #{ceo}, #{phone}, #{mail}, #{startTime}, #{status}, #{num});
update t_company
set cpwd = #{pwd},
cname=#{name},
ceo=#{ceo},
cphone=#{phone},
cmail=#{mail}
where cid = #{id}
import com.tingyu.mapper.*;
import com.tingyu.po.FindHostPO;
import com.tingyu.pojo.Role;
import com.tingyu.service.RoleService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.ArrayList;
import java.util.Date;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring.xml")
public class Test01 {
@Autowired
AdminMapper adminMapper;
@Autowired
MenuMapper menuMapper;
@Autowired
MarriedMapper marriedMapper;
/**
* 通过名字查询管理员信息
*/
@Test
public void test01(){
System.out.println(adminMapper.findAdminByName("zs"));
}
/**
* 查询管理员角色对应的菜单
*/
@Test
public void test02(){
System.out.println(menuMapper.findMenus(1,0));
// System.out.println(menuMapper.findAllMenus(0));
}
/**
* 查询所有新人信息
*/
@Test
public void test03(){
System.out.println(marriedMapper.findMarriedByCondition(null,"1234",0,2));
System.out.println(marriedMapper.findMarriedCount(null, "1234"));
}
/**
* 查询公司信息
*/
@Test
public void test04(){
System.out.println(companyMapper.findCompanyByCondition("%公司%","正常","asc",0,2));
System.out.println(companyMapper.findCompanyCount("%公司%","正常"));
}
/**
* 查询公司对应策划人信息
*/
@Test
public void test05(){
System.out.println(companyMapper.findPlanById(1,0,5));
System.out.println(companyMapper.findPlanByIdCount(1));
}
/**
* 查询主持人相关信息
*/
@Test
public void test06(){
// FindHostPO po = new FindHostPO("%%",null,null,null,null,0,0,2);
// System.out.println(hostMapper.findHostByCondition(po));;
System.out.println(roleMapper.findRoleAndMenuById(1));
}
/**
* 测试json转为List集合
*/
@Test
public void test07(){
// roleService.updateRoleAndMenu(new Role(1,"","",null,"[1,5,6,7,2,8]"));
ArrayList