文章目录
设计编写数据库
- 数据库设计:
使用Maven创建项目
-
新建项目
-
选择图中选中的Maven项目:
-
选择已经安装好的本地仓库并+新建properties:
新建内容为archytypeCatalog=internal
archetypeCatalog用来指定maven-archetype-plugin读取archetype-catalog.xml文件的位置,internal——maven-archetype-plugin内置的。配置阿里云仓库后可以加快下载 -
最后点击finish完成创建
-
项目创建后点击窗口右下角弹窗的Enable Auto-Import确保自动导包:
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019071517112122.png -
等待相关配置下载直到出现WEB-INF文件夹,自动生成的文件目录如下:
导入ssm所有包
- 在pom.xml中体现了所有包,将素材.zip中pom.xml的
<properties>
——</properties>
和<dependencis>
——</dependencis>
的部分替换掉项目中的相应部分。
properties中包括spring版本号、mybatis版本号、log4j日志文件管理包版本等,dependencis包括spring核心包、mybatis核心包、java ee jar 包、Mysql数据库链接jar包、dbcp的jar包(用来在applicationContext.xml中配置数据库)等。
创建目录结构
mvc的主要作用是将业务代码与逻辑代码分离。
- 在main下右击新建 Directory命名为java,在java上右击选择Mark Directory as->Sources Root.
- 在java文件夹下右击新建Package,命名com.zhongruan,
- 在zhongruan文件下右击新建4个Package,分别命名为bean、dao、service、controller
- 在main下右击新建 Directory命名为resources,在java上右击选择Mark Directory as->Resources Root,用来保存配置ssm的配置文件。
编写bean和dao层
- 在bean包下新建UserInfo类,作用是映射数据库字段。
package com.zhongruan.bean;
public class UserInfo {
private int id;
private String username;
private String password;
}
写好参数,并空白处右键选择Generate生成构造方法,Getter&Setter方法,重写toString()方法。
get and set传值方式:UserInfo userInfo = new UserInfo(); UserInfo.get/set.
构造方法传值方式:UserInfo userInfo = new UserInfo(1,“zzz”,“admin”).
- 在dao包下新建UserDao接口,作用是与数据库交互。
package com.zhongruan.dao;
import com.zhongruan.bean.UserInfo;
//数据库交互层
import javax.xml.registry.infomodel.User;
import java.util.List;
// 数据库交互
public interface UserDao {
// 查询全部
List<UserInfo> findAll();
// 更新前查询
UserInfo findUserById(int id);
// 更新
void updateUserById(UserInfo userInfo);
}
项目报红时使用Alt+Enter快速解决。
配置Spring和Mybatis
- 将素材.zip中的applicationContext.xml(Spring和Mybatis的配置文件)、db.properties(数据库连接配置文件)、log4j.properties(日志文件)复制粘贴到项目resources文件夹下。
- 打开db.properties,将 jdbc.url改为
jdbc:mysql://localhost:3306/数据库名?useSSL=true&characterEncoding=utf-8
。将用户名和密码改为自己的数据库用户名和密码。 - 打开applicationContext.xml,33行
<property name="typeAliasesPackage" value="com.zhongruan.bean"></property>
中com.zhongruan.bean
修改为自己bean包的路径。44行同样处理。52行<context:component-scan base-package="com.zhongruan"/>
地址修改为自己bean包等包所在路径。
编写Mapper
-在resources下右击新建Directory,命名为mapper,在mapper下右击新建File,命名为UserMapper,xml,此为dao层的实现层。
- 将下列代码复制进UserMapper,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.zhongruan.dao.UserDao" >
</mapper>
上述namespace命名空间对应接口位置
- 在UserMapper,xml写sql语句,如查询全部语句
<select id="findAll" resultType="com.zhongruan.bean.UserInfo" > select * from tb_user </select>
,id为对应方法名称,resultType为返回值类型。
编写service层
service层为业务逻辑层,在service层写具体实现。
- 在service包下右击新建一个名为UserInfoService的接口,UserInfoService跟dao层UserDao代码几乎相同;然后在service包下右击新建一个名为impl的Directory,在里面新建名为UserInfoServiceImpl的类。
@Service
public class UserInfoServiceImpl implements UserInfoService {
@Autowired
private UserDao userDao;
@Override
public List<UserInfo> findAll() {
return userDao.findAll();
}
@Override
public UserInfo findUserById(int id){
return userDao.findUserById(id);
}
@Override
public void updateUserById(UserInfo userInfo) {
userDao.updateUserById(userInfo);
}
@Autowired注解是自动装配的意思,体现了Spring框架的DI
执行流程:bean→dao→service→controller→回返到页面
配置spring-mvc.xml和web.xml
- 将素材.zip中的spring-mvc.xml复制粘贴到resouces文件夹下,在此文件中配置了地址映射器和适配器,视图解析器等。
spring-mvc.xml扫描controller层
- 过滤器、监听器、拦截器写到web.xml,将素材.zip中的web.xml拷贝到WEB-INF文件夹下覆盖原来的文件,此文件将三个结构整合在一起。
引入jsp页面
- 将素材.zip中jsp文件夹拷贝到webapp下。
编写controller层
在controller包右击新建javaClass名为UserInfoController,sprin-mvc.xml中视图解析器的prefix改为"/pages/"。
@Controller
@RequestMapping("/user")
public class UserInfoController {
@Autowired
private UserInfoService userInfoService;
@RequestMapping("findAll.do")
public ModelAndView findAll(){
List<UserInfo> userInfoList = new userInfoService.findAll();
ModelAndView mv = new ModelAndView();
mv.addObject("userInfoList",userInfoList);
mv.setViewName("user-list");
return mv;
}
在编写controller层时,所有返回页面的数据都需要放在ModelAndView对象中进行传递
@RequestMapping("/findUserById.do")
public ModelAndView findUserById(int id)
{
UserInfo userInfo = userInfoService.findUserById(id);
// int id = user.getId();
// List<User> userList=userService.findAllUser();
ModelAndView mv=new ModelAndView();
mv.addObject("userInfo",userInfo);
mv.setViewName("user-update");
return mv;
}
@RequestMapping("/updateUserById.do")
public String updateUser(UserInfo userInfo)
{
userInfoService.updateUserById(userInfo);
return "redirect:findAll.do";
}
在user-list和user-update中将相应的变量修改。
配置tomcat
素材.zip
链接:https://pan.baidu.com/s/1ml-RfbWwaDF6yRGbSyU-Mg
提取码:sc85
页面.rar
链接:https://pan.baidu.com/s/1VcDzPSy6Ksf7FTh9H77iJg
提取码:s5h2