- 博客(86)
- 资源 (3)
- 收藏
- 关注
原创 Spring Boot2.x——访问数据库
1、整合MyBatis框架1.1、MyBatis简介MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。相关Maven依赖<dependency> <group...
2021-05-07 08:44:16
121
原创 Spring Boot2.x——全注解下的Spring IoC
1、IoC容器简介Spring IoC容器是一个管理Bean的容器,在Spring的定义中,它要求所有的IoC容器都需要实现接口BeanFactory,它是一个顶级容器接口。Spring IoC容器允许我们按类型或名称获取Bean。isSingleton方法判断Bean是否在Spring IoC中为单例。在Spring IoC容器中,默认情况下,Bean都是以单例存在。...
2021-04-26 08:54:33
173
原创 Spring2.x——事务管理
1、认识事务本身对于一个软件系统来说,需要相应的数据资源(比如,数据库、文件系统等)来保存系统状态。在对系统状态所依托的数据资源进行访问的时候,为了保证系统始终处于“正确”的状态,我们必须对这些访问操作进行一些必要的限定,一次来保证系统状态的完整性。...
2021-04-22 17:48:30
207
原创 Spring2.x——使用Spring访问数据
1、统一的数据访问异常层次体系在一套语义完整的异常体系定义完成之后,不管数据访问方式如何变换,只要相应的数据访问方式能够将自身的异常,转译到这套语义完整的异常体系定义之内,对于客户端对象来说,自身的数据访问异常处理逻辑从此就是岿然不动的。Spring框架中统一的异常体系所涉及的大部分异常类型都定义在org.springframework.dao包中,处于这个体系的所有异常类型均为以org.springframework.dao.DataAccessException为“统领”,然后根据职能划分为不同
2021-04-19 08:27:19
181
原创 Spring2.x——Spring MVC
1、鸟瞰Spring MVCSpring MVC框架的处理控制器的实现策略,与其他的请求驱动的Web框架的总体思路上是相似的,通过引入Front Controller和Page Controller的概念来分离流程控制逻辑与具体的Web请求处理逻辑。org.springframework.web.servlet.DispatcherServlet就是Spring MVC框架中的Front Controller,它负责接收并处理所有的web请求,只不过针对具体的处理逻辑,它会委派给它的下一级控制器去实现,
2021-04-13 09:04:02
330
原创 Spring2.x——Spring AOP
1、Spring AOP的实现机制Spring AOP属于第二代AOP,采用动态代理机制 和字节码生成技术实现。与最初的AspectJ采用编译器将横切逻辑织入目标对象不同,动态代理机制和字节码生成都是在运行期间为目标对象生成一个代理对象,而将横切逻辑织入到这个代理对象中,系统最终使用的是织入了横切逻辑的代理对象,而不是真正的目标对象。1.1、设计模式之代理模式ISubject:该接口是对被访问者或者被访问资源的抽象。 SubjectImpl:被访问者或者被访问资源的具体实现类。 Sub
2021-03-30 09:04:56
316
原创 AOP框架
目录1、静态AOP和动态AOP1.1、静态AOP1.2、动态AOP2、Java平台上的AOP实现机制2.1、动态代理2.2、动态字节码增强2.3、Java代码生成2.4、自定义类加载器3、AOP的相关概念3.1、Joinpoint3.2、Pointcut3.3、Advice3.4、Aspect3.5、织入和织入器3.6、目标对象1、静态AOP和动态AOP1.1、静态AOP静态AOP,即第一代AOP,以最初的AspectJ为杰出代表,其特
2021-03-17 22:53:28
641
原创 Spring2.x——Spring的IoC容器之ApplicationContext
书籍是《Spring揭秘》,内容介绍的Spring版本似乎是2.x左右...
2021-03-15 13:01:06
247
原创 Spring2.x——Spring的Ioc容器之BeanFactory
1、Spring的Ioc容器之BeanFactorySpring提供了两种容器类型:BeanFactory和ApplicationContextBeanFactory:基础类型Ioc容器,提供完整的Ioc服务支持。如果没有特殊指定,默认采用延迟初始化策略(lazy-load)。只有当客户端对象需要访问容器中的某个受管对象的时候,才对该受管对象进行初始化以及依赖注入操作。所以,相对来说,容器启动初期速度较快,所需要的资源有限。对于资源有限,并且功能要求不是很严格的场景,BeanFactory是比
2021-03-08 20:24:18
324
原创 MySQL学习——(1)简介
1、数据库的概念1.1、DB数据库(database):存储数据的“仓库”。它保存了一系列有组织的数据。1.2、DBMS数据库管理系统(Database Management System):数据库是通过DBMS创建和操作的容器。1.3、SQL结构化查询语言(Structure Query Language):专门用来与数据库通信的语言。优点:1、不是某个特定数据库供应商专有的语言,几乎所有DBMS都支持SQL。2、简单3、可以进行非常复杂和高级的数据库操作。
2021-01-06 22:30:13
121
原创 《代码整洁之道》——(9)类
《代码整洁之道》——(9)类9.1、类的组织遵循标准的Java约定,类应该从一组变量列表开始。如果有公共静态常量,应该先出现。然后是私有静态变量,以及私有实体变量。很少会有公共变量。9.2、类应该短小类应该短小。对于函数,我们通过计算代码行数衡量大小。对于类,我们采用不同的衡量方法,计算权责。类的名称应当描述其权责。...
2020-12-02 22:08:51
233
原创 《代码整洁之道》——(6)错误处理
《代码整洁之道》——(6)错误处理6.1、使用异常而非错误码6.2、先写Try-Catch-Finally语句6.3、使用不可控异常可控异常的
2020-11-25 22:44:00
218
原创 mybatisplus学习——(3)条件构造器
mybatisplus学习——(3)条件构造器目录mybatisplus学习——(3)条件构造器1、示例12、示例23、示例34、示例45、示例56、示例67、代码自动生成器1、示例1 @Test void contextLoads(){ // 查询name不为空的用户,并且邮箱不为空的用户,年龄大于等于12 QueryWrapper<User> wrapper = new QueryWrappe...
2020-11-23 21:32:02
303
原创 mybatisplus学习——(2)操作
mybatisplus学习——(2)操作1、配置日志#配置日志mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl2、插入(insert) @Test public void testInsert(){ User user = new User(); user.setName("孙浩"); user.setAge(22)
2020-11-23 19:55:06
249
原创 《代码整洁之道》——(5)对象和数据结构
《代码整洁之道》——(5)对象和数据结构5.1、数据抽象隐藏实现并非只是在变量之间放上一个函数层简单。隐藏实现关乎抽象!类并不简单的用取值器和赋值器将其变量推向外间,而是曝露抽象接口,以便用户无需了解数据的实现就能操作数据实体。我们不愿曝露数据细节,...
2020-11-20 08:54:50
196
原创 Spring简介
《Spring实战》——(1)Spring之旅1.1、简化Java开发依赖注入创建应用组件之间协作的行为通常称为装配(wiring)。Spring有多种装配bean的方式,采用XML是很常见的一种装配方式。Spring还支持使用Java来描述配置。Spring通过应用上下文(Application Context)装载bean的定义并把它们组装起来。Spring应用上下文全权负责对象的创建和组装。Spring自带了多种应用上下文的实现,它们之间主要的区别仅仅在于如何加载配置。应用切面
2020-11-17 11:11:27
163
原创 《代码整洁之道》——(3)注释
《代码整洁之道》——(3)注释3.1、注释不能美化糟糕的代码写注释的常见动机之一是糟糕的代码的存在。我们编写一个模块,发现它令人困扰、乱七八糟。我们知道,它烂透了。我们告诉自己:“喔,最好写点注释!”不!最好把代码弄干净!带有少量注释的整洁而有表达力的代码,要比带有大量注释的零碎而复杂的代码像样的多。与其花时间编写解释你搞出得糟糕的代码的注释。不如花些时间清洁那堆糟糕的代码。3.2、用代码来阐述...
2020-11-08 21:47:05
198
原创 《代码整洁之道》——(2)函数
《代码整洁之道》——(2)函数1、函数1.1、短小函数的第一规则是要短小。代码块和缩进if语句、else语句、while语句等,其中的代码块应该只有一行。该行大抵应该是一个函数调用语句。这样不但能保持函数短小,而且,因为块内调用的函数拥有较具说明性的名称,从而增加了文档上的价值。这也意味着函数不应该大到足以容纳嵌套结构。所以,函数的缩进层级不该多于一层或两层。1.2、只做一件事函数应该做一件事。做好这件事。只做一件事。如果函数只是做了该函数名下同意抽象层上的步骤,则函数还
2020-11-04 23:38:49
287
原创 《代码整洁之道》——(1)有意义的命名
代码整洁之道——(1)什么是整洁代码我喜欢优雅和高效的代码,代码逻辑应当直截了当,叫缺陷难以隐藏;尽量减少依赖关系,使之便于维护;依据某种分层战略完善错误处理代码;性能调至最优,省的引诱别人做没规矩的优化,搞出一堆混乱来。整洁的代码只做好一件事。糟糕的代码引发混乱!别人修改糟糕的代码时,往往会越改越烂!整洁的代码应可由作者之外的开发者阅读和增补。它应该有单元测试和验收测试。它使用有意义的命名。它只提供一种而非多种做一件事的途径。它只有尽量少的依赖关系,而且要明确的定义和提供清晰、尽量少的AP
2020-10-12 09:33:20
129
原创 mybatisplus学习——(1)简介
MybatisPlus学习——(1)1、概述MybatisPlus可以节省我们大量工作时间,所有的CRUD代码它都可以自动化完成!MyBatis-Plus(简称 MP)是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。1.1、特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作 强大的 CRUD 操作:内置通用 Mapper、通用 Se..
2020-10-11 20:40:20
129
原创 Mysql5.7-阿里云服务器安装
阿里云服务器安装mysql5.71、配置YUM源下载mysql源安装包http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm下载后用文件远程传输工具直接上传到服务器上。安装mysql源yum localinstall mysql57-community-release-el7-11.noarch.rpm安装完,应该会显示Complete!检查mysql源是否安装成功yum .
2020-09-18 19:35:04
582
原创 mybatis学习——(3)映射
1、结果映射resultMapresultMap元素是 MyBatis 中最重要最强大的元素。它可以让你从 90% 的 JDBCResultSets数据提取代码中解放出来,并在一些情形下允许你进行一些 JDBC 不支持的操作。ResultMap 的设计思想是,对简单的语句做到零配置,对于复杂一点的语句,只需要描述语句之间的关系就行了。<resultMap id="userResultMap" type="User"> <id property="id" column...
2020-09-16 20:03:14
139
原创 mybatis学习——(6)动态SQL
mybatis学习——(6)动态SQL1、简介如果你之前用过 JSTL 或任何基于类 XML 语言的文本处理器,你对动态 SQL 元素可能会感觉似曾相识。在 MyBatis 之前的版本中,需要花时间了解大量的元素。借助功能强大的基于 OGNL 的表达式,MyBatis 3 替换了之前的大部分元素,大大精简了元素种类,现在要学习的元素种类比原来的一半还要少。if choose (when, otherwise) trim (where, set) foreach2、搭建环境CREAT
2020-09-14 23:07:06
117
原创 mybatis学习——(5)Lombok、一对多、多对一
mybatis学习——(5)1、Lombok使用步骤:1、在IDEA中安装Lombok插件!2、在项目中导入Lombok的jar包3、在实体类上添加注解@Getter and @Setter@FieldNameConstants@ToString@EqualsAndHashCode@AllArgsConstructor, @RequiredArgsConstructor and @NoArgsConstructor@Log, @Log4j, @Log4j2, @Slf4j
2020-09-07 08:56:38
172
原创 mybatis学习——(4)日志、分页、注解
mybatis学习——(4)1、日志1.1、日志工厂如果一个数据库操作,出现了异常,我们需要排错。日志就是最好的助手!
2020-09-04 15:37:04
165
原创 Mybatis学习——(2)配置
1、配置解析1、核心配置文件mybatis-config.xml Mybatis的配置文件包含了会深深影响Mybatis行为的设置和属性信息。properties(属性)settings(设置)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境配置)environment(环境变量)transactionManager(事务管理器)dataSource(数据源)d
2020-09-02 11:41:54
141
原创 Mybatis学习——(1)简单CRUD
1、namespacenamespace中的包名要和dao/mapper接口的包名一致2、select选择,查询语句id:对应的namespace中的方法名 resultType:sql语句执行的返回值 paramType:参数类型 <select id="getUserList" resultType="com.sun.pojo.User"> SELECT * FROM mybatis.user </select> &
2020-09-01 17:50:13
126
原创 Maven配置resources
在build中配置resources,来防止我们资源导出失败的问题 <!--在build中配置resources,来防止我们资源导出失败的问题--> <build> <resources> <resource> <directory>src/main/resources</directory> <includ
2020-09-01 16:25:02
604
DES加密算法的实现(C++)
2019-03-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人