spring整合springSecurity
案例介绍
项目基础代码在https://gitee.com/dujiang1992/spring-security-demo案例效果图启动项目进入首页
系统管理界面
基础数据界面
项目最终目录结构
建表语句
在mysql中新建一个security_authority的表,再执行下面的sql语句DROP TABLE IF EXISTS `sys_permission`;CREATE TABLE `sys_permission` ( `ID` int(11) NOT NULL AUTO_INCREMENT COMMENT '编号', `permission_NAME` varchar(30) DEFAULT NULL COMMENT '菜单名称', `permission_url` varchar(100) DEFAULT NULL COMMENT '菜单地址', `parent_id` int(11) NOT NULL D ...
maven高级
分模块开发与设计工程模块与模块划分
ssm_pojo拆分
新建模块
拷贝原始项目中对应的相关内容到ssm_pojo模块中
实体类(User)
配置文件(无)
ssm_dao拆分
新建模块
拷贝原始项目中对应的相关内容到ssm_dao模块中
数据层接口(UserDao)
配置文件:保留与数据层相关配置文件(3个)
注意:分页插件在配置中与SqlSessionFactoryBean绑定,需要保留
pom.xml:引入数据层相关坐标即可,删除springmvc相关坐标
spring
mybatis
spring整合mybatis
mysql
druid
pagehelper
直接依赖ssm_pojo(对ssm_pojo模块执行install指令,将其安装到本地仓库)
ssm_service拆分
新建模块
拷贝原始项目中对应的相关内容到ssm_service模块中
业务层接口与实现类(UserService、UserServiceImpl)
配置文件:保留与数据层相关配置文件(1个)
pom.xml:引入数据层相关坐标即可,删除springmvc相关坐标
spring
...
maven基础
Maven简介Maven是什么
Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)
POM: 项目对象模型
Maven的作用
项目构建:提供标准的、跨平台的自动化项目构建方式
依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突问题
统一开发结构:提供标准的、统一的项目结构
下载与安装下载
官网:http://maven.apache.org/
下载地址:http://maven.apache.org/download.cgi
安装
将下好的zip包解压
Maven环境变量配置
依赖Java, 需要配置JAVA_HOME
设置Maven自身的运行环境,需要配置MAVEN_HOME
在环境变量中添加MAVEN_HOME,并添加在path中
Maven基本概念仓库
仓库:用于存储资源,包含各种jar包
仓库分类:
本地仓库:自己电脑上存储资源的仓库,远程连接仓库获取资源
远程仓库:非本机电脑上的仓库,为本地仓库提供资源
中央仓库:Maven团队维护,存储所有资源的仓库
私服:部门/公司范围内存储资源的仓库,从中央 ...
mybatisPlus2
初始代码准备
创建一个itheima_springboot的project
在pom.xml中导入相应的坐标
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId></dependency><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope></dependency><dependency> <groupId>junit</groupId> <artif ...
mybatisPlus
了解Mybatis-PlusMybatis-Plus介绍
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
代码以及文档
文档地址:https://mybatis.plus/guide/
源码地址:https://github.com/baomidou/mybatis-plus
特性
无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer2005、SQLServer 等多种数据库
支持主键自动生成:支持多达 ...
ssm框架的整合
SSM框架整合准备工作原始方式整合
在mysql中创建ssm数据库和account表CREATE TABLE `account` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, `money` double DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
创建maven工程
新建itheima_ssm的project, 并配置webapp文件夹,
在java下创建com.itheima.controller、service、domain、mapper、utils文件夹
在webapp文件夹下创建index.jsp, save.jsp
项目结构如下:
导入坐标
在pom.xml中导入响应的坐标<!--spring相关--><dependency> <g ...
mybatis2
MyBatis的多表操作代码准备
新建itheima_mybatis_005的module, 并配置webapp文件夹
在pom.xml中导入相应的坐标<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.46</version></dependency><dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.6</version></dependency><dependency> <groupId>junit< ...
mybatis
Mybatis简介什么是Mybatis
mybatis 是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。
mybatis通过xml或注解的方式将要执行的各种 statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句。
最后mybatis框架执行sql并将结果映射为java对象并返回。采用ORM思想解决了实体和数据库映射的问题,对jdbc 进行了封装,屏蔽了jdbc api 底层访问细节,使我们不用与jdbc api 打交道,就可以完成对数据库的持久化操作。
MyBatis的快速入门MyBatis开发步骤
添加MyBatis的坐标
创建user数据表
编写User实体类
编写映射文件UserMapper.xml
编写核心文件SqlMapConfig.xml
编写测试类
添加MyBatis的坐标
创建一个itheima_mybatis_001的module,并配置webapp文件夹
在pom.xml中导 ...
springmvc2
SpringMVC的数据相应SpringMVC的数据响应方式
页面跳转
直接返回字符串
通过ModelAndView对象返回
回写数据
直接返回字符串
返回对象或集合
页面跳转
返回字符串形式
返回ModelAndView对象
写法一:在controller下,新建UserController2.java,通过addObject设置model数据,setViewName设置视图名称
package com.itheima.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.servlet.ModelAndView;@Controller//相当于地址栏加了一层 ...