- 博客(59)
- 收藏
- 关注
转载 MVC
参考:https://baike.baidu.com/item/MVC%E6%A1%86%E6%9E%B6?fromtitle=mvc&fromid=85990#11.1、简介MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。模型-视图-控制器(MVC)是[Xerox PARC]
2021-03-28 20:11:09 668
转载 spring中的事务管理
1、回顾事务1.1、什么是事务?事务在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。1.2、事务的特性【重点】事务是恢复和并发控制的基本单位。事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的操作要么都做,要么都不做。一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。隔离性(iso
2021-03-28 19:59:04 126
转载 Spring整合MyBatis02
1、MyBatis-Spring1.1、简介MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。它将允许 MyBatis 参与到 Spring 的事务管理之中,创建映射器 mapper 和 SqlSession 并注入到 bean 中,以及将 Mybatis 的异常转换为 Spring 的 DataAccessException。 最终,可以做到应用代码不依赖于 MyBatis,Spring 或 MyBatis-Spring。官方文档:http://mybat
2021-03-27 20:28:26 122
转载 Spring整合MyBatis01
1、Spring整合MyBatis步骤:导入相关jar包;junit;mybatis;mysql数据库;spring相关的;aop织入;mybatis-spring【new知识点】<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifa
2021-03-27 20:27:39 83
转载 AOP
1、简介AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。2、AOP在Spring中的作用提供了声明式事务;允许用户自定义切面。横切关注点:跨越应用程序多
2021-03-27 20:21:38 62
转载 代理模式02——动态代理
1、动态代理动态代理和静态代理的角色一样;动态代理的代理类是动态生成的,不是我们写好的的;动态代理分为两大类:基于接口——>JDK动态代理(原生);基于类——>cglib;Java字节码实现——>javasist1.1、JDK动态代理,示例一:需要了解两个类:Proxy(代理);InvocationHandler(调用处理程序)。动态代理的好处:可以使真实角色的操作更加纯粹,不用去关注一些公共的业务;公共的业务交给了代理角色,实现的业务的分工;公
2021-03-26 13:40:36 119
转载 代理模式01——静态代理
为什么要学习代理模式?——因为这就是SpringAOP的底层。代理模式分类:静态代理;动态代理。1、静态代理抽象角色:一般会使用接口或者抽象类来解决;真实角色:被代理的角色;代理角色:代理真角色,代理真角色后,我们一般会做一些附属的操作;客户:访问代理对象的人。1.1、示例一:编写抽象角色;package com.beyond.demo01;//租房public interface Rent { public void rent();}编写真实角色;
2021-03-26 13:38:45 73
转载 使用Java的方式配置Spring
我们现在要完全不使用Spring的xml配置了,全权交给Java;javaConfig是Spring的一个子项目,在Spring4之后,它成了一个核心功能。编写实体类;package com.beyond.pojo;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Controller;@Controller //这里的注解的意思,
2021-03-26 13:34:58 68
转载 Spring使用注解开发
1、配置环境在Spring4之后,要使用注解开发,必须要保证aop的包导入成功。编写applicationContext.xml文件,还需要导入context约束,增加注解的支持!<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins
2021-03-25 17:25:59 112
转载 Bean的自动装配02
1、byType自动装配编写beans.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" xsi:schemaLocation="http://www.springframework.org/
2021-03-25 17:22:50 77
转载 Bean的自动装配01
自动装配是Spring满足Bean依赖的一种方式;Spring会在上下文自动寻找,并自动给bean装配属性。在Spring中有三种装配的方式:在xml中显示的配置;隐式的自动装配bean【重要】;在Java中显示配置。1、搭建环境编写实体类;package com.beyond.pojo;public class Cat { public void shut(){ System.out.println("喵~"); }}package com.
2021-03-25 17:22:09 65
转载 依赖注入03(Dependency Injection,DI)
4、Bean的作用域4.1、单例模式(singleton):Spring默认机制单线程使用编写bean.xml文件;<!--显示设置作用域--> <bean id="user2" class="com.beyond.pojo.User" c:_0="秦疆" c:age="18" scope="singleton"/>测试。import com.beyond.pojo.Student;import com.beyond.pojo.User;impor
2021-03-23 19:11:50 67
转载 依赖注入02(Dependency Injection,DI)
2、构造器注入在我的前面博客里面,讲到了构造器。参考:https://blog.csdn.net/beyond_csdn/article/details/1150980643、拓展方式注入3.1、p命名空间注入编写实体类;package com.beyond.pojo;public class User { private String name; private int age; public String getName() { return
2021-03-23 19:07:07 69
转载 依赖注入01(Dependency Injection,DI)
1、set方式注入【重点】依赖:bean对象的创建依赖于容器;注入:bean对象中的所有属性,有容器来注入。1.1、环境搭建编写实体类;package com.beyond.pojo;public class Address { private String address; public String getAddress() { return address; } public void setAddress(String addre
2021-03-23 19:05:15 71
转载 Spring配置
1、别名编写beans.xml文件;<!--别名,如果添加了别名,我们也可以使用别名获取到对象--> <alias name="User" alias="userone"/>测试;import com.beyond.pojo.User;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlAp
2021-03-23 16:30:35 60
转载 IOC创建对象的方式
1、无参构造(默认)编写实体类;package com.beyond.pojo;public class User { private String name; public User(){ System.out.println("User的无参构造"); } public String getName() { return name; } public void setName(String name)
2021-03-22 20:56:11 79
转载 IOC理论推导
1、之前:UserDao 接口;package com.beyond.dao;public interface UserDao { void getUser();}UserDaoImpl 实现类;package com.beyond.dao;public class UserDaoImpl implements UserDao{ public void getUser() { System.out.println("默认获取用户信息");
2021-03-22 20:53:58 77
转载 Spring简介
1、历史背景Spring框架是一个开放源代码的J2EE应用程序框架,由[Rod Johnson](https://baike.baidu.com/item/Rod Johnson/1423612)发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等
2021-03-22 20:49:21 116
转载 缓存_02
1、缓存原理测试:import com.beyond.dao.UserMapper;import com.beyond.pojo.User;import com.beyond.utils.MyBatisUtil;import org.apache.ibatis.session.SqlSession;import org.junit.Test;public class MyTest { @Test public void getUserById(){ SqlS
2021-03-13 21:22:51 62
转载 缓存_01
1、简介什么是缓存【Cache】?存在内存中的临时数据;将用户经常查询的数据放在缓存(内存)中,用户再次查询数据时就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。为什么使用缓存?减少和数据库的交互次数,减少系统开销,提高系统效率。什么样的数据能使用缓存?经常查询并且不经常改变的数据。2、MyBatis缓存MyBatis包含一个非常强大的查询缓存特性,它可以非常方便地定制和配置缓存。缓存可以极大地提升查询效率。
2021-03-13 21:22:00 74
转载 动态SQL_02
1、choose (when, otherwise)编写Mapper接口和Mapper.xml文件;package com.beyond.dao;import com.beyond.pojo.Blog;import java.util.List;import java.util.Map;public interface BlogMapper { //查询博客 List<Blog> queryBlogChoose(Map map);}<?xml v
2021-03-10 19:07:53 76 2
转载 动态SQL_01
1、简介动态SQL就是指根据不同的条件生成不同的SQL语句,我们可以在SQL层面,去执行一个逻辑代码。动态SQL就是在拼接SQL语句,我们只要保证SQL的正确性,按照SQL的格式,去排列组合就可以了。ifchoose (when, otherwise)trim (where, set)foreach2、搭建环境1、SQLcreate table `blog`( `id` varchar(50) not null comment '博客id', `
2021-03-10 19:03:07 63
转载 一对多处理
1、测试环境搭建导入Lombokjar包;<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId>
2021-03-09 20:43:28 86
转载 多对一的处理
例如:对于学生而言,多个学生关联一个老师【多对一】;对于老师而言,一个老师集合很多学生【一对多】。SQL:CREATE TABLE `teacher`( `id` INT(10) NOT NULL, `name` VARCHAR(30) DEFAULT NULL, PRIMARY KEY (`id`))ENGINE=INNODB DEFAULT CHARSET=utf8INSERT INTO teacher(`id`,`name`) VALUES (1,'秦老师');CREATE .
2021-03-09 20:40:40 122
转载 Lombok
1、简介Lombok项目是一个Java库,它会自动插入您的编辑器和构建工具中,从而为您的Java增光添彩。永远不要再写另一个getter或equals方法,带有一个注释的您的类有一个功能全面的生成器,自动化您的日志记录变量等等。Lombok 是一种 Java 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO)。它通过注释实现这一目的。通过在开发环境中实现 Lombok,开发人员可以节省构建诸如 hashCode() 和 equals() 这样的方法以及以
2021-03-08 21:51:07 135
转载 使用注解开发的CRUD(增删改查)
我们可以在工具类创建的时候实现自动提交事务public static SqlSession getSqlSession(){ //设置自动提交事务为true return sqlSessionFactory.openSession(true);}关于@Param()注解基本类型的参数或者String类型,需要使用该注解;引用类型不使用该注解;如果只有一个基本类型的话,可以忽略,但是建议加上该注解;我们在SQL中引用的就是@Param()中设定的属性名。#{}与${}的区
2021-03-08 21:44:08 154
转载 使用注解开发(重点)
1、面向接口编程1、为什么要面向接口编程?根本原因:解耦、可扩展、提高复用,分层开发中,上层不用管具体的实现,大家都遵守共同的标准,是的开发变得更容易,规范性更好。在一个面向对象的系统中,系统的各种功能是有许许多多的不同对象协调完成的。在这种情况下,各个对象内部是如何实现自己的,对系统设计人员来讲就不那么重要了;而各个对象之间的协作关系则称为系统设计的关键。小到不同类之间的通信,大到各模块之间的交互,在系统设计之初都是要着重考虑的,这也是系统设计的主要工作内容。面向接口编程就是指按照这种思想来编程
2021-03-08 21:41:13 72
转载 分页
思考:为什么要分页?减少数据的处理量1、使用limit分页(推荐)limit子句用于限制查询结果返回的数量。用法:【select * from tableName limit i,n 】参数:tableName : 为数据表;i : 为查询结果的索引值(默认从0开始);n : 为查询结果返回的数量.使用mybatis实现分页接口;//分页 List<User> getUserByLimit(Map<String,Integer> map);
2021-03-05 22:11:18 79
转载 日志
1、日志工厂如果一个数据库操作,出现了异常,我们需要排错,日志就是最好的助手。SLF4JLOG4J【掌握】LOG4J2JDK_LOGGINGCOMMONS_LOGGINGSTDOUT_LOGGING【掌握】NO_LOGGING在Mybatis中具体使用那一个日志实现,在设置中设定。STDOUT_LOGGING标准日志输出在mybatis核心配置文件中,配置我们的日志<settings> <setting name="logImpl" value
2021-03-05 22:07:39 81
转载 解决属性名和字段名不一致的问题
1、问题数据库中的字段:新建一个项目,拷贝之前的,测试实体类字段不一致的情况;//实体类public class User { private int id; private String name; private String password;测试出现问题:select * from mybatis.user where id=#{id}相当于select id,name,pwd from mybatis.user where id=#{id}2、解决方法
2021-03-05 22:02:44 421
转载 配置解析
1、核心配置文件(mybatis-config.xml)MyBatis配置包含对MyBatis的行为产生巨大影响的设置和属性。该文档的高级结构如下:configuration(配置)properties(特性,属性)settings(设置)typeAliases(类型别名)typeHandlersobjectFactorypluginsenvironments(环境)environmenttransactionManagerdataSource(数据源)databas
2021-03-03 19:16:55 178 2
转载 模糊查询
Dao接口;//模糊查询 List<User> getUserLike(String value);接口实现类(由原来的UserDaoImpl转变为一个Mapper.xml配置文件);<select id="getUserLike" resultType="com.beyond.pojo.User"> select * from user where name like #{value} </select>测试@T..
2021-03-03 19:08:58 153 2
转载 万能的Map(重点)
当我们的实体类、数据库中表的字段或者参数过多或者可以为空的时候,我们推荐使用Map1、add(insert)Dao接口;//insert一个用户,万能的Map void addUser2(Map<String,Object> map);接口实现类(由原来的UserDaoImpl转变为一个Mapper.xml配置文件);<!--传递map的key--> <insert id="addUser2" parameterType="map">
2021-03-03 19:05:48 256 2
转载 MyBatis实现CRUD(增删改查)
1、selectDao接口;//根据id查询用户 User getUserById(int id);接口实现类(由原来的UserDaoImpl转变为一个Mapper.xml配置文件);<select id="getUserById" parameterType="int" resultType="com.beyond.pojo.User"> select * from mybatis.user where id=#{id} </select
2021-03-03 19:03:32 82 1
转载 第一个MyBatis程序
思路:搭建环境——>导入依赖的jar包——>编写代码——>测试1、搭建环境搭建数据库CREATE DATABASE `mybatis`;USE `mybatis`;CREATE TABLE `user`( `id` INT(20) NOT NULL PRIMARY KEY, `name` VARCHAR(30) DEFAULT NULL, `pwd` VARCHAR(30) DEFAULT NULL)ENGINE=INNODB DEFAULT CHARSET=ut
2021-03-03 19:00:39 109 1
转载 MyBatis
1、什么是MyBatisMyBatis中文文档:https://mybatis.org/mybatis-3/MyBatis是一流的持久性框架,支持自定义SQL,存储过程和高级映射。MyBatis消除了几乎所有的JDBC代码以及参数的手动设置和结果检索。MyBatis可以使用简单的XML或注释进行配置,并将图元,映射接口和Java POJO(普通的旧Java对象)映射到数据库记录。MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software fo
2021-03-03 18:57:35 109 1
转载 文件上传和下载(重点)
1、准备工作对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的。一般选择采用apache的开源工具common-fileupload这个文件上传组件。common-fileupload是依赖于common-io这个包的,所以还需要下载这个包。https://mvnrepository.com/artifact/commons-io/commons-iohttps://mvnrepository.com/artifact/commons-fileupload/commons-fil
2021-03-01 23:27:50 339
转载 过滤器filter(重点)
1、简介应用场景自动登录;统一设置编码格式;访问权限控制;敏感字符过滤等。2、编写过滤器testpublic class FilterTest01 implements Filter { //初始化:web服务器启动的时候就会初始化,随时等待过滤对象出现 public void init(FilterConfig filterConfig) throws ServletException { System.out.println("初始化");
2021-03-01 23:12:51 175
转载 JavaBean(实体类)
1、JavaBean的特点:必须要有一个无参构造;属性必须私有化;必须有对应的get和set方法。一般用来和数据库的字段做映射(ORM)。2、ORM:对象关系映射数据库 Java表———>类字段——>属性行记录—>对象<%// People people=new People();<==><jsp:useBean id="people" class="com.beyond.pojo.People" scope="page"/&g
2021-03-01 23:00:42 417
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人