创建好 项目后, 项目目录分析
我们采用员工表 Employee 与 部门表 Department
部门表 表设计---
员工表 --表设计
因为有文件上传操作,因此 建立 info表
(其中 员工只能隶属一个部门,因此 两张表之间 有外键关系)
数据库建立完毕后,需要为 每张表添加 3-4条数据
建立实体层: 注意事项
# 实体层 注意事项 类名 --- 与表名 相对应 , java 中规定 类名首字母必须为大写字母 属性名 ----- 与 列名 相对应,且 属性类型 与列名对应类型一致, 属性名 采用小驼峰命名发, 列名 不区分大小写 例如 表中 列 为 stuno 则属性为 stuNo 实体类中 必须包含无参数的构造方法
因为 我们使用的mybatis,因此 包名为mapper 当然也可以为dao
mybatis中 规定 接口与映射文件放在一起,并一一对应,
不仅名称一致,还需要再 xxxMapper.xml 配置 namespace, 指向 对应的接口
编写 pom.xml
org.aspectj
aspectjweaver
1.9.7
runtime
org.springframework
spring-webmvc
5.2.9.RELEASE
org.springframework
spring-jdbc
5.2.9.RELEASE
org.springframework
spring-core
5.2.9.RELEASE
org.springframework
spring-beans
5.2.9.RELEASE
编写 pom.xml
com.github.pagehelper
pagehelper
5.2.0
org.mybatis
mybatis-spring
2.0.6
org.mybatis
mybatis
3.4.6
添加 mysql 数据库依赖 及 log4j
mysql
mysql-connector-java
8.0.26
log4j
log4j
1.2.17
添加数据源 依赖
com.alibaba
druid
1.2.5
jsp 需要引入 jstl
jstl
jstl
1.2
文件上传和下载
commons-io
commons-io
2.6
commons-fileupload
commons-fileupload
1.4
javax.servlet
servlet-api
2.5
provided
src/main/java
mapper/**.xml
src/main/resources
**.*
如果 mysql版本 为 5.0 ,则 driver 应该为 com.mysql.jdbc.Driver
文件名 db.properties # mysql 为8.0 配置 uname=自己mysql的用户名 password=mysql的密码 driver=com.mysql.cj.jdbc.Driver url=jdbc:mysql://localhost:3306/数据库名称?serverTimezone=GMT
文件名 log4j.properties ### 设置### log4j.rootLogger = debug,stdout ### 输出信息到控制抬 ### log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
spring.xml
helperDialect=mysql
reasonable=true
springmvc.xml
如果 mybatis 里面什么也 没有,可以 不配置改文件
Archetype Created Web Application
contextConfigLocation
classpath:spring.xml
org.springframework.web.context.ContextLoaderListener
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
encodingFilter
/*
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springmvc.xml
springmvc
/
```java ListfindAll(); ```
编写 service及实现类
DepService.java
ListfindAll();
DepServiceImpl.java
@Service
public class DepServiceImpl implements DepService {
@Autowired
private DepartmentMapper departmentMapper;
@Override
public List findAll() {
return departmentMapper.findAll();
}
}
编写 controller
@Controller
public class DepController {
@Autowired
private DepService depService;
private final int PAGESIZE=3; // 定义 每页显示的 条数
/**
* 分页查询
* @return
*/
@RequestMapping("/page")
public String pageList(int current,Model model){
//判断页码
if(current==0){
current =1; // 从第一页开始
}
// 分页处理
PageHelper.startPage(current,PAGESIZE);
// 获得全部数据
List list = depService.searchInfo();
// 创建 PageInfo 对象
PageInfo pageInfo = new PageInfo<>(list);
// 将 数据返回到 jsp
model.addAttribute("pageInfo",pageInfo);
return "listPage";
}
}
编写jsp页面
任意jsp页面
点我 分页查询 部门信息
listPage.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
部门列表----分页查询
部门名称 部门主管
-
${dep.depName} - ${dep.depEmpName}