MyBatis

大佬的思路就是不一样,这是我见过最简洁又清晰的SSM框架整合

。_饼干妹妹 提交于 2020-08-06 09:05:42
创建项目和SSM框架整合思路 一、创建项目 因为后面会配置springMVC,所以用IDEA的web骨架创建一个maven项目。 创建项目目录如下,同时,项目需要的包和文件已手动创建好了: 上图中,application.xml为spring配置文件,log4j为日志配置文件,springMVC.xml为springMVC配置文件 在pom.xml文件中配置需要的依赖,整个项目的依赖都如下所示。 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.hust.demo-ssm</groupId> <artifactId>demo</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war<

springboot整合mybatis和rabbitMQ实例

独自空忆成欢 提交于 2020-08-06 08:12:35
springboot整合mybatis和rabbitMQ的一个小例子 消息生产者服务搭建 springboot整合mybatis和rabbitMQ的框架搭建非常简单,分三步,第一步使用idea工具创建一个springboot工程,第二步在application.yml文件中配置相关信息,第三步在springboot启动类上面加注解。 创建工程好之后,将application.properties改为application.yml(个人喜好yml文件,当然喜欢什么用什么),添加如下配置 template:有关 AmqpTemplate 的配置 exchange:缺省的交换机名称,此处配置后,发送消息如果不指定交换机就会使用这个 spring : datasource : #driver - class - name : com . mysql . jdbc . Driver url : jdbc : mysql : / / 127.0 .0 .1 : 3306 / test ? useUnicode = true & characterEncoding = utf8 & serverTimezone = UTC username : root password : 123456 rabbitmq : host : 127.0 .0 .1 username : guest

JAVA日记之mybatis-3一对一,一对多,多对多xml与注解配置

