- 博客(38)
- 收藏
- 关注
原创 Gradle构建工具
基于JVM的敏捷开发语言是一种成熟的面向对象编程语言,既可以用于面向对象,也可以用作纯粹的脚本语言适合与spring的动态语言一起使用,设计时充分考虑了Java的集成tasks对象的create()/register(): tasks.create(“E”){…}、tasks.register(“…”)register: 延迟创建,只有task被调用的时候才会创建tips: 可使用defaultTasks()定义任务(在没有指定其他任务时执行的默认任务)继承DefaultTask。
2022-11-06 17:39:34 399 1
原创 Druid数据库连接池
Java连接数据库有很多中方式,最原始的方式就是直接使用数据库驱动连接数据库,但是这种方式有很多的弊端,如每次执行sql都需要创建和关闭数据库连接器,需要消耗大量的资源,如果没关闭成功还会导致内存泄漏的问题,以及一些线程问题。而数据库连接池主要做的是,预先创建好一定量的数据库连接放到池子中,当需要执行sql语句的时候取出一个数据库连接执行sql语句,用完了放回去,如果系统关闭则断开所有的数据库连接,并释放内存。
2022-10-07 15:04:08 2458
原创 RESTful开发风格
RESTful开发风格REST与RESTfulREST(Representational State Transfer)-表现层状态转换,资源在网络中以某种表现形式进行状态转移RESTful是基于REST理念的一套开发风格,是具体的开发规则RESTful传输数据RESTful开发规范使用URL作为用户交互入口明确的语义规范(GET|POST|PUT|DELETE->查|增|改|删)只返回数据(JSON|XML),不包含任何展现RESTful命名要求URI说明修
2021-01-12 16:29:51 161
原创 Spring MVC
Spring MVCSpring MVC介绍MVC是什么Spring MVCSpring MVC是Spring体系的轻量级WEB MVC框架Spring MVC的核心Controller控制器,用于处理请求,产生响应Spring MVC基于Spring IoC容器运行,所有对象被IoC管理Spring 5.X版本变化Spring 5.x最低要求JDK8与J2EE 7(Servlet 3.1/Tomcat 8.5+)Spring 5.x支持JDK8/9,可以使用新特性Spring
2021-01-09 14:58:38 137
原创 Spring JDBC与事务管理
Spring JDBC与事务管理Spring JDBCSpring JDBC是Spring框架用于处理关系型数据库的模块Spring JDBC对JDBC API进行封装,极大简化开发工作量JdbcTemplate是Spring JDBC核心类,提供数据CRUD方法Spring JDBC的使用步骤Maven工程引入依赖spring-jdbcapplicationContext.xml配置DataSource数据源在Dao注入JdbcTemplate对象,实现数据CRUDJdbcTem
2021-01-06 11:43:05 111
原创 Spring AOP面向切面编程
Spring AOP面向切面编程Spring AOPSpring AOP - Aspect Oriented Programming 面向切面编程AOP的做法是将通用、于业务无关的功能抽象封装为切面类切面可配置在目标方法的执行前、后运行,真正做到即插即用Spring AOP用到的依赖dependency:<dependencies> <dependency> <groupId>org.springframework</gr
2021-01-06 11:41:37 92
原创 基于Java Config配置的IoC容
基于Java Config配置的IoC容器基于Java Config的优势完全摆脱XML的束缚,使用独立Java类管理对象与依赖注解配置相对分散,利用Java Config可对配置集中管理可以在编译时进行依赖检查,不容易出错Java Config核心注解注解说明@Configuration描述类,说明当前类是Java Config配置类,完全替代XML文件@Bean描述方法,方法返回对象将被IoC容器管理,beanId默认为方法名@ImportResour
2021-01-06 11:39:40 95
原创 基于注解配置IoC容器
基于注解配置IoC容器基于注解的优势摆脱繁琐的XML形式的bean与依赖注入配置基于“声明式”的原则,更适合轻量级的现代企业应用让代码可读性变得更好,让研发人员拥有更好的开发体验三类注解组件类型注解-声明当前类的功能与职责自动装配注解-根据属性特征自动注入对象元数据注解-更细化的辅助IoC容器管理对象的 注解组件类型注解:四种组件类型注解注解说明@Component组件注解,通用注解,被该注解描述的类将被IoC容器管理并实例化@Controller
2021-01-06 11:38:40 179
原创 Spring IoC与Bean管理
Spring IoC与Bean管理Spring快速入门IoC控制反转IoC控制反转,全称Inverse of Control,是一种设计理念由代理人来创建与管理对象,消费者通过代理人来获取对象IoC的目的是降低对象之间直接耦合加入IoC容器将对象统一管理,让对象关联变为弱耦合DI依赖注入IoC是设计理念,是现代程序设计遵循的标准,是宏观目标DI(Dependency Injection)是具体技术实现,是微观实现DI在Java中利用反射技术实现对象注入(Injection)Sp
2021-01-06 11:37:29 147
原创 Linux基础
Linux基础文章目录Linux基础关于Linux系统什么是操作系统Linux操作系统Linux特点Linux发行版本Linux发行版选择建议CentOS - 社区企业操作系统CentOS版本选择Linux系统目录Linux倒挂树形目录结构服务器远程管理SSH客户端Xshell与XftpLinux文件操作指令Linux命令格式:vim文本编辑器关于Vim文本编辑器vim三种模式Vim重要快捷键常用文本工具打包与压缩Linux压缩程序-gziptar打包与压缩tar常用可选项安装应用程序:为CentOS安装
2020-11-14 11:31:05 177
原创 MyBatis进阶
MyBatis进阶文章目录MyBatis进阶什么是日志SLF4j与Logback日志的使用:动态SQL代码示例:MyBatis二级缓存缓存的范围二级缓存运行规则商品和详情对象关联查询代码案例(一对多):代码案例(多对一):分页插件PageHelper分页查询的麻烦事PageHelper使用流程不同数据库分页的实现原理MySQL分页Oracle分页(商业数据库NO.1)SQL Server 2000SQL Server 2012+MyBatis整合C3P0连接池MyBatis批处理批量插入数据的局限:批量插
2020-10-30 14:37:40 169
原创 MyBatis基础入门
MyBatis基础入门文章目录MyBatis基础入门软件开发中的框架框架的优点SSM开发框架什么是MyBatisMyBatis开发流程MyBatis环境配置mybatis-config.xml说明mybatis-config.xml示例:创建SqlSessionSqlSessionFactorySqlSession示例代码初始化工具类MyBatisUtilsMyBatisUtils代码示例:MyBatis数据查询简单查询MyBatis数据查询步骤示例:SQL传参多表查询示例(不用ResultMap结果映射
2020-10-28 12:16:28 112
原创 Lambda表达式
Lambda表达式什么是Lambda表达式JDK8开始支持Lambda表达式,用来让程序编写更优雅利用Lambda可以更简洁的实现匿名内部类与函数声明与调用基于Lambda提供stream流式处理极大简化对集合的操作Lambda表达式语法格式:说明:代码示例:MathOperation.javapackage com.imooc.lambda;/** * 四则运算接口 * @author CubeMonkey * @create 2020-10-23 17:39 */
2020-10-24 08:54:12 122
原创 反射Reflect
反射Reflect什么是反射反射(Reflect)是在运行时动态访问类与对象的技术反射是JDK1.2版本后的高级特性,隶属于java.lang.reflect大多是Java框架都基于反射实现参数、动态注入等特性反射的核心类Class类Constructor构造方法类Method方法类Field成员变量类Class类Class是JVM中代表"类和接口"类Class对象具体包含了某个特定类的结构信息通过Class对象可获取对应类的构造方法/方法/成员变量Class核心方法
2020-10-23 13:16:20 92
原创 设计模式
设计模式什么是设计模式设计模式是前辈总结的设计经验设计模式的目标是代码更容易理解,更容易维护通过设计模式可以让代码更加可靠设计模式的分类创建型模式结构型模式行为型模式...
2020-10-20 19:28:49 111
原创 工厂模式
工厂模式关于工厂模式工厂模式用于隐藏创建对象的细节工厂模式核心:工厂类(Factory)工厂模式可细分为简单工厂、工厂方法与抽象工厂简单工厂项目应用1(I18N项目国际化)I18N接口package com.imooc.factory.i18n;//Internationalizationpublic interface I18N { public String getTitle();}Chinese.java-> I18接口的实现类package com.im
2020-10-20 19:28:15 139
原创 Maven入门
Maven入门Maven介绍Maven是项目管理工具,对软件项目提供构建与依赖管理Maven是Apache下的Java开源项目Maven为Java项目提供了统一的管理方式,已成为业界标准解决了的问题工程的结构不统一第三方jar包多的时候,不便于管理工程打包的困难Maven核心特性项目设置遵循统一的规则,保证不同开发环境的兼容性强大的依赖管理,项目依赖组件自动下载、自动更新可扩展的插件机制,使用简单,功能丰富Maven的坐标:GroupId:机构或者团队的英文,采用"逆
2020-10-20 13:28:03 229
原创 连接池与JDBC连接池进阶使用
连接池与JDBC连接池进阶使用阿里巴巴Druid连接池Druid是阿里巴巴开源连接池组件,是最好的连接池组件之一Druid对数据库连接进行有效管理与重用,最大化程序执行效率连接池负责创建管理连接,程序只负责取用与归还结合了C3P0、DBCP、Proxool等DB池的优点加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池Druid连接池配置与使用配置:导入druid的jar包在src下创建对应的配置文件,配置连接参数详细配置
2020-10-13 22:04:38 206
原创 Commons DBUtils使用入门
Commons DBUtils使用入门Apache Commons DBUtilscommons-dbutils是Apache提供的开源JDBC工具类库它是对JDBC的简单封装,学习成本低使用commons-dbutils可以极大简化JDBC编码工作量主要对象的说明:DbUtilsDbUtils :提供如关闭连接、装载JDBC驱动程序等常规工作的工具类,里面的所有方法都是静态的。主要方法如下:public static void close(…) throws java.sql.SQ
2020-10-13 22:04:08 238
原创 JDBC批处理
JDBC批处理说明: 当需要成批插入或者更新记录时,可以采用Java的批量更新机制, 这一机制允许多条语句一次性提交给数据库批量处理。通常情况下比单独提交处理更有效率批处理语句涉及的三个方法:addBatch(String):添加需要批量处理的SQL语句或是参数executeBatch():执行批量处理语句clearBatch():情况缓存的数据测试代码package com.imooc.jdbc.sample;import com.imooc.jdbc.goodapp.commo
2020-10-12 16:15:37 242
原创 JDBC中Date日期对象的处理
JDBC中Date日期对象的处理package com.imooc.jdbc.hrapp.command;import com.imooc.jdbc.goodapp.common.DBUtils;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;import java.text.ParseException;import java.text.SimpleDate
2020-10-12 16:14:46 206
原创 基于实体类实现分页数据封装
基于实体类实现分页数据封装Tip:“limit” 是MySQL的“方言”,不同数据库厂商有不同的实现Employee.javapackage com.imooc.jdbc.hrapp.entity;/** * 员工实体类 * @author CubeMonkey * @create 2020-10-12 14:12 */public class Employee { /** * 1. 具备默认构造函数 * 2. 属性私有 * 3. 存在getter
2020-10-12 16:14:16 366
原创 事务
事务什么是事务:事务是以一种可靠的、一致的方式,访问和操作数据库的程序单元说人话:要么把事情做完,要么什么都不做,不要做一半事务依赖于数据库实现,MySQL通过事务区作为数据缓冲地带JDBC俩种事务模式JDBC运训俩种事务模式自动提交事务模式手动提交事务模式自动提交事务模式自动提交模式是指每执行一次写操作SQL,自动提交事务自动提交开启方法:conn.setAutoCommit(true)自动事务是JDBC默认行为,此模式无法保证多数据一致手动提交事务模式手动提交模
2020-10-12 16:13:37 171
原创 JDBC实现写数据
JDBC实现写数据(INSERT、DELETE、UPDATE)INSERT:package com.imooc.jdbc.hrapp.command;import com.imooc.jdbc.goodapp.common.DBUtils;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;import java.util.Scanner;/** * @au
2020-10-12 16:13:04 160
原创 封装JDBCUtils类
封装JDBCUtils类 package com.imooc.jdbc.common;import java.sql.*;/** * @author CubeMonkey * @create 2020-10-11 9:55 */public class DBUtils { /** * 创建新的数据库连接 * @return 新的Connection对象 * @throws ClassNotFoundException * @throws SQ
2020-10-12 16:11:20 85
原创 PreparedStatement预编译SQL
PreparedStatement预编译SQLPreparedStatementPreparedStatement 预编译Statement是Statement的子接口PreparedStatement 对SQL进行参数化,预防SQL注入攻击PreparedStatement 比Statement执行效率高用Statement语句的代码//存在SQL注入风险//dname值为' or 1 = 1 or 1 = '时,所有筛选条件均失效//SQL:select * from employe
2020-10-12 16:10:16 484
原创 PreparedStatement预编译SQL
PreparedStatement预编译SQLPreparedStatementPreparedStatement 预编译Statement是Statement的子接口PreparedStatement 对SQL进行参数化,预防SQL注入攻击PreparedStatement 比Statement执行效率高用Statement语句的代码//存在SQL注入风险//dname值为' or 1 = 1 or 1 = '时,所有筛选条件均失效//SQL:select * from employe
2020-10-11 08:12:19 259
原创 SQL注入问题
SQL注入问题SQL注入攻击:SQL注入攻击是指利用SQL漏洞越权获取数据的黑客行为SQL注入攻击根源是为对原始SQL中的敏感字符作特殊处理解决方法:放弃Statement改用PreparedStatement处理SQL实例代码:package com.imooc.jdbc.hrapp.command;import java.sql.*;import java.util.Scanner;/** * @author CubeMonkey * @create 2020-10-09
2020-10-11 08:11:02 111
原创 实现查询功能
实现查询功能package com.imooc.jdbc.hrapp.command;import java.sql.*;import java.util.Scanner;/** * @author CubeMonkey * @create 2020-10-09 13:59 */public class QueryCommand implements Command { @Override public void execute() { System.ou
2020-10-11 08:08:39 640
原创 JDBC驱动
关于JDBC驱动获取JDBC驱动的Jar包 需要到各个数据库厂商的官网下载markdown 在百度中搜索你需要连接的数据库厂商名 + driver 如:jdbc driver, 进入指定的官网中下载对应版本的驱动创建数据库连接代码示例 Class.forName("com.mysql.cj.jdbc.Driver");//1.加载初始化JDBC驱动类 String url = "jdbc:mysql://localhost:3306/imooc";//数据库连接字符串
2020-10-11 08:07:56 1145
原创 JDBC快速上手
JDBC快速上手前置条件安装了mysql8.0,在mysql中创建一个字符集为utf8mb4,名字为imooc的数据库执行以下sql语句/* Navicat Premium Data Transfer Source Server : localhost Source Server Type : MySQL Source Server Version : 80016 Source Host : localhost:3306 Source
2020-09-27 12:19:20 206
原创 JDBC概述
JDBC概述什么是JDBC?JDBC数据库连接-Java DataBase ConnectivityJDBC可让Java通过程序操作关系型数据库JDBC基于驱动程序实现与数据库的连接与操作JDBC的优点统一的API,提供一致的开发过程易于学习,容易上手程易于学习,容易上手功能强大,执行效率高,可处理海量数据...
2020-09-27 12:15:51 123
原创 请求转发与响应重定向
请求转发与响应重定向1.理解请求转发(RequestDispatcher):服务器收到请求后,从一个资源跳转到另一个资源的操作。响应重定向(Redirect):客户端给服务器发请求,然后服务器发送重定向的状态码给客户端,同时客户端向服务器重新请求指定的地址。2.主要区别请求转发: (1)浏览器地址栏不发生改变,不会变为目标地址 (2)请求转发是服务器的行为,整个转发的过程在服务器中完成 (3)整个过程是一次请求,一次响应 (4)各个资源共享Request域中的数据
2020-07-21 16:30:58 2702
原创 数据结构-逆波兰计算器
package com.cubemonkey.stack;/** * @author CubeMonkey * @create 2020-06-05 13:52 */public class PolandNotation { /** * 计算指定运算符 * @param num1 被操作数 * @param num2 操作数 * @param oper 运算符 * @return */ public static int
2020-07-19 22:20:00 131
原创 数据结构-中缀表达式的计算
package com.cubemonkey.stack;/** * 使用栈完成表达式的计算 * @author CubeMonkey * @create 2020-06-04 18:41 */public class Calculator { static int id; /** * 计算指定运算符 * @param num1 被操作数 * @param num2 操作数 * @param oper 运算符 * @retu
2020-07-19 22:19:40 277
原创 PAT反转链表 (25分)(静态链表)
反转链表 (25分)(静态链表)此处题目链接题目:给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转。例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→4;如果 K 为 4,则输出应该为 4→3→2→1→5→6,即最后不到 K 个元素不反转。输入格式:每个输入包含 1 个测试用例。每个测试用例第 1 行给出第 1 个结点的...
2020-03-07 21:51:28 252 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人