想要提高编程水平吗,手把手教你SSM的框架整(CRUD)

之前没有记录SSM整合的过程,这次刚刚好基于自己的一个小项目重新搭建了一次,而且比项目搭建的要更好一些。以前解决问题的过程和方法并没有及时记录,以后在自己的小项目中遇到我再整理分享一下。理解其思想,这对于我们提高编程水平很有帮助。不过,如果用都不会,谈思想就变成纸上谈兵了!!

1,基本概念

1.1 Spring

Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

1

1.2 SpringMVC

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制

1.3 Mybatis

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

2.开发环境搭建

1.windows10+mysql5.5+Maven+bootstrap+jQuery+jdk1.8

2.我的包结构

3.SSM项目整合

引入相关依赖(pom.xml)

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

4.0.0

com.youcai

SSM_CRUD

war

0.0.1-SNAPSHOT

SSM_CRUD Maven Webapp

http://maven.apache.org

<!-- Junit spring-web-4.0.0.RELEASE.jar -->

junit

junit

4.12

test

org.springframework

spring-test

4.3.21.RELEASE

test

<!-- Mybatis -->

org.mybatis

mybatis

3.4.5

<!-- Mysql -->

mysql

mysql-connector-java

5.1.43

<!-- springmvc -->

org.springframework

spring-webmvc

4.3.10.RELEASE

<!-- spring -->

org.springframework

spring-jdbc

4.3.10.RELEASE

<!-- mybatis-spring整合 -->

org.mybatis

mybatis-spring

1.3.1

<!-- c3p0 -->

com.mchange

c3p0

0.9.5.1

<!-- servlet -->

<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->

javax.servlet

javax.servlet-api

4.0.1

provided

<!-- JSTL -->

jstl

jstl

1.2

com.github.pagehelper

pagehelper

4.2.1

<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->

org.springframework

spring-core

4.3.10.RELEASE

SSM_CRUD

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394

2.实体类代码块(User)

packagecom.youcai.entity;

publicclassUser{

privateintid;

privateString username;

privateString password;

privateString phone;

publicintgetId(){

returnid;

}publicvoidsetId(intid){

this.id = id;

}publicStringgetUsername(){

returnusername;

}publicvoidsetUsername(String username){

this.username = username;

}publicStringgetPassword(){

returnpassword;

}publicvoidsetPassword(String password){

this.password = password;

}publicStringgetPhone(){

returnphone;

}publicvoidsetPhone(String phone){

this.phone = phone;

}publicUser(intid, String username, String password, String phone){

super();

this.id = id;

this.username = username;

this.password = password;

this.phone = phone;

}publicUser(String username, String password, String phone){

super();

this.username = username;

this.password = password;

this.phone = phone;

}publicUser(){

super();

// TODO Auto-generated constructor stub

}

@Override

public String toString() {

return "User [id=" + id + ", username=" + username + ", password=" + password + ", phone=" + phone + "]";

}

}

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455

3.User.xml文件

<?xml version="1.0" encoding="UTF-8" ?>

PUBLIC"-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!-- 添加 -->

