SSM框架的搭建学习(1)---MyBatis的环境搭建

 

       SSM(Spring+SpringMVC+MyBatis)框架为当今最为流行的WEB开发框架之一,基本上涉及数据库的一些增删改查操作都可以借用此框架,本尊此前接的一个小公司关于楼宇空调监控指标的项目就是基于此框架,只不过当时框架已经被别人搭建好,只等我去添砖加瓦,并没有从头开始对此框架进行着手搭建.从今天起,一边查资料,我一边分享下从基础开始学习SSM框架的历程,网上很多视频教程都是收费的,我就忍心割肉看一下,然后为大家总结下,想学的朋友可以和我一起讨论。可以这么说,学会了此框架,50%的小公司WEB项目都可以去接了......

  首先我们先来解释一下SSM的含义,然后今天着重介绍下MyBatis的环境搭建,实现单表的增删改查动作.

  Spring: 

  Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

  SpringMVC:

  Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

  MyBatis:

  MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

  好了,解释完基本概念后,肯定似懂非懂,没关系,概念嘛,看一看了解就可以了.下面我们开始Mybatis的环境搭建.

  1)Eclipse创建一个Java project:

  

  2) 百度搜索关键字“MyBatis”,进入官网,下载最新版本的mabatis和mysql的jar包,并导入eclipse。本尊用的是这两个jar包:

  3)编辑Mybatis配置文件,在src目录下创建一个名为mybatis-cfg.xml的配置文件,内容如下(可从Mybatis官网上直接复制粘贴):

  

  具体标签我就不解释了,我们只需要注意几个重要的:

  <properties>:resource为参数配置文件的名字;

  <environment>:id即为数据库的名字;

  <mappers>:为后面定义的接口文件,后面再作解释;

  4) 配置数据库配置文件jdbc.properties

  

  5)或许我们可以把SQl语句直接写进xml配置文件,那样也能得到结果,但不是最好的,这里我跳过了前面几个步骤,直接用最为符合Java编程习惯的接口映射注解的方法:

  5.1)数据库我已经创建好了表(users)和字段,并添加了内容:

  

  5.2) 添加bean来作为数据库数据传递的对象:

  

  

  5.3)创建接口来实现增删改查方法:

  

  

  5.4):创建SqlProvider来作为编写SQL语句的场所,注意方法名要对应上!

  

  

  5.5):好了,写了那么多的配置和输出文件,那么最后一步就是编写驱动MyBatisUtils来让Mybatis访问数据库(官网也可以查到):

  

  

  注意:resource即为配置文件的名字,.build的第二个参数为数据库名字。

  6)大功告成,我们可以编写一个Junit Test来测试下我们的Mybatis好不好用:

  

  

  首先取到session并建立连接,然后将我们的接口UserMapper注入到session中,最后调用接口里面的方法来实现增删改查,当然,SQl语句我们都已经提前写好了并放在SqlProvider里了,运行一下结果:

[User [id=1, userName=eric, userPwd=111], User [id=2, userName=tony, userPwd=222], User [id=4, userName=Jeff, userPwd=12345], User [id=6, userName=Tom, userPwd=12345], User [id=8, userName=cat, userPwd=888]]

 

  输出了正确的结果。好了,这样Mybatis就算配置成功了。实现了单表的增删改查,接下来我们还会逐渐增加深度,从表结构以及多对映射的角度来更深入探讨Mybatis! 

 

 

 

 

 

 

  

 

  

 

 

 

 

 

 

 

 

 

  

 

转载于:https://www.cnblogs.com/eric-wang/p/7605474.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/467589.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

argv python 提示输入_Python解释器

一、Python解释器我们编写的Python代码都要放在Python解释器上运行&#xff0c;解释器是代码与计算机硬件之间的软件逻辑层。当我们在操作系统上安装好Python之后&#xff0c;它就包含了保证Python运行的最小化组件&#xff1a;解释器 和 标准库。根据选用的Python版本的不同&a…

