shiro依赖
<!--shiro--> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring-boot-web-starter</artifactId> <version>1.8.0</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring-boot-starter</artifactId> <version>1.4.0</version> </dependency>
数据库设计
drop database if exists springboot_shiro; create database if not exists springboot_shiro; use springboot_shiro; create table shiro_user( id int auto_increment primary key , username varchar(50), password varchar(50), salt varchar(50) )charset=utf8;
shiro 框架相关的配置类 (更多…)
2020java高级框架之SpringMVC解决乱码
1.在Tomcat文件夹下 conf 目录 server.xml文件 修改 (仅解决 get 请求)
<Connector port=”8080″ protocol=”HTTP/1.1″
connectionTimeout=”20000″
redirectPort=”8443″ URIEncoding=”utf-8″ />
2.在控制层添加(解决 get 请求和 post 请求的参数)
request.setCharacterEncoding("utf-8");
2020javaweb教程之高级框架SpringMVC
一.开发流程
1.导入依赖:spring-webmvc
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.6.RELEASE</version> </dependency>
2.配置核心(前端)控制器
2020java框架之Quartz作业调度框架
1.quartz使用
1.导入依赖
<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.3</version> </dependency>
2.定义job (更多…)
2020java框架教程之mybatis分页
1.导入依赖
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.2.0</version> </dependency>
2020java框架教程之mybatis工具类
==
mybatis工具类
1.创建web项目
2.导入依赖
3.导入数据库以及log4j配置文件
4.创建mybatis-config.xml文件
5.创建util包以及创建MybatisUtils工具类
log4j: (更多…)
2020java框架教程之mybatis关联关系
1.一对一
数据库表:
create table member(#用户 uid int auto_increment primary key , username varchar(50) not null , sex varchar(2) not null )charset=utf8; create table resume(#简历 id int auto_increment primary key , resume_name varchar(50) not null , resume_uid int unique , foreign key (resume_uid) references member(uid) )charset=utf8;
2020java框架教程之mybatis缓存
一级缓存:
是session级别的缓存,一级缓存默认存在。
当在同一个session范围执行查询的时候,如果执行相同的查询,那么第二次查询会从缓存中获取数据
测试1:
@Test public void testSelectUsersCacheLevelOne1(){ SqlSession ss = MybatisUtils.getSqlSession(); UsersMapper um = ss.getMapper(UsersMapper.class); Users users1 = um.selectByPrimaryKey(1); System.out.println("结果已查询"); Users users2 = um.selectByPrimaryKey(1); System.out.println("结果已查询:从缓存中获取数据"); ss.close(); System.out.println("session关闭"); }
2020java框架教程之Mybatis逆向工程CRUD
1.创建web项目
2.导入相关依赖
3.创建工具类
4.导入逆向工程并启动
5.刷新项目
6.在实体类文件增加构造方法和toString方法
7.创建测试
8.调用方法
2020java框架教程之mybatis逆向工程
下载地址:https://sithub.com/mybatis/generator/releases/tag/mybatis-generator-1.3.2
1.创建web项目
2.导入依赖
<dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.2</version> </dependency>
3.创建包并且创建类继承DefaultCommentGenerator
(更多…)
Maven创建webapp骨架无法使用@WebServlet来实现注解配置解决方案
利用maven创建web项目,默认不支持@WebServlet注解配置,甚至不支持El表达式(在web 3.0版本之后才支持),所以在写servlet 时想使用@WebServlet进行url-pattern配置是不能够完成的。
解决方案:
1.改变web.xml文件头来更改web工程版本
在本地仓库找到org\apache\maven\archetypes\maven-archetype-webapp\1.4
(更多…)
2020java框架教程之mybatis动态sql
1.if
需求:
1.查询已激活的,并且博客的名字是包含某个查询字符串的记录
2.如果用户没有输入任何查询字符串,那么就显示所有已激活的博客
mapper:
<select id="selectActiveBlogByTitle" parameterType="string" resultMap="blogResultMap"> select*from blog where state = 'active' <if test="value !=null and value !='' "> and title like concat('%','${value}','%') </if> </select>
2020java框架教程之mybatis的增删改查CRUD
查询:
mapper:
<!-- 通过 id 查询用户 --> <select id="selectUser" resultType="Users" parameterType="int"> select * from users where id = #{id} </select> <!-- 设置 ResultMap --> <resultMap id="usersResultMap" type="Users"> <id column="id" property="id" jdbcType="INTEGER"/> <!-- 将 password 设置 pwd 为别名 --> <result column="pwd" property="password" jdbcType="VARCHAR"/> </resultMap> <!-- 通过 resultMap 查询用户 --> <select id="selectUser2" resultMap="usersResultMap" parameterType="int"> select * from users where id = #{id} </select> (更多…)
2020java框架教程之mybatis删除
<!-- 删除 --> <delete id="deleteUsers" parameterType="int"> delete from users where id=#{id} </delete>
@Test public void test12(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); UsersDao mapper = sqlSession.getMapper(UsersDao.class); int i = mapper.deleteUsers(12); if(i>0) System.out.println("删除成功"); else System.out.println("删除失败"); sqlSession.commit(); sqlSession.close(); }
2020java框架教程之mybatis修改
<!--修改 --> <update id="updateUsers" parameterType="Users"> update users set password=#{password} where id=#{id} </update>
@Test
public void test11(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UsersDao mapper = sqlSession.getMapper(UsersDao.class);
Users users=new Users();
users.setId(1);
users.setPassword("admin666");
int i = mapper.updateUsers(users);
if(i>0) System.out.println("修改成功");
else System.out.println("修改失败");
sqlSession.commit();
sqlSession.close();
System.out.println(users);
}
2020java框架教程之mybatis获取刚刚插入的id(自增)
一:插入记录
需求:新增一个用户
DDL操作
二:获取自增id
<insert id="insertUsers" parameterType="Users" useGeneratedKeys="true" keyProperty="id">
insert into users(username,password,rolename,identity,mobile)
values(#{username},#{password},#{rolename},#{identity},#{mobile})
</insert>
2020java框架教程之mybatis参数传递
一、分页
方式1:使用索引
按照参数的顺序,从0开始
select*from users limit #{0},#{1}
方式2:使用注解
select*from users limit #{start},#{pageSize}
List<Users> selectUsersPage2(
@Param(value = “start”) int start,
@Param(value = “pageSize”) int pageSize);
方式3:使用Map
2020java框架教程之mybatis模糊查询和排序
1.模糊查询
需求:根据对方的用户名查询信息(模糊查询)
方式1:使用 #传参
<select id="selectUsersName" parameterType="string" resultMap="usersResultMap"> select *from users where username like #{username} </select>
方式2:使用 $ 传参
<select id="selectUsersName2" parameterType="string" resultMap="usersResultMap">
select *from users where username like '%${value}%'
</select>
注意:当使用$传参时,如果参数是单值属性,并且只有一个参数,那么参数必须使用 value 占位