摘要:IOC 本质 IOC 容器工作原理 IOC注入方式(XML版本) 1-通过构造函数方式 --> 简化方式:c(constructor)空间 简化为: 2-通过setter方法 --> 简化方式:p(properties)空间 简化为: 3-Autowire自动装配 ByName, ByType Pe
阅读全文
摘要:Spring框架的七大模块 1. Spring Core框架的最基础部分,提供 IoC 容器,对 bean 进行管理。 2.Spring Context基于 bean,提供上下文信息,扩展出JNDI、EJB、电子邮件、国际化、校验和调度等功能。 3.Spring DAO提供了JDBC的抽象层,它可消
阅读全文
摘要:1.什么是缓存? 2.Mybatis缓存 一级缓存:SqlSession级别,一旦SqlSession.close(),缓存就失效。 二级缓存:namespace级别(对应一个接口),里面所有的方法公用缓存。注意:所有数据优先放在一级缓存;只有当会话关闭sqlSession.close(), 才会提
阅读全文
摘要:“多对一” 和 “一对多” 定义 “多对一”处理(推荐) 需求+pojo定义 需求:查询所有学生student, 以及其所有对应老师teacher的信息 学生pojo: id, name, tid(教师的id) 教师pojo: id, name 1.sql实现方式 使用sql实现极其简单:selec
阅读全文
摘要:背景 使用注解后,就不再需要mapper.xml。 @Select注解 本质:用了反射和动态代理 注意这时在核心配置文件中,要注册的就不是mapper.xml, 而是mapper的.java类 @Insert, @Update,@Delete注解 @Param注解
阅读全文
摘要:背景:为什么要分页 方法1:基于SQL实现-LIMIT关键字 语法: 实例:利用mybatis项目来实现 方法2:基于Java实现-RowBounds类(了解即可) RowBounds类,底层依然使用sql的limit.... 方法3: 网络上的分页插件,类似PageHelper (了解即可)
阅读全文
摘要:总结 mybatis-config.xml 可以改为其他名字 环境配置 environments 事务管理器 transactionManager 我们常用的是JDBC: 数据源 datasource DataSource就是为了方便连接数据库。可以取得值有: UNPOOLED: 不配置连接池。 P
阅读全文
摘要:1.Mapper.xml里的语法 1.1 namespace, resultType, parameterType namespace, 写的是对应接口/mapper的全路径名 resultType,写的是结果集的一个item的类型。例如结果集是List<com.xxx.User>, resultT
阅读全文
摘要:什么是MyBatis?为什么要使用Mybatis? Mybatis优点 myBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。 sql和代码的分离,提高了可维护性。 提供映射标签,支持对象与数据库的orm字段关系映射 提供对象关系映射标签,支持对象关系组建维护 提供xml|标签,支
阅读全文
摘要:为何需要数据库连接池? 这里的最大最小连接数,只是举例。 数据库连接池分类 本质:都是在实现接口DataSource DBCP 1-导入包 2-引入config 3-写一个获取连接的工具类 创建数据源: 获取连接: C3P0 1-导入包 2-引入config 3-写一个获取连接的工具类 其他部分不变
阅读全文
摘要:为何有时找不到Database侧边栏? 点击右下角的小电脑标志,即可找到所有侧边栏。 1-如何连接MySQL 前提:必须导入MySQL驱动包!!! 初始化连接成功后,schemas里只有一个样例数据库 QA:连接不成功的原因 可能是Driver不正确,记得要导入MySQL的驱动包 如果包导入了还不行
阅读全文
摘要:总结 Statement很容易被SQL注入,详见:https://blog.csdn.net/meism5/article/details/90414125 因此java引入PrepareStatement来预防sql注入,原理如下图。 Statement 使用 PrepareStatement 使
阅读全文
摘要:数据库驱动 应用程序需要通过“数据库驱动”,和数据库打交道。 JDBC介绍 需要的包 JDBC项目模板 加载驱动为何要用反射方法 老式写法:使用new方式,传入DriverManager来注册mysql的driver。然而 com.mysql.jdbc.Driver类在静态代码块中,已经进行了注册工
阅读全文
摘要:为什么需要数据库设计 三大范式 参考:https://www.cnblogs.com/wsg25/p/9615100.html 第一范式(1NF):保证每一列不可再分 举例说明: 在上面的表中,“家庭信息”和“学校信息”列均不满足原子性的要求,故不满足第一范式,调整如下: 可见,调整后的每一列都是不
阅读全文
摘要:总结 Sqlyog导出 命令行mysqldump导出 localhost代表主机 命令行导入备份文件 先通过命令行登入数据库 先 use {数据库名字},切换到希望导入的数据库;然后使用source {刚刚备份的sql文件}即可完成导入。
阅读全文
摘要:索引的定义 在小数据量的时候用处不大,在大数据量(例如:100万条)的时候,区别十分明显。 索引的分类 索引的使用 Explain 关键字 可以得知执行这条语句,查询了多少行。 测试索引的效果 增加索引前: 增加索引后: 索引原则 索引的数据结构 深度文章:MySQL索引背后的数据结构及算法原理 补
阅读全文
摘要:总结 InnoDB 支持事务;MyISAM 不支持事务 InnoDB 支持行级锁;MyISAM 支持表级锁 InnoDB 是聚集索引,数据文件是和主索引绑在一起的,必须要有主键(MySQL没有主键怎么办?会自动生成主键么?自动生成的主键有什么问题?) MyISAM 是非聚集索引,数据文件是分离的,主
阅读全文
摘要:数据类型 char 和 varchar 的区别是什么? char(n) :固定长度类型,比如订阅 char(10),当你输入"abc"三个字符的时候,它们占的空间还是 10 个字节,其他 7 个是空字节。 chat 优点:效率高;缺点:占用空间;适用场景:存储密码的 md5 值,固定长度的,使用 c
阅读全文
摘要:https://www.cnblogs.com/heyonggang/p/9284271.html DDL(Data Definition Languages)语句 即数据库定义语句,用来创建数据库中的表、索引、视图、存储过程、触发器等,常用的语句关键字有:CREATE,ALTER,DROP,TRU
阅读全文
摘要:安装MySQL 教程:https://www.bilibili.com/video/BV1NJ411J79W?p=3 避免中文字符乱码配置 MySQL默认端口号3306 安装Sqlyog 教程:https://www.bilibili.com/video/BV1NJ411J79W?p=4 SQLyo
阅读全文
摘要:什么是DBMS MySQL是一种DBMS,而不仅仅是DB DBMS vs DB
阅读全文
摘要:关系型数据库 vs 非关系型数据库 NoSQL存储更新非常频繁的热点数据,假如微博热搜。 mySQL 默认端口号:3306
阅读全文
摘要:过滤器Filter 添加过滤器步骤 1.写一个类继承Filter接口 2.在web.xml里注册filter + filterMapping 和servlet以及ServletMapping注册很类似: 监听器Listener 添加过滤器步骤 1.写一个类继承XXXListener接口 servle
阅读全文
摘要:为什么要使用Cookie + Session Cookie 服务器从request获取Cookie + 服务器通过response赋予客户端Cookie Session(重点) 使用场景 服务器从request获取Session + 把SessionId放进Cookie中 删除Session 方法1
阅读全文
摘要:HttpServletResponse 应用 实现重定向 转发forward vs 重定向redirect 转发,http状态码:307 重定向,http状态码:302 下载文件 图片里,“attachment:filename”冒号 应该改为“attachment;filename”分号 验证码功
阅读全文
摘要:Servlet原理 前提:自定义的servlet (MyServlet)继承HttpServlet,HttpServlet->GenericServlet->Servlet. 但MyServlet只重写了doGet, doPost 方法,未重写service() 1-浏览器 发送HTTP请求requ
阅读全文
摘要:Servlet简介 实现一个简单的Servlet 第一步:写一个类,继承HttpServlet; 并重写 doGet() doPost() 方法 HttpServlet是官方对Servlet的实现类,我们自己写的类继承HttpServlet即可。 常用的方法只有doGet和doPost,其他方法几乎
阅读全文
摘要:简易版 数据/参数在哪里: GET 是通过 URL 方式请求,可以直接看到,明文传输 POST 参数数据被包含在请求体中。通过 header 传输,同样是明文。但比直接显示在URL中安全多了 对数据长度的限制: GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 204
阅读全文
摘要:2.3版本太老 可以去Tomcat安装目录,寻找Tomcat的版本,与其保持一致。不然会有奇异的bug 出现。 ${tomcat install path}/webapps/ROOT/WEB-INF/web.xml
阅读全文
摘要:Maven项目的标准目录结构 src main java 源文件 resources 资源文件 filters 资源过滤文件 config 配置文件 scripts 脚本文件 webapp web应用文件 test java 测试源文件 resources 测试资源文件 filters 测试资源过滤
阅读全文
摘要:为什么会出现警告? 因为我们访问一个网站,需要制定一个文件夹的名字!这是必须要得配置。 如何解决警告⚠️?
阅读全文
摘要:“mirrors” 国内访问外网速度很慢,可以增加<mirrors>,加速依赖的下载。国内推荐使用阿里云镜像。 详细:Maven - 镜像<mirror> “localRepository” 运行Maven的时候,Maven所需要的任何构件都是直接从本地仓库获取的(缺省的本地仓库地址为${user.
阅读全文
摘要:什么是http http的两个时代 http请求 请求行 数据/参数在哪里: GET 是通过 URL 方式请求,可以直接看到,明文传输 POST 参数数据被包含在请求体中。通过 header 传输,同样是明文。但比直接显示在URL中安全多了 对数据长度的限制: GET 方法向 URL 添加数据;UR
阅读全文
摘要:简易版 详细版(必看) https://blog.csdn.net/weibo1230123/article/details/82899205
阅读全文
摘要:一、技术讲解 ASP (用于IIS服务器) html代码中,嵌入C#代码 PHP JSP/Servlet(用于Tomcat服务器) html代码中,嵌入Java代码 二、web服务器 服务器是一种被动的操作,用来处理用户的一些请求和给用户一些响应信息; IIS 微软的;ASP, Windows自带的
阅读全文
摘要:1-及时清除Session一级缓存 在处理大数据量时,会有大量的数据缓冲保存在Session的一级缓存中,这缓存大太时会严重显示性能, 所以在使用Hibernate处理大数据量的,可以使用session. clear()或者session. evict(Object) 在处理过程中,清除全部的缓存或
阅读全文
摘要:实践成功方案:检查 testFailureIgnore 参数是否设置错误 参考 https://stackoverflow.com/questions/35730372/skip-build-failure-in-maven-if-the-integration-test-fails https:/
阅读全文
摘要:详情:https://www.mojohaus.org/build-helper-maven-plugin/usage.html
阅读全文
摘要:总结 maven-surefire-plugin :运行unit test maven-failsafe-plugin : 运行integration test (failsafe代表哪怕fail了也安全) 重要参考(必看): maven-failsafe-plugin官方文档: http://ma
阅读全文
摘要:hibernate 简介 hibernate是一个开源框架,它是对象关联关系映射的框架,它对JDBC做了轻量级的封装,而我们java程序员可以使用面向对象的思想来操纵数据库。hibernate核心接口 session:负责被持久化对象CRUD操作 sessionFactory:负责初始化hibern
阅读全文
摘要:总结 1.HQL (Hibernate Query Language) 语法类似sql 把sql语句的表名换成了类名,把字段名换成实体类中的属性 具有跨数据库的优点 2.QBC (Query By Criteria) 这种方式比较面向对象方式,重点是有三个描述条件的对象:Restrictions,O
阅读全文
摘要:概念 JPA - Java Persistence API,是Java EE 5的标准ORM接口,也是ejb3规范的一部分。 Hibernate,当今很流行的ORM框架,是JPA的一个实现,但是其功能是JPA的超集。 区别与联系 JPA和Hibernate之间的关系:可以简单的理解为JPA是标准接口
阅读全文
摘要:***前提*** 1-在springcontext-xml里,开启注解 2- ***生命周期相关*** @PostConstruct 在Spring中,在初始化一个对象时,执行顺序为 Constructor() >> @Autowired >> @PostConstruct 其实从依赖注入的字面意思
阅读全文
摘要:NuGet.Config 默认从这里找 C:\Users\cuixun\AppData\Roaming\NuGet 如果你想从另外的地方读取reference包,请更改“repositoryPath”.
阅读全文
摘要:AOP总结 AOP:Aspect Oriented Programming,面向切面编程。 AOP实现的关键在于 代理模式,AOP代理主要分为静态代理和动态代理。静态代理的代表为AspectJ;动态代理则以Spring AOP为代表。 AspectJ是静态代理,也称为编译时增强,AOP框架会在编译阶
阅读全文