MyBatis前身世iBatis本是Apache的一个开源项目,2010年这个项目迁移到google code并改名为MyBatis.

一、高级软件介绍

1.JDK 8

2.Eclipse mars2

3.MySql

4.Navicat

二、数据库SQL命令

1.创建数据库并指定编码

Create database 数据库名 default character set utf8

2.创建表

Create table 表名(

列名 类型 约束 auto_increment comment ‘备注’,

);

三、Eclipse使用

1.创建项目

1.1选择target runtime,否则出现新建jsp报错

1.2如果忘记选择,右键项目–>build path–>configure path–>选项卡 library–>第四个add library–>server runtime

2.Eclipse默认会自己下载所需tomcat最简单结构

四、命名规范

1.项目名:没有要求,不起中文

2.包:公司域名倒写edu.swpu

3.数据访问层:dao,persist,mapper

4.实体:entity,model,bean,javabean,pojo

5.业务逻辑:service,biz

6.控制器:controller,servlet,action,web

7.过滤器:filter

8.异常:exception

9.监听器:listener

10.注释:

10.1类上和方法上使用文档注释

/** */

1

10.2 在方法里面使用

/* */ 或 //

1

11.类: 大驼峰

12.方法,属性:小驼峰

五、MVC开发模式

1.M:Model模型、实体类、业务和dao

2.V:view视图 JSP

3.C:Controller控制器,servlet

3.1作用:视图和逻辑分离

4.MVC适用场景:大型项目开发

5.图示例

5.1先设计数据库

5.2先写实体类

5.3持久层

5.4业务逻辑

5.5控制器

5.6视图

六、框架是什么?

1.框架:软件的半成品,为解决问题制定的一套约束,在提供功能基础上进行扩充

2.框架中一些不能被封装的代码(变量),需要使用框架者新建一个xml文件,在文件中添加变量内容

2.1需要建立特定位置和特定名称的配置文件

2.2需要使用xml解析技术和反射技术

3.常用概念

3.1类库:提供的类没有封装一定逻辑

举例:类库就是名言警句,写作文时引入名言警句

3.2框架:区别于类库,里面有一些约束

举例:框架是填空题

七、MyBatis简介

1.Mybatis开源免费框架,原名叫iBatis,2010在google code,2013年迁移到github

2.作用:数据访问层框架

2.1底层是对JDBC的封装

3.mybatis优点之一:

3.1使用mybatis时不需要编写实现类,只需要写需要执行的sql命令

八、环境搭建

MyBatis是一个持久层框架:提供SQL Maps和Data Access Objects(DAO)

开发步骤:

1、添加jar包(mybatis-3.2.3.jar)支持

2、核心配置文件mybatis-config.xml

3、编写持久化类和对应的映射文件

备注:其实在使用MyBatis开发的时候映射文件的配置占据了很大的部分,里面即包含了返回类型resultMap也包含了SQL语句。

备注:MyBatis提供了一个Resources类来读取配置文件,当然我们可以使用ClassLoader。

核心接口:SqlSessionFactory接口、SqlSession接口(最重要的接口)

默认情况下mybatis是不会打出sql语句以及一些日志文件的。

在src下加入log4j的配置文件,可以打印出日志信息:

首先加入log4j-1.2.17.jar,然后加入配置文件(properties或xml配置文件)

log4j.properties 或 log4j.xml(推荐使用xml配置文件,比较直观)

解决字段名与实体类属性名不相同的冲突方案?(别名或resultMap)

1.直接在mapper配置文件中写sql的时候使用别名

2.使用resultMap重新配置字段和属性的关系

mybatis-config.xml配置文件说明:

改配置文件完全可以参考官方文档给出的参考配置文件,比如可以配置javabean的别名,数据库连接基本信息等。使用typeAlias来配置javabean别名主要是为了方便而已,用不用都无所谓。

获得SqlSessionFactory方法:

String resource="mybatis-config.xml";

InputStream  inputStream=Resources.getResourceAsStream(resource);

sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);

//获得资源文件的方式有好几种,获得sqlSessionFactory方式有点类似hibernate4.0之前获得SessionFactory的方式。

插入操作可以返回插入的主键id,外汇返佣http://www.fx61.com/,但是配置是要注意:(只对数据库维护的自增id有效)

keyColumn="person_id" keyProperty="personId" useGeneratedKeys="true"

keyColum对应的是数据库中的字段,keyProperty对应的javabean的属性

userGeneratedKeys表示使用返回自增主键id.(这三个参数只有出现在insert语句才有效)

具体javabean的Mapper.xml配置文件

@1.cache – 配置给定命名空间的缓存

@2.cache-ref – 从其他命名空间引用缓存配置

@3.resultMap – 最复杂,也是最有力量的元素,用来描述如何从数据库结果集中来加 载你的对象

@4.parameterMap – 已经被废弃了!老式风格的参数映射。内联参数是首选,这个元 素可能在将来被移除。这里不会记录

@5.sql – 可以重用的 SQL 块,也可以被其他语句引用

@6.insert – 映射插入语句

@7.update – 映射更新语句

@8.delete – 映射删除语句

@9.select – 映射查询语句

参数赋值使用这种方式: = #{名称}

Mybatis的动态SQL查询

1.if语句

2.choose(when、otherwise)

3.trim(where、set)

4.foreach语句

<if test=”表达式”>

