Java框架
文章平均质量分 66
hxdeng
这个作者很懒,什么都没留下…
展开
-
Spring+SpringMVC+MyBatis+MySQL 实现读写分离
简介主从复制实现后,主库数据只能够写入数据,读数据只能够从库数据完成。此时代码部分就需要实现读写分离;就需要配置多个数据源;而以前配置的DataSource 只能够从单一的URL中获取连接。在Spring 中提供了一个AbstractRoutingDataSource 类来可以帮我实现多个DataSource。AbstractRoutingDataSource 继承 AbstractDataS...原创 2018-11-08 18:06:58 · 1710 阅读 · 0 评论 -
10 MyBatis 获取自动增长的值
简介在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数;如果业务层需要得到记录的主键时,可以通过配置的方式来完成这个功能针对Sequence主键而言,在执行insert sql前必须指定一个主键值给要插入的记录,如Oracle、DB2,可以采用如下配置方式:<insert id="add" parameterType="vo.Catego...转载 2018-09-29 15:52:58 · 251 阅读 · 0 评论 -
09 MyBatis 整合 EhCache
MyBatis 整合Ehcach 缓存1. 导入第三方缓存jar包2. 添加Ehcache核心配置文件(ehcache.xml) 或者 在Mapper中配置缓存数据3. 需要使用Ehcache缓存的 Mapper 文件中指定Ehcache缓存。MyBatis 整合Ehcach 缓存整合步骤:1. 导入第三方缓存jar包ehcache-core-x.x.x.jarslf4j-a...原创 2018-09-29 15:52:37 · 99 阅读 · 0 评论 -
08 MyBatis 一级缓存 & 二级缓存
一级缓存(SqlSession)二级缓存(namespaces)1. 总配置文件开启全局二级缓存配置(default true)2. Mapper文件指定使用缓存3. 具体SQL语句处使用缓存(default true)一级缓存(SqlSession)一级缓存也称为本地缓存。与数据库同一次回话期间查询到的数据会放在本地缓存中。以后查询同样的数据就会从本地缓存中获取,而不是从...原创 2018-09-29 15:52:18 · 144 阅读 · 0 评论 -
07 动态 SQL 语句
简介1. if2. choose, when, otherwise 多个条件判断3. where、set4. trim 标记=格式化标记,是一个更加智能化的标记。可以与其他标记组合完成where与set标记的功能5. foreach 标记6. bind7. 多数据库支持8. 动态 SQL 中的可插拔脚本语言简介MyBatis 的强大特性之一便是它的动态 SQL。如果你有使...原创 2018-09-29 15:52:00 · 163 阅读 · 0 评论 -
04 解决实体类和字段名冲突问题
简介1. 给字段取一个别名,别名和实体类属性名相同2. 定义resultMap简介当表字段和Java Bean 类中属性不一致(Java采用驼峰命名,表采用下划线命名)时,MyBatis 是无法实现自动封装数据,此时我们需要手动指定表字段和属性的对应关系(类似Hibernate 中实体映射文件)。在MyBatis 中处理不一致有如下两种方案:1. 给字段取一个别名,别名和实体类属性...原创 2018-09-29 15:51:36 · 572 阅读 · 0 评论 -
03 MyBatis CRUD操作
1. 编写实体类2. 创建Mapper接口3. Mapper 接口映射4. 注册Mapper 接口映射5. 从 XML 中构建 SqlSessionFactory6. 不使用 XML 构建 SqlSessionFactory7. 从 SqlSessionFactory 中获取 SqlSession8. 通过SqlSession 获得Mapper对象7. 作用域(Scope)和生...原创 2018-09-29 15:51:18 · 253 阅读 · 0 评论 -
02 MyBatis 环境搭建
1. 添加相应JAR包2. 添加日志文件3. 添加MyBatis的总配置文件4. 编写持久层接口(Mapper 接口编写)5. Mapper 接口映射6. 注册Mapper 接口映射7. CRUD 操作1. 添加相应JAR包非Maven要使用 MyBatis,只需将mybatis-x.x.x.jar 文件置于 classpath 中即可。Maven<depende...原创 2018-09-29 15:51:02 · 96 阅读 · 0 评论 -
20 MyBatis 整合Spring
MyBatis 整合Spring1. 添加MyBatis-Spring-xx.jar 包2. 修改Spring核心配置文件2.1 创建SqlSessionFactory2.2 扫描Mapper接口的实现,以便于mapper能够自动注入MyBatis 整合Spring1. 添加MyBatis-Spring-xx.jar 包2. 修改Spring核心配置文件2.1 创建Sq...原创 2018-09-30 00:05:12 · 112 阅读 · 0 评论 -
13 PageHelpler分页插件
简介学习文档pageHelpler 使用步骤1. 引入分页插件 JAR引入 Jar 包你可以从下面的地址中下载最新版本的 jar 包https://oss.sonatype.org/content/repositories/releases/com/github/pagehelper/pagehelper/http://repo1.maven.org/maven2/com/gi...原创 2018-09-30 00:10:09 · 669 阅读 · 0 评论 -
22 Spring 数据库组件
JDBC 框架概述JdbcTemplate 类Spring JDBC 使用步骤数据源配置Spring JDBC 操作数据库执行DML / DQL 语句1. 查询一个整数类型1. 查询一个整数类型2. 查询一个 long 类型3. 参数绑定4. 查询字符串5. 查询并返回一个对象6. 查询并返回多个对象7. 在表中插入一行8. 更新表中的一行9. 从表中删除一行...原创 2018-09-30 00:17:04 · 236 阅读 · 0 评论 -
21 Spring 邮件发发送
1. JavaMail发送邮件2. Apache Mail 发送邮件2.1 发送简单邮件2.2 发送HTML邮件2.3 发送HTML邮件包含图片2.4 发送带附件的简单邮件2.5 发送带附件的HTML邮件3. Spring 发送邮件3.1 介绍3.2 Spring发送邮件步骤3.3 发送一封简单邮件3.4 发送一封HTML邮件3.5 发送一封带附件的邮件...原创 2018-09-30 00:16:39 · 479 阅读 · 0 评论 -
20 Spring 事务管理
Spring 事务事务特点局部事物 vs 全局事务编程式 VS 声明式事务传播性事务隔离级别脏读、不可重复读、幻象读概念说明Spring 事务常见接口/类介绍Spring 事务实现方式编程式事务实现步骤Spring 声明式事务管理1. 基于TransactionProxyFactoryBean的方式 实现声明事务管理2. 基于AspectJ的XML方式 实现声明式事务...原创 2018-09-30 00:16:18 · 149 阅读 · 0 评论 -
16 Spring AOP
1. AOP相关概念AOP 介绍切面介绍AOP 实现方式AOP 术语介绍Advice 通知类型Spring 框架中AOP的用途Spring 的AOP实现有接口和无接口的Spring AOP的实现区别2. AOP 开发开发步骤切入点详细介绍1. 前置通知(Befor advice)2. 返回后通知(After returning advice)3. 抛出异常后通知(A...原创 2018-09-30 00:15:52 · 155 阅读 · 0 评论 -
15 Spring Bean装配
Spring Bean1. Bean配置2. Bean作用域3. Bean生命周期3.1 Bean初始化实现 InitializingBean 接口配置init-method 属性3.2 Bean 销毁DisposableBean 接口配置destroy 属性3.3 配置全局的初始化和销毁的方法4. Bean 装配之Aware 接口5. Bean自动装配...原创 2018-09-30 00:15:25 · 115 阅读 · 0 评论 -
05 Spring IOC 容器
1. Spring IOC 容器2. Spring IOC 容器中如何管理对象3. Spring Bean 容器初始化4. Spring 注入4.1 属性注入4.2 构造注入1. Spring IOC 容器IOC(Inversion of Control) 控制权的转移,应用程序本身不负责依赖的创建和维护,而由外部容器创建和维护 Spring IOC作用:专门负责对...原创 2018-09-30 00:14:44 · 187 阅读 · 0 评论 -
04 Hello Word
1. 创建Maven工程,并引入JAR创建Spring核心配置文件创建类1. 创建Maven工程,并引入JARJAR 包引入<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> ...原创 2018-09-30 00:14:09 · 89 阅读 · 0 评论 -
05 Struts2 配置文件介绍
本章将带你学习一个 Struts 2 应用程序必需的基本配置。在这里,我们将看到一些重要的配置文件:web.xml,struts.xml,struts-config.xml 和 struts.properties,它们将被配置。1. web.xml 文件web.xml 配置文件是一个 J2EE 的配置文件,它决定如何用 servlet 容器来处理 HTTP 请求的元素。它不是严格意义上...原创 2018-09-30 00:11:29 · 121 阅读 · 0 评论 -
01 MyBatis 介绍
1.初始MyBatis2. 背景介绍3. 总体流程4. 特点1.初始MyBatisMyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。iBATIS一词来源于“internet”和“abatis”的组合...原创 2018-09-29 15:50:39 · 97 阅读 · 0 评论 -
10 OGNL 表达式
Struts 2支持以下几种表达式语言OGNL(Object-Graph Navigation Language),可以方便地操作对象属性的开源表达式语言;JSTL(JSP Standard Tag Library),JSP 2.0集成的标准的表达式语言。Groovy,基于Java平台的动态语言,它具有时下比较流行的动态语言(如Python、Ruby和Smarttalk等)的一些起特性...原创 2018-09-29 15:50:06 · 101 阅读 · 0 评论 -
22 MyBatisPlus 代码生成器
简介引入对应 JAR示例代码简介AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。引入对应 JAR<!-- Apache velocity --><dependen...原创 2018-09-28 11:28:58 · 241 阅读 · 0 评论 -
14 Struts2 验证框架
数据校验数据校验是程序中最常见的模块。数据校验的目的就是保证用户输入是合法、有效的。常见数据校验分三种: 1. 前台通过JavaScript校验(客户端校验); 特点:① 减少客户等待时间;② 减少服务器压力 2. 后台代码校验(服务端校验); ① 防止”绕过”客户端验证提交非法数据。② 可以在服务端处理数据前确保数据的合法性 3. 数据库校验(约束,...原创 2018-08-24 15:59:02 · 361 阅读 · 0 评论 -
12 Struts2 拦截器
拦截器拦截器在概念上和Servlet过滤器或JDK代理类一样。拦截器允许横切功能在动作和框架中单独实现。你可以使用拦截器实现下面的内容:在动作被调用之前提供预处理逻辑。在动作被调用之后提供预处理逻辑。捕获异常,以便可以执行交替处理。Struts 2 框架提供的许多功能都是使用拦截实现的;例如包括异常处理,文件上传,生命周期回调和验证等。Struts 2 框架的拦...原创 2018-08-22 11:46:24 · 184 阅读 · 0 评论 -
07 Struts2 方法调用及返回值
1. 方法调用 1. 默认方法 2. 自定义方法 3. 动态方法一个Action类可以有多个业务逻辑方法,但是只需要配置一个Action标签,不需要method属性,在调用时指出Action名和业务逻辑方法。使用动态方法调用步骤如下: 1. struts.xml 开启动态方法调用 <constant name="struts.enable...原创 2018-08-16 10:07:07 · 363 阅读 · 0 评论 -
04 Struts2 Hello Word
本教程使用的Struts2版本是struts-2.5.16 希望读者保存一致 任何的 Struts 2 项目,我们将必须创建四个组件 序号 组件 & 描述 1 动作创建一个包含完整的业务逻辑和控制用户,模型和视图之间的交互的动作类。 2 拦截器如果需要,则创建拦截器,或者使用已存在的拦截器。这是控制器的部分。 3 视图创...原创 2018-08-13 11:45:48 · 241 阅读 · 0 评论 -
09 Struts2 实现文件上传下载
文件上传对Struts2来说是一件非常容易的事情。Struts2文件上传依赖如下jar包commons-fileupload-x.x.x.jarcommons-io-x.x.x.jar文件上传大致步骤: 1. 编写页面 2. 配置struts.xml 拦截器会自动接收上传的文件 3. 在Action中写代码,把上传的文件保存到服务器中 4. 响应客户端==注意== 文...原创 2018-08-15 20:30:14 · 170 阅读 · 0 评论 -
08 Struts2 访问Servlet API
Struts2 提供了三种方式访问本地Servlet API 1. ActionContext【推荐、非耦合】 2. XxxAware接口【推荐、非耦合】 3. ServletActionContext【不推荐、耦合】 1. ActionContextActionContext是Action执行的上下文对象,在ActionContext中保存了Action执行所需要的所有...原创 2018-08-15 19:54:15 · 185 阅读 · 0 评论 -
Spring+Struts2+MyBatis集成
Struts+Spring+MyBatis集成SSM整合原创 2016-08-22 17:24:09 · 688 阅读 · 0 评论 -
Struts2+Spring+Hibernate3集成
Struts2,Spring,Hibernate集成原创 2016-08-22 16:48:55 · 488 阅读 · 0 评论 -
01 MyBatis-Plus 介绍
简介特性框架结构简介MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。MyBatis-Plus官网MyBaits-Plus 愿景我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。特性无侵入:只做增强不做改变,引入它不会对现有工程产...原创 2018-09-27 16:13:54 · 447 阅读 · 0 评论 -
02 快速入门
快速开始在数据创建表(User)创建工程(SpringMVC 版本),添加依赖Spring 集成MyBatis-Plus编码1. 编写实体类User.java2. 编写Mapper类 UserMapper.java3. 调用MyBatisPlus 提供的方法快速开始在学习MyBatis-Plus 前需要掌握Maven,Spring,MyBatis 基础知识;下面我们将...原创 2018-09-28 11:24:58 · 91 阅读 · 0 评论 -
21 MyBatis-Plus 配置详解
配置1. Spring MVC & Spring Boot 整合 MyBatis-PlusSpring BootSpring MVC2. 基本配置2.1 configLocation2.2 mapperLocations配置MyBatis-Plus 的配置异常的简单,我们仅需要一些简单的配置即可使用 MyBatis-Plus 的强大功能!注意文章中所有的...原创 2018-09-28 11:28:40 · 11484 阅读 · 3 评论 -
20 MyBatis-Plus 集成 Spring MVC、Spring Boot
SpringMVC 版本Spring Boot 版本全新的 MyBatis-Plus 3.0 版本基于 JDK8,提供了 lambda 形式的调用,所以安装集成 MP3.0 要求如下:JDK 8+Maven or GradleJDK7 以及下的请参考 MP2.0 版本2.0官网文档SpringMVC 版本Maven:<dependency> <...原创 2018-09-28 11:28:16 · 507 阅读 · 0 评论 -
17 乐观锁插件
主要适用场景乐观锁配置主要适用场景意图:当要更新一条记录的时候,希望这条记录没有被别人更新乐观锁实现方式:取出记录时,获取当前version更新时,带上这个version执行更新时, set version = newVersion where version = oldVersion如果version不对,就更新失败乐观锁配置插件配置spring xml&...原创 2018-09-28 11:27:56 · 264 阅读 · 0 评论 -
16 MyBatisPlus 中逻辑删除
简介实现步骤1. 全局配置中注入逻辑删除2. 全局策略配置中,开启 DB 策略配置简介逻辑删除原理就是给表中添加一个状态字段。设置状态为删除状态,查询时候排出删除状态即可。逻辑删除下的数据依然在数据库中,只是状态改变而已。实现步骤1. 全局配置中注入逻辑删除<!-- 注入逻辑删除 --><property name="sqlInjector"&g...原创 2018-09-28 11:27:36 · 3113 阅读 · 0 评论 -
15 性能分析插件 - PerformanceInterceptor
简介性能分析插件使用步骤简介性能分析拦截器(插件),用于输出每条 SQL 语句及其执行时间性能分析插件使用步骤sqlSessionFactory 注册性能分析插件<!-- 注册性能分析插件 --><bean class="com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor"...原创 2018-09-28 11:27:12 · 4989 阅读 · 0 评论 -
14 分页插件 - PaginationInterceptor
分页插件使用步骤分页插件使用步骤sqlSessionFactory 中注册分页插件<property name="plugins"> <list> <!-- 注册分页插件 --> <bean class="com.baomidou.mybatisplus.extension.plugins.PaginationIntercepto...原创 2018-09-28 11:26:48 · 14796 阅读 · 0 评论 -
04 CRUD
1. Mapper CRUD 接口添加1. insert删除2. deleteById3. deleteByMap4. delete5. deleteBatchIds修改6. update7. updateById查询8. selectById9. selectBatchIds10. selectByMap11. selectOne12. s...原创 2018-09-28 11:26:16 · 474 阅读 · 0 评论 -
03 常见注解 & 全局策略配置
简介注解说明1. @TableName2. @TableId3. @TableField全局策略配置1. 全局主键策略2. 全局表前缀策略配置3. 表字段和Bean属性命名不一致简介实体类无注解化设置,表字段如下规则,主键叫id可无注解大写小写如下规则。驼峰命名[无需要处理]全局配置:下划线命名dbCoolumnUnderline 设置true,大写is...原创 2018-09-28 11:25:51 · 771 阅读 · 0 评论 -
Spring + SpringMVC + MyBatis整合
Spring+SpringMVC+MyBatis整合案例原创 2016-08-21 17:42:11 · 571 阅读 · 0 评论