高阶篇:8.1)开模前评审及提交资料;

本章目的&#xff1a;明确开模前需要提交的资料&#xff0c;确保开模一次性成功。 在现有机械行业制作技术的大环境下&#xff0c;除却必要的机加工零件之外&#xff0c;大部分的零件量产都需要开模制作。如塑胶、钣金、压铸、粉末冶金、锻造等。 但是模具是很贵的&#xff08;…

Android系统充电系统介绍-预防手机充电爆炸

1、锂电池介绍锂离子电池由日本索尼公司于1990年最先开发成功。它是把锂离子嵌入碳&#xff08;石油焦炭和石墨&#xff09;中形成负极&#xff08;传统锂电池用锂或锂合金作负极&#xff09;。正极材料常用LixCoO2 ,也用 LixNiO2 &#xff0c;和LixMnO4 &#xff0c;电解液用L…

c 结构体中的变长数组

在Linux系统里&#xff0c;/usr/include/linux/if_pppox.h里面有这样一个结构&#xff1a; struct pppoe_tag { __u16 tag_type; __u16 tag_len; char tag_data[0]; } __attribute ((packed)); 最后一个成员为可变长的数组&#xff0c;对于TLV&#xff08;Type-Length-Value&am…

Linux物理内存初始化

背景Read the fucking source code! --By 鲁迅A picture is worth a thousand words. --By 高尔基说明&#xff1a;Kernel版本&#xff1a;4.14ARM64处理器&#xff0c;Contex-A53&#xff0c;双核使用工具&#xff1a;Source Insight 3.5&#xff0c; Visio1. 介绍让我们思考…

mysql中%3c%3e和=_Grafana+Prometheus 监控 MySQL

架构图环境IP环境需装软件192.168.0.237mysql-5.7.20node_exporter-0.15.2.linux-amd64.tar.gzmysqld_exporter-0.10.0.linux-amd64.tar.gz192.168.0.248grafanaprometheusprometheus-2.1.0.linux-amd64.tar.gznode_exporter-0.15.2.linux-amd64.tar.gzgrafana-4.6.3.linux-x64…

Linux CentOS7.0 (01)在Vmvare Workstation上 安装配置

一、新建虚拟机 1、创建新的虚拟机 -》 默认典型 -》选择安装介质 2、指定虚拟机名称、安装目录、磁盘容量大小 点击 “完成”&#xff0c;创建虚拟机&#xff01; 随后虚拟机将自动启动安装过程。 二、安装linux 1、选择 English、English&#xff08;United States&#xff0…

i=1,为什么 (++i)+(++i)=6?

源码#include "stdio.h"int main(void) {int i 1;printf("%d\n",(i) (i));return 0; }执行weiqifabsp-ubuntu1804:~/c/undif$ gcc g.c && ./a.out 6 weiqifabsp-ubuntu1804:~/c/undif$为什么出现这个鬼现象&#xff1f;原因很简单&#xff0c;C语…

celery mysql 异步_celery配合rabbitmq任务队列实现任务的异步调度执行[celery redis]

前言&#xff1a;51cto的文章已经不再补充更新了&#xff0c;另外celery rabbitmq详细的使用方法请到这里浏览.http://xiaorui.cc/2014/11/16/celery-rabbitmq%E5%AE%9E%E7%8E%B0%E4%BB%BB%E5%8A%A1%E9%98%9F%E5%88%97%E7%9A%84%E5%BC%82%E6%AD%A5%E6%89%A7%E8%A1%8C/为啥要用c…

Android-HIDL实例解析

HIDL 简介“HAL interface definition language or HIDL (pronounced “hide-l”) is an interface description language (IDL) to specify the interface between a HAL and its users. It allows specifying types and method calls, collected into interfaces and package…