执行内容

</if>

<choose>

<when test=””>

执行内容

</when>

........

<otherwise>

如果都不满足上述条件,执行内容

</otherwise>

</choose>

多表查询的时候通常都可以创建一个vo来装封装数据。

备注:使用Mybatis的SqlSession对象进行相关操作的时候,都是要先找到MapperStatement语句对应的ID(namespace+sql语句id),所以该ID必须是唯一的。sql语句id可以相同,但是整个ID不能够完全相同。ID是一个字符串,由namespace和语句id组成。

MyBatis是如何使用的?的更多相关文章

  1. 【分享】标准springMVC+mybatis项目maven搭建最精简教程

    文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...

  2. Java MyBatis 插入数据库返回主键

    最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User ...

  3. [原创]mybatis中整合ehcache缓存框架的使用

    mybatis整合ehcache缓存框架的使用 mybaits的二级缓存是mapper范围级别,除了在SqlMapConfig.xml设置二级缓存的总开关,还要在具体的mapper.xml中开启二级缓 ...

  4. 【SSM框架】Spring + Springmvc + Mybatis 基本框架搭建集成教程

    本文将讲解SSM框架的基本搭建集成,并有一个简单demo案例 说明:1.本文暂未使用maven集成,jar包需要手动导入. 2.本文为基础教程,大神切勿见笑. 3.如果对您学习有帮助,欢迎各种转载,注 ...

  5. mybatis plugins实现项目【全局】读写分离

    在之前的文章中讲述过数据库主从同步和通过注解来为部分方法切换数据源实现读写分离 注解实现读写分离: http://www.cnblogs.com/xiaochangwei/p/4961807.html ...

  6. MyBatis基础入门--知识点总结

    对原生态jdbc程序的问题总结 下面是一个传统的jdbc连接oracle数据库的标准代码: public static void main(String[] args) throws Exceptio ...

  7. Mybatis XML配置

    Mybatis常用带有禁用缓存的XML配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ...

  8. MyBatis源码分析(一)开篇

    源码学习的好处不用多说,Mybatis源码量少.逻辑简单,将写个系列文章来学习. SqlSession Mybatis的使用入口位于org.apache.ibatis.session包中的SqlSes ...

  9. (整理)MyBatis入门教程(一)

    本文转载: http://www.cnblogs.com/hellokitty1/p/5216025.html#3591383 本人文笔不行,根据上面博客内容引导,自己整理了一些东西 首先给大家推荐几 ...

  10. MyBatis6:MyBatis集成Spring事物管理(下篇)

    前言 前一篇文章<MyBatis5:MyBatis集成Spring事物管理(上篇)>复习了MyBatis的基本使用以及使用Spring管理MyBatis的事物的做法,本文的目的是在这个的基 ...

随机推荐

  1. Java中date和calendar的用法

    获取现在系统的时间和日期看起来是一件非常神奇的事情,但是当使用date和calendar之后发现仍然非常神奇. 1.date 使用date日期之前需要导入包: import java.text.Sim ...

  2. nginx信号及平滑升级

    1.nginx信号 nginx进程处理命令: kill -signals PID PID即nginx进程ID signals的参数解释如下所示: TERM,INT快速关闭进程 QUIT优雅的关闭,如果 ...

  3. .NET WEB API 简单搭建

    首先是注释问题: 找到 跟目录下Areas/HelpPage/App_Start/HelpPageConfig.cs 加上代码就OK 了 还有在解决方案属性 点击生成  将XML文档文件勾上 API ...

  4. 【Luogu】【关卡2-13】线性数据结构(2017年10月)【还差一道题】

    任务说明:数组,链表,队列,栈,都是线性结构.巧用这些结构可以做出不少方便的事情. P1996 约瑟夫问题 n个人,排成环形,喊到m的人出列,输出出列顺序. 咳咳,这个题目不好写,尽管简单就是模拟题. ...

  5. 解决mybatisplus saveBatch 或者save 无法插入主键问题

    解决mybatisplus saveBatch 或者save 无法插入主键问题 通过跟踪源码后得出结论,由于插入的表的主键不是自增的,而是手动赋值的,所以在调用saveBatch 执行的sql语句是没 ...

  6. django 工具类配置

    好久没发新博客,凑个数... django-debug-toolbar 介绍 django-debug-toolbar 是一组可配置的面板,可显示有关当前请求/响应的各种调试信息,并在单击时显示有关面 ...

  7. 2019 wannafly winter camp day1-4代码库

    目录 day1 F div1 爬爬爬山 (最短路) B div2 吃豆豆 (dp) J div2 夺宝奇兵(暴力) J div1 夺宝奇兵 (权值线段树) C div1 拆拆拆数 E div1 流流流 ...

  8. /etc/X11/xorg.conf

    # This configuration file was broken by system-config-keyboard Section "ServerLayout" Iden ...

  9. 5. Jmeter常用快捷键

    快捷键 功能 备注 Ctrl + C 复制 可复制组件 Ctrl + V 粘贴 可粘贴组件 Ctrl + Shift + C 复制粘贴当前组件到下一行   Ctrl + R 运行测试计划   Ctrl ...

  10. 详解Telecom

    学习目标: 掌握Telecom入口和分析方法 总结和演进Telecom交互模型 掌握Listener消息回调机制 学习CallsManager 为什么选择Telecom分析? 这是由于在Android ...