一、简介:什么是MyBatis

  1.MyBatis是一款优秀的持久层框架,支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或者注解来配置和映射原生信息,将接口和Java的POJOs映射成数据库中的记录

二、入门

  1.安装mybatis-x.x.x.jar将文件置于classpath即可,使用maven来构造项目,则需要将下面的dependency代码放在pom.xml文件中:

  1. <dependency>
  2. <groupId>org.mybatis</groupId>
  3. <artifactId>mybatis</artifactId>
  4. <version>x.x.x</version>
  5. </dependency>
  1. <dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.2.1</version>
    </dependency>
    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.17</version>
    </dependency>
    <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.11</version>
    </dependency>

  2.创建数据库

  create database mybatis;

  3.创建users表

  create table users(id int primary key auto_increment,name varchar(20),age int)

  4.创建必要的包

  com.jd.ssm.dao.impl

  com.jd.ssm.service.impl

  com.jd.ssm.dao.domain

  com.jd.ssm.util

  com.jd.ssm.ssm.web.controller

  5.测试连接

  1. package com.jd.ssm.mybatisdao;
  2.  
  3. import org.apache.ibatis.io.Resources;
  4. import org.apache.ibatis.session.SqlSession;
  5. import org.apache.ibatis.session.SqlSessionFactory;
  6. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  7.  
  8. import java.io.InputStream;
  9.  
  10. public class APP {
  11. public static void main(String[] args){
  12. try{
  13. //指定配置文件的类路径
  14. String resource ="mybatis-config.xml";
  15. //加载文件,形成输入流
  16. InputStream inputStream = Resources.getResourceAsStream(resource);
  17. //创建会话工厂,相当于连接池
  18. SqlSessionFactory sf=new SqlSessionFactoryBuilder().build(inputStream);
  19. //通过sf开启会话,相当于打开连接了
  20. SqlSession s= sf.openSession();
  21. System.out.println(s);
  22. } catch ( Exception e) {
  23. e.printStackTrace();
  24. }
  25. }
  26. }

  6.编写mapper文件

    a)创建User类,和users对应

  1. package com.jd.ssm.domain;
  2.  
  3. public class User {
  4. private Integer id;
  5. private String name;
  6. private int age;
  7.  
  8. public Integer getId() {
  9. return id;
  10. }
  11.  
  12. public void setId(Integer id) {
  13. this.id = id;
  14. }
  15.  
  16. public String getName() {
  17. return name;
  18. }
  19.  
  20. public void setName(String name) {
  21. this.name = name;
  22. }
  23.  
  24. public int getAge() {
  25. return age;
  26. }
  27.  
  28. public void setAge(int age) {
  29. this.age = age;
  30. }
  31. }

  b).创建UserMapper.xml映射文件

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="users">
  6. <insert id="insert">
  7. insert into users(name,age) values(#{name},#{age});
  8. </insert>
  9. </mapper>

三、复杂应用

  1.准备数据

    sql.sql

    source C:\Users\shizeqi\Desktop\sql.sql

  2.创建java类

    (1)User类 

  1. package com.jd.ssm.domain;
  2.  
  3. public class User {
  4. private Integer id;
  5. private String name;
  6. private int age;
  7.  
  8. public Integer getId() {
  9. return id;
  10. }
  11.  
  12. public void setId(Integer id) {
  13. this.id = id;
  14. }
  15.  
  16. public String getName() {
  17. return name;
  18. }
  19.  
  20. public void setName(String name) {
  21. this.name = name;
  22. }
  23.  
  24. public int getAge() {
  25. return age;
  26. }
  27.  
  28. public void setAge(int age) {
  29. this.age = age;
  30. }
  31. }

    (2)Order类

  1. package com.jd.ssm.domain;
  2.  
  3. //创建订单类
  4. public class Order {
  5. private Integer id ;
  6. private String orderNo;
  7.  
  8. public Integer getId() {
  9. return id;
  10. }
  11.  
  12. public void setId(Integer id) {
  13. this.id = id;
  14. }
  15.  
  16. public String getOrderNo() {
  17. return orderNo;
  18. }
  19.  
  20. public void setOrderNo(String orderNo) {
  21. this.orderNo = orderNo;
  22. }
  23.  
  24. public User getUser() {
  25. return user;
  26. }
  27.  
  28. public void setUser(User user) {
  29. this.user = user;
  30. }
  31.  
  32. //这个地方需要用到uid,直接加上User就可以
  33. private User user;
  34.  
  35. }

    (3)Item类

  1. package com.jd.ssm.domain;
  2.  
  3. /*
  4. * 订单项
  5. * */
  6. public class Item {
  7. private Integer id;
  8. private String itemName;
  9. private Order order ;
  10.  
  11. public Integer getId() {
  12. return id;
  13. }
  14.  
  15. public void setId(Integer id) {
  16. this.id = id;
  17. }
  18.  
  19. public String getItemName() {
  20. return itemName;
  21. }
  22.  
  23. public void setItemName(String itemName) {
  24. this.itemName = itemName;
  25. }
  26.  
  27. public Order getOrder() {
  28. return order;
  29. }
  30.  
  31. public void setOrder(Order order) {
  32. this.order = order;
  33. }
  34. }

  3.创建订单Order映射文件

    [resource/OrderMapper.xml]

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="orders">
  6. <insert id="insert">
  7. insert into orders(orderno,uid) values(#{orderNo},#{user.id});
  8. </insert>
  9. </mapper>

  

    

mybatis复习笔记(1):的更多相关文章

  1. mybatis 复习笔记01

    本文内容转自传智播客笔记 1. 问题总结  1). 数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响 数据库性能. 设想:使用数据库连接池管理数据库连 ...

  2. mybatis 复习笔记03

    参考:http://www.mybatis.org/mybatis-3/zh/configuration.html 入门 1. 从 XML 中构建 SqlSessionFactory 每个基于 MyB ...

  3. mybatis 复习笔记02

    1. 一对一查询: 1). 实体类: 2). 定义resultMap <!-- 订单查询关联用户的resultMap 将整个查询的结果映射到cn.itcast.mybatis.po.Orders ...

  4. mybatis学习笔记之基础复习(3)

    mybatis学习笔记之基础复习(3) mybatis是什么? mybatis是一个持久层框架,mybatis是一个不完全的ORM框架.sql语句需要程序员自己编写, 但是mybatis也是有映射(输 ...

  5. Java基础复习笔记系列 九 网络编程

    Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...

  6. Java基础复习笔记系列 八 多线程编程

    Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...

  7. Java基础复习笔记系列 七 IO操作

    Java基础复习笔记系列之 IO操作 我们说的出入,都是站在程序的角度来说的.FileInputStream是读入数据.?????? 1.流是什么东西? 这章的理解的关键是:形象思维.一个管道插入了一 ...

  8. Java基础复习笔记系列 五 常用类

    Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String ...

  9. Java基础复习笔记系列 四 数组

    Java基础复习笔记系列之 数组 1.数组初步介绍? Java中的数组是引用类型,不可以直接分配在栈上.不同于C(在Java中,除了基础数据类型外,所有的类型都是引用类型.) Java中的数组在申明时 ...

随机推荐

  1. appium环境666

    一.安装JDK,配置JDK环境    appium下载地址: https://github.com/appium/appium-desktop/releases/ 百度搜索下载就行,这里分享一个下载链 ...

  2. Bugku 杂项 宽带信息泄露

    宽带信息泄露 flag是宽带用户名 下载文件后用RouterPassView打开,搜索username即可

  3. 贪心整理&一本通1431:钓鱼题解

    题目传送 (其实有一个更正经的题解) 看了许久,发现这题貌似就是一个动态规划啊,但毕竟是贪心题库里的题,还是想想用贪心解吧. 经过(借鉴大佬思路)十分复杂的思考后,终于理解出了这题的贪心思路.该题的难 ...

  4. Codeforces Round #587 (Div. 3) F. Wi-Fi(单调队列优化DP)

    题目:https://codeforces.com/contest/1216/problem/F 题意:一排有n个位置,我要让所有点都能联网,我有两种方式联网,第一种,我直接让当前点联网,花费为i,第 ...

  5. unity项目中使用BUGLY遇到的的几个问题

    1,第一次对外测试中,发现某些机型游戏中卡死了,但bugly上没报错.后来发现是我们的代码使用 try catch把异常捕获了但什么都没做. 2,别人家项目的bugly上报都能显示出文件和代码行,我们 ...

  6. React Native商城项目实战10 - 个人中心中间内容设置

    1.新建一个MineMiddleView.js,专门用于构建中间的内容 /** * 个人中心中间内容设置 */ import React, { Component } from 'react'; im ...

  7. rpm安装软件时提示warning: *.rpm: Header V3 RSA/SHA256 Signature, keykey ID c105b9de

    在RedHat下有时候用rpm安装软件是会出现下面则中错误 1.安装时提示:warning: *.rpm: Header V3 RSA/SHA256 Signature, keykey ID c105 ...

  8. free pascal 修改字符集,会导致 dos 不能显示 汉字。 处理方法如下

    http://www.cnblogs.com/yjken/p/3917932.html 让windows系统的DOS窗口也可以显示utf8字符集   C:\Users\Administrator> ...

  9. python3.5+django2.0快速入门(二)

    昨天写了python3.5+django2.0快速入门(一)今天将讲解配置数据库,创建模型,还有admin的后台管理. 配置数据库 我们打开mysite/mysite/settings.py这个文件. ...

  10. linux文件io与标准io

    文件IO实际是API,Linux对文件操作主要流程为:打开(open),操作(write.read.lseek),关闭(close). 1.打开文件函数open(): 涉及的头文件:  #includ ...