phpstudy mysql创建表_MySQL_Mysql入门基础 数据库创建篇,1.创建数据表---基础(高手跳 - phpStudy...

Mysql入门基础 数据库创建篇1.创建数据表---基础(高手跳过)正统方法&#xff1a;create [TEMPORARY] table 表名 [if not exists](创建的列项定义)[表的选项][分区的选项];#正统的创建方式&#xff0c;具体的参数&#xff0c;请参考mysql手册&#xff0c;在这里不做详细的解释&…

区域赛第33天

1、最近感觉自己的时间可以利用好的&#xff0c;但是就是自己的学习效率比较低&#xff0c;主要问题就是一旦放松下来就会放松很长的时间&#xff0c;所以说浪费了很多的时间。。。 2、现在最重要的就是从心底相信自己真的能拿金牌&#xff0c;所以就是现在主要的任务就是恢复信…

用bat-抓取android日志

echo off cls set filename%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2% set postfixdebug.log set debugfilename%filename%-%postfix% adb shell logcat -G 4M adb shell logcat > %debugfilename%pause

mysql报错error2002_mysql中异常错误ERROR:2002的解决方法分享

最近在启动mysql的时候发现mysql报错了&#xff0c;错误代码是2002&#xff0c;通过查找相关的资料发现是var/lib/mysql 的访问权限问题&#xff0c;所以这篇文章主要介绍了mysql中异常错误ERROR&#xff1a;2002的解决方法&#xff0c;需要的朋友可以参考借鉴&#xff0c;下面…

子矩阵(NOIP2014 普及组第四题)

描述 给出如下定义&#xff1a; 子矩阵&#xff1a;从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵&#xff08;保持行与 列的相对顺序&#xff09;被称为原矩阵的一个子矩阵。 例如&#xff0c;下面左图中选取第 2、4 行和第 2、4、5 列交叉位置的元素得到一个 2*3 …

linux spinlock/rwlock/seqlock原理剖析(基于ARM64)

背景Kernel版本&#xff1a;4.14ARM64处理器&#xff0c;Contex-A53&#xff0c;双核使用工具&#xff1a;Source Insight 3.5&#xff0c; Visio1. 概述吹起并发机制研究的进攻号角了&#xff01;作为第一篇文章&#xff0c;应该提纲挈领的介绍下并发。什么是并发&#xff0c;…

isfull mysql_MySQL数据库之MySQL 出现 The table is full 的解决方法

本文主要向大家介绍了MySQL数据库之MySQL 出现 The table is full 的解决方法 &#xff0c;通过具体的内容向大家展现&#xff0c;希望对大家学习MySQL数据库有所帮助。当我们要写入新数据而发生“The table is full”告警错误时&#xff0c;先不要着急&#xff0c;按照下面的思…

RabbitMQ 资料整理

前言&#xff1a; 官方教程&#xff1a;    https://www.rabbitmq.com/getstarted.html 应用场景&#xff08;之马云赚钱&#xff09;&#xff1a;    http://blog.csdn.net/whoamiyang/article/details/54954780    http://www.cnblogs.com/saltlight-wangchao/p/…

爸爸都老了

今天是父亲节&#xff0c;早上韦泽楠去上绘画课&#xff0c;我睡了个回笼觉&#xff0c;一觉睡到了十一点。起来的时候老婆买了新鲜的荔枝和龙眼&#xff0c;当然我没有马上吃&#xff0c;我不是一个随便的男人&#xff0c;我刷了牙&#xff0c;洗了脸&#xff0c;再回到客厅慢…

java输出日志_java代码中如何正确使用loggger日志输出

java代码中如何正确使用loggger日志输出发布时间&#xff1a;2019-06-28作者&#xff1a;spider阅读(2980)当你遇到问题的时候&#xff0c;只能通过debug功能来确定问题&#xff0c;你应该考虑打日志&#xff0c;良好的系统&#xff0c;是可以通过日志进行问题定为的。使用slf4…