insert intouser(username,password,phone) values(#{username},#{password},#{phone})

<!-- 查询所有 -->

select * from user

<!-- 根据id查询 -->

select * from user where id=#{id}

select * from user  limit pageNum=#{pageNum}

<!-- 删除 -->

delete from user where id=#{id};

<!-- 修改 -->

update user set username=#{username},password=#{password},phone=#{phone} where id= #{id};

12345678910111213141516171819202122232425262728293031

4.dao层接口

packagecom.youcai.dao;

importjava.util.List;

importcom.youcai.entity.User;

publicinterfaceUserDao{

publicvoidaddUser(User user);

publicintdeleteUser(intid);

publicListgetUser();

publicintupdateUser(User user);

publicUsergetById(intid);

ListgetList(intpage,intsize);

}123456789101112131415161718192021

5.service层(这里的service层只写了一个,用来返回分页数据的,分页使用的是pageHelper)

packagecom.youcai.service;

importjava.util.List;

importorg.springframework.beans.factory.annotation.Autowired;

importorg.springframework.stereotype.Service;

importcom.youcai.dao.UserDao;

importcom.youcai.entity.User;

@Service

publicclassUserService{

@Autowired

UserDao userDao;publicList getAllUser() {

returnuserDao.getUser();

}}123456789101112131415161718192021

6.控制层(我基本的逻辑都是写在Controller里面 练手的小demo就没有那么规范啦,这边的删除功能目前还没有写)

/**

* 分页

*@return

*/

@Autowired

UserService userService;@RequestMapping("/getUser")

publicString getUser(@RequestParam(value="pn",defaultValue="1")int pn,Model model){

PageHelper.startPage(pn,5);

List users= userService.getAllUser();System.out.println(users);

PageInfo page = new PageInfo(users,5);

model.addAttribute("pageInfo", page);

return"list";

}/**

* 添加

*/

@Autowired

UserDao userDao;@RequestMapping("/addUser")

publicModelAndView addUser(User user){

userDao.addUser(user);System.out.println("添加成功,添加的对象是"+user.toString());

List list=userDao.getUser();ModelAndView andView=new ModelAndView("show");

andView.addObject("list", list);

returnandView;

}/**

* 删除

*/

@RequestMapping("/delete")

publicString deleteUser(@RequestParam("id")int id,Model model){

userDao.deleteUser(id);List users= userService.getAllUser();System.out.println(users);

PageInfo page = new PageInfo(users,5);

model.addAttribute("pageInfo", page);

System.out.println("删除成功,删除的对象的id是"+id);

return"show";

}/**

* 修改之前

*@paramid

*@return

*/

@RequestMapping("/upodate")

publicModelAndView getById(int id){

User users = userDao.getById(id);ModelAndView view=new ModelAndView("update");

System.out.println("得到的id为"+id);

System.out.println("修改对象是:"+users.toString());

view.addObject("users", users);

returnview;

}/**

* 修改之后

*@paramuser

*@parammap

*@return

*/

@RequestMapping("/updateUser")

publicModelAndView updateUser(User user,Model model){

System.out.println("修改后的对象是:"+user.toString());

int updateUser = userDao.updateUser(user);System.out.println(updateUser);

System.out.println("修改成功");

List users= userService.getAllUser();PageInfo page = new PageInfo(users,5);

model.addAttribute("pageInfo", page);

ModelAndView view=new ModelAndView("show");

returnview;

}12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182

7.配置文件

7.1 application.xml()

<?xml version="1.0" encoding="UTF-8"?>

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">

<!-- 配置数据源 -->

<!-- 配置SqlSessionFcatroy -->

<!-- 引入数据源 -->

<!-- 加载MyBatis文件 -->

<!-- 加载配置文件 -->

<!-- 配置分页插件 -->

dialect=mysqlreasonable=true

<!-- 配置实体类文件 -->

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051

7.2 db.properties(用来链接数据库的,配置用户名,密码等等)

jdbc.driver=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/test

jdbc.username=rootjdbc.password=rootinitPoolSize=5

maxPoolSize=10

123456

7.3springmvc.xml(配置扫描器,和视图解析器)

<?xml version="1.0" encoding="UTF-8"?>

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:mvc="http://www.springframework.org/schema/mvc"

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">

<!-- 添加扫描器 -->

<!-- 视图解析器 -->

1234567891011121314151617181920

7.4 web.xml(配置前端过滤器)

"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

"http://java.sun.com/dtd/web-app_2_3.dtd">

Archetype Created Web Application

<!-- needed for ContextLoaderListener -->

contextConfigLocation

classpath:applicationContext.xml

<!-- 定义过滤器 -->

encoding

org.springframework.web.filter.CharacterEncodingFilter

<!-- 初始化 参数 设置编码是UTF-8 -->

encoding

UTF-8

<!-- 设置过滤对象 -->

encoding

<!--对所有的都过滤,并走 过滤器 名称是encoding的所对应的类-->

/*

<!-- Bootstraps the root web application context before servlet initialization -->

org.springframework.web.context.ContextLoaderListener

<!-- The front controller of this Spring Web application, responsible for

handling all application requests -->

springDispatcherServlet

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:springMVC.xml

1

<!-- Map all requests to the DispatcherServlet for handling -->

springDispatcherServlet

/

有什么问题欢迎大家在评论区留言讨论,如果想要一起学习Python,可以关注小编,之后会有更多干货知识分享,大家一起学习一起进步~

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。