- 博客(32)
- 收藏
- 关注
原创 redis数据类型详解
一、什么是redis?提供远程字典服务。是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted se
2021-04-19 16:43:47 153 1
原创 快速排序
原理:再数组中不断寻找基准,将数组划分为两个不等的部分进行排序。package com.wei;import java.util.Arrays;//快速排序public class kspx { public static void main(String[] args) { int arr[]={-1,-514,0,5,4,38,25,4,-5}; quicksor(arr,0,arr.length-1); System.out.pri
2021-03-24 14:56:31 91
原创 jvm
谈谈你对jvm的理解?Java虚拟机,Java文件编译成.Class文件后,在jvm中运行jre包含jvmjvm的位置?运行在操作系统上(windoes,linux。。。),用c语言写的jvm的体系结构?java—>.class—>类装载器(classloader)–>jvm(运行时数据区,方法区,Java栈,本地方法栈(native method stack),堆(heap),程序计数器)–>本地方法接口以及执行引擎其中栈,本地方法栈和程序计数器不会有垃圾回收方法
2021-03-23 16:37:21 153
原创 web前端之表格表单
一、表格<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <!--在页面中创建一个表格--> <!--最大的父级table--> <!--table上面有很多属性: border 设置边框。默认为0px
2021-03-14 10:55:06 879
原创 多线程详解
一、简介多线程核心概念:普通方法调用线程:注意:线程启动不一定立即执行,由cpu调度执行二、创建线程线程的三种创建方式:实现runnable接口,继承线程(thread)类,实现callable接口方法一:继承线程(thread)类://创建线程的方法1:继承thread类,调用start启动线程//注意:线程启动不一定立即执行,由cpu调度执行public class Thread1 extends Thread{ @Override public void run
2021-03-11 16:21:15 58
原创 springboot整合shiro
一、什么是ShiroShiro是一个Java的安全(权限)框架,相对简单,对比Spring Security,没有Spring Security的功能强大。但是实际工作中可能不需要那么复杂 的东西,所以使用小而简单的Shiro就够了。其不仅适用于JavaSE环境,也适用于JavaEE环境。Shiro可以完成认证,授权,加密,会话管理,web集成,缓存等。二、什么是权限管理权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源。
2021-02-19 15:57:18 96 1
原创 springboot之SpringSercurity安全框架
一、 简介spring security 的核心功能主要包括:认证 (你是谁)授权 (你能干什么)攻击防护 (防止伪造身份)权限管理:功能权限,访问权限,菜单权限,拦截器,过滤器等等spring security是 Spring 项目组中用来提供安全认证服务的框架。其核心就是一组过滤器链,项目启动后将会自动配置。最核心的就是 Basic Authentication Filter 用来认证用户的身份,一个在spring security中一种过滤器处理一种认证方式。二、记住几个类:W
2021-02-08 11:08:54 391
原创 springboot整合mybatis
导入包 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.4</version> </dependency> .
2021-02-05 17:16:37 54
原创 springmvc:拦截器
一、概述springmvc的处理器拦截器是类似于servlet开发中的过滤器filter,用于对处理器进行预处理和后处理。开发者可以自己定义一些拦截器来实现特定的功能。过滤器和拦截器的区别:拦截器是aop思想的具体应用。过滤器:servlet规划的一部分,任何javaweb工程都可以用在配置了url-pattern后,可以对所有访问的资源进行拦截拦截器:拦截器是springmvc自己的,只要使用了springmvc框架的工程才能用拦截器只会拦截访问的控制器方法,如果访问的是静态资源则不
2020-12-19 20:43:50 82 1
原创 ssh框架整合的基本结构
一、springmvc.xml配置springmvc.xml中主要需要配置的东西如下:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springfram
2020-12-17 12:30:06 105
原创 springmvc解决中文乱码问题
一、页面编码<%@ page contentType="text/html;charset=UTF-8" language="java" %>二、URL中的乱码修改tomcat中server.xml中Connector的port=“8080”,加上一个 URIEncoding=”utf-8”三、配置过滤器,指定所有请求的编码<!-- springmvc的乱码过滤器--><filter> <filter-name>encodingFilter
2020-12-13 21:17:56 96
原创 SpringMVC数据处理
一、处理提交数据提交的域名称与controller处理方法的参数名称相同时,可以直接接收请求地址:http://localhost:8080/SpringMVC_04/test/t3?name=溜溜球@Controller@RequestMapping("test")public class RedirectController { @RequestMapping("t3") public String Test3(String name){ return
2020-12-13 20:21:29 74
原创 SpringMVC的请求转发和重定向
springmvc的return默认为请求转发@Controller@RequestMapping("test")public class RedirectController { @RequestMapping("t1") public String Test(HttpServletResponse httpServletResponse, HttpServletRequest httpServletRequest, Model model){ HttpSessio
2020-12-13 19:37:19 161
原创 springmvc之RestFul风格
一、概念简洁、高效、安全 一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。 它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。RESTful的关键是定义可表示流程元素/资源的对象。在REST中,每一个对象都是通过URL来表示的,对象用户负责将状态信息打包进每一条消息内,以便对象的处理总是无状态的二、操作资源 方式传统方式操作资源:传统的请求方式只要post和get,比较单一传统的方式操作资源url地址如下:
2020-12-13 18:15:27 92
原创 使用注解开发SpringMVC
一、web.xml配置DispatcherServlet<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
2020-12-12 16:25:55 84
原创 第一个springmvc程序--hellowSpringMVC
一、注册DispatcherServlet <!--1.注册DispatcherServlet--> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--关联一
2020-12-11 11:32:22 145
原创 初识SpringMVC
MVC 设计概述在早期 Java Web 的开发中,统一把显示层、控制层、数据层的操作全部交给 JSP 或者 JavaBean 来进行处理,我们称之为 Model1:出现的弊端:JSP 和 Java Bean 之间严重耦合,Java 代码和 HTML 代码也耦合在了一起要求开发者不仅要掌握 Java ,还要有高超的前端水平前端和后端相互依赖,前端需要等待后端完成,后端也依赖前端完成,才能进行有效的测试代码难以复用正因为上面的种种弊端,所以很快这种方式就被 Servlet + JSP + Ja
2020-12-11 10:16:44 64
原创 mybatis之缓存
一、简介什么是缓存?存在内存中的临时数据为什么使用缓存?减少交互次数,减少系统开销,提高系统效率什么样的数据能使用缓存?经常查询但不经常修改的数据我们再次查询数据的时候,直接走缓存,就可以不要走数据库MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制。默认情况下,只启用了本地的会话缓存,它仅仅对一个会话中的数据进行缓存。 要启用全局的二级缓存,只需要在你的 SQL 映射文件中添加一行:<cache/>基本上就是这样。这个简单语句的效
2020-12-09 16:24:42 62
原创 mybatis之动态SQL
动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。所谓的动态sql其实本质还是sql语句,只是我们可以在sql层面,去执行一个逻辑代码动态sql就是在拼接sql语句,只要我们保证sql的准确性,按照sql的格式,去排列组合就可以了一、动态SQL环境搭建实体类Mapper配置文件mybat
2020-12-09 13:57:09 56
原创 mybatis之一对多映射关系处理
实例:一个学生拥有多个老师实体类:public class Student { private int Studengid; private String name; //一个学生对应多个老师 private List<Teacher> teachers; @Override public String toString() { return "Student{" + "Studengid="
2020-12-08 17:58:49 87
原创 mybatis之多对一映射关系处理
实例:多个商品对应一个工厂有两种方法实现多对一映射,查询每个商品对应的工厂方法一、按照查询嵌套处理先查出所有商品,然后根据结果集的商品的factoryid查出对应的product实体类:在商品的实体类中加入一个工厂的实体属性,完成映射package com.wei.entity;public class Product { private int id; private String name; private double price;//这里需要一个工厂的
2020-12-08 14:53:10 137
原创 mybatis值之使用RowBounds实现分页
RowBounds这种方法不在使用sql实现分页1.接口List<User> getuserbyRowBounds();2.mapper.xm <select id="getuserbyRowBounds" resultMap="UserMap"> select * from user </select>3.测试 @Test //获取用户分页列表 public void getuserbyRowBounds(){
2020-12-07 16:58:36 370 1
原创 mybatis实现简单分页
传统的使用limit分页select * from user limit 0,5使用mybatis实现分页(核心其实就是sql):接口 List<User> getuserbyLimit(Map<String,Integer> map);mapper.xml <select id="getuserbyLimit" parameterType="map" resultMap="UserMap"> select * from use.
2020-12-07 16:44:38 61
原创 mybatis之日志
如果数据库操作出现异常,我们需要排错,日志将会特别实用一、日志工厂logImplSLF4JLOG4J 【掌握】LOG4J2JDK_LOGGINGCOMMONS_LOGGINGSTDOUT_LOGGING 【掌握】NO_LOGGING具体使用哪一个日志实现,在setting中设置 <settings> <setting name="logImpl" value="STDOUT_LOGGING"/> </settings>
2020-12-07 16:13:55 42
原创 Mabatis之ResultMap结果映射集
用于解决实体类属性名和数据库字段名不一致的问题。解决方法:起别名(不推荐) <select id="getuserlist" resultType="user"> select pwd as password from user </select>
2020-12-07 15:16:24 313
原创 mybatis之生命周期和作用域
作用域和生命周期类别是至关重要的,因为错误的使用会导致非常严重的并发问题。SqlSessionFactoryBuilder :一旦创建了 SqlSessionFactory,就不再需要它了。作用域:局部变量SqlSessionFactory:说白了就可以想象成为数据库连接池,一旦创建就一直存在,没有任何理由丢弃它或重新创建另一个实例。因此 SqlSessionFactory 的最佳作用域是应用作用域创建:最简单的就是使用单例模式或者静态单例模式。SqlSession:可以理解为连接到连接池
2020-12-07 10:48:01 107 1
原创 Mybatis配置解析
一、核心配置文件在xml中,所有的属性都可以规定其顺序MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。 配置文档的顶层结构如下:configuration(配置)properties(属性)settings(设置)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境配置)environment(环境变量)transactionManager(
2020-12-07 10:46:25 196
原创 Mybatis之map操作用户和模糊查询扩展
通过map操作用户,过程基本相同,但map的key可以不用与user的属性名一致。假设我们的实体类或者数据库中的表,字段参数过多,我们可以适当的使用map。1.接口代码 //通过map添加用户 int addUser2(Map<String,Object> map);2.Mapper.XML代码<!-- 对象中的属性可以直接取出来,通过map的key传递--> <insert id="addUser2" parameterType="Map"&
2020-12-06 15:46:28 89
原创 mybatis实现(增删改查)CRUD
以下是一套完整的mybatis的增删改查,亲测可用1.mybatis工具类public class MybatisUtil { private static SqlSessionFactory sqlSessionFactory; static { try { InputStream inputStream = MybatisUtil.class.getResourceAsStream("/mybatis-config.xml");
2020-12-05 20:54:28 87
原创 mybatis入门:第一个mybatis程序
第一个mybatis程序1.搭建maven环境<dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.2</version> </dependenc
2020-12-04 16:45:39 55
原创 Mybatis简介
1.什么是 MyBatis?MyBatis 是一款优秀的持久层框架MyBatis 是一款优秀的持久层框架它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。2.如何获得 MyBatismaven仓库<dependency>
2020-12-02 18:54:06 64
原创 获取JDBC连接池
获取JDBC连接池获取jdbc,创建一个以JDBC连接数据库的程序,包含7个步骤:首先需要准备JDBC所需的四个参数(user,password,url,driverClass)(1)user用户名(2)password密码(3)URL定义了连接数据库时的协议、子协议、数据源标识,它们之间用冒号隔开。 书写形式: 协议:子协议:数据源标识协议:在JDBC中总是以jdbc开始子协议:是桥连接的驱动程序或是数据库管理系统名称。数据源标识:标记找到数据库来源的地址与连接端口。例如:(MySq
2020-12-02 15:21:31 269
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人