折月煮酒 提交于 2020-08-06 07:42:50
1.Mybatis多表查询 1.1 一对一查询 1.1.1 一对一查询的模型 用户表和订单表的关系为,一个用户有多个订单,一个订单只从属于一个用户 一对一查询的需求:查询一个订单,与此同时查询出该订单所属的用户 1.1.2一对一查询的语句 对应的sql语句:select * from orders o,user u where o.uid=u.id; 查询的结果如下: 1.1.3 创建Order和User实体 public class Order { private int id; private Date ordertime; private double total; //代表当前订单从属于哪一个客户 private User user; } public class User { private int id; private String username; private String password; private Date birthday; } 1.1.4 创建OrderMapper接口 public interface OrderMapper { List <Order > findAll ( ) ; } 1.1.5 配置OrderMapper.xml <mapper namespace="com.itheima.mapper.OrderMapper">

Mybatis源码分析之 外观模式

橙三吉。 提交于 2020-08-06 06:32:31
外观模式(门面模式) 定义:定一个对外的接口,通过此接口来访问内部多系统接口。 接口层:对外提供了访问入口,对内可以访问所有系统的接口 系统层:在系统中可以是一个活着多个,它们之间有着复杂的联系 mybatis通过包结构可以看出 SqlSession统一对外,可以访问内部的其他模块 来源: oschina 链接: https://my.oschina.net/u/3900969/blog/4299021

java的ssm框架整合(一)

怎甘沉沦 提交于 2020-08-06 05:18:18
目前 java 的三大框架整合比较热门的是 spring+springMVC+mybatis 。今天我使用 maven 来搭建 ssm 框架实现简单的增删改查。本人也是小白一枚,算是对自己的一次总结吧。大神们勿喷 …… 关于 maven 的使用,可以自行百度 ~~~~~~~~ 创建 maven 项目以及首次运行项目时暂时发现可能会遇到几个问题,在这里说明一下。 1. 创建 maven 项目后,只有 src/main/resource 这一个目录,正确的是三个类似这样的目录? 解决办法:右击项目名 -->Build Path-->configure Build Path…---> 找到 Libraries---> 然后双击弹出 Edit Library 框,选择 Alternate JRE -->finish--->ok 即可 2.maven 项目中的 jsp 文件报错,出现红叉? 解决办法:右击项目名 -->Build Path-->configure Build Path…---> 找到 Libraries---> 选择 Add Library…--> 选中 Server Runtime ---->next ---->Apache Tomcat v7.0 ---finish-->ok 即可 3. 将配置文件以及需要的 jar 包全部放入后,项目名报错,出现红叉? 解决办法

使用mybatis插件拦截器机制在sql的插入及更新时设置创建人和更新人

橙三吉。 提交于 2020-08-06 03:56:37
参考: https://www.jianshu.com/p/0a72bb1f6a21 https://www.extlight.com/2018/06/13/Mybatis-%E6%8F%92%E4%BB%B6%E5%AE%9E%E7%8E%B0%E5%8A%A8%E6%80%81%E8%AE%BE%E7%BD%AE%E5%8F%82%E6%95%B0/ @Component @Slf4j @Intercepts({@Signature(type = Executor.class, method = 'update', args = {MapperdStatement.class, Object.class} ) } ) public class CreateUserInterceptor implements Interceptor { public Object intercept(Invovation invocation) throws Throwable { MapperdStatement ms = Invocation.getArgs()[0]; Object parameter = invocation.getArgs()[1]; SqlCommandType sqlCommandType = ms.getSqlCommandType(); Field field

云服务和SOA架构以及微服务架构的区别及联系

牧云@^-^@ 提交于 2020-08-06 01:17:03
截止目前,如果之前有看我文章的,关于SSM框架的原理,应该都差不多理解了,毕竟都是看我写过源码的人了,接下来会进入Spring Boot和Spring Cloud的原理,源码解析。在此之前,我们需要了解如下几个概念。云服务、SOA架构、微服务架构。 1、 基于IOC原理,手写SpringIOC源码 2、 基于MVC原理,手写SpringMVC源码 3、 基于连接池和AOP原理,手写MyBatis源码 1.云服务 首先看看百科的介绍:云服务是基于互联网的相关服务的增加、使用和交互模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。恩,读起来有点咬口,还是不是很理解。接下来慢慢来解读云服务吧。 云服务只是一个统称,我们可以将其分成三层:一层IAAS、二层PAAS、三层SAAS。 1.1.IAAS基础设施服务 Infrastructure-as-a-Service(基础设施即服务),把IT基础设施作为一种服务通过网络对外提供。 在这种服务模型中,用户不用自己构建一个数据中心,而是通过租用的方式来使用基础设施服务,包括服务器、存储和网络等。例如我们可直接在网络上购买阿里云服务器来使用,而不用自己构建机房、网络、储存等设设备。 换句话说就是,我们把网络、服务器、存储等这些IT基础设施作为一种资源,通过网络给用户提供服务。 1.2.PAAS平台服务 Platform-as-a

MyBatis和Spring整合的奥秘

生来就可爱ヽ(ⅴ<●) 提交于 2020-08-06 01:00:44
本篇博客源码分析基于Spring 5.1.16.RELEASE,mybatis-spring 2.0.0,较高版本的mybatis-spring源码有较大区别。 Spring之所以是目前Java最受欢迎的框架,几乎所有的Java项目都在使用,就是因为它良好的生态,很多技术可以与之整合,为什么其他技术可以和Spring相整合,就是因为Spring拥有很多扩展点,阅读Spring源码,有一部分原因就是有必要清楚的知道Spring提供了哪些扩展点,而怎么合理的利用这些扩展点,就需要了解其他技术是如何利用这些扩展点的。 今天我就来带着大家看下,国内最流行的数据库框架MyBatis是如何利用Spring的扩展点的,从而双剑合璧,让Spring+MyBatis成为国内最流行的技术搭配。 前置知识 为了后面的故事可以顺利展开,很有必要先给大家介绍下,阅读mybatis-spring源码的前置知识,没有这些前置知识阅读mybatis-spring源码是寸步难行。 mybatis-spring使用 因为现在有了SpringBoot,所以Mybatis和Spring的整合变得非常简单,但是如果没有SpringBoot,该怎么整合呢?我翻阅了百度的前几页,不知道是不是搜索关键词问题,几乎全是用XML的方式去整合Mybatis和Spring的,零XML配置,它不香吗? 代码结构: 具体实现:

2020最新IDEA插件大集合,一款能帮助你写代码的工具是多么重要

孤街醉人 提交于 2020-08-05 22:11:51
摘要 12款为用户精心打造的Idea插件,含盖前后端,另把使用小技巧分享给大家,提高大家的码率,希望对你们有帮助! Lombok Lombok为Java项目提供了非常有趣的附加功能,使用它的注解可以有效的地解决那些繁琐又重复的代码,例如 Setter、Getter、toString、equals、hashCode 以及非空判断等。 举个例子,我们给一个类添加@Getter和@Setter注解: /** * 修改订单费用信息参数 * Created by macro on 2018/10/29. */ @Getter @Setter public class OmsMoneyInfoParam { private Long orderId; private BigDecimal freightAmount; private BigDecimal discountAmount; private Integer status; } Lombok就会为我们自动生成所有属性的Getter和Setter方法。 Free MyBatis Plugin MyBatis扩展插件,可以在Mapper接口的方法和xml实现之间自由跳转,也可以用来一键生成某些xml实现。 我们可以通过Mapper接口中方法左侧的箭头直接跳转到对应的xml实现中去;

Mybaties简单实例测试及注意问题

橙三吉。 提交于 2020-08-05 22:09:38
IDEA下一个简单的mybaties测试程序,适合初学者阅读。 目录结构及lib: 在src>main>java 下 根据数据库表创建实体类:com.itheima.domain.User 注意:表字段名和实体属性要对应一致 package com.itheima.domain; import java.io.Serializable; public class User implements Serializable { private Integer id; private String sname; private Integer age; private String sex; private String phone; private Integer javascore; private String birth; public Integer getId() { return id; } public void setId(Integer id) { this .id = id; } public String getSname() { return sname; } public void setSname(String sname) { this .sname = sname; } public Integer getAge() { return age; }