zoukankan      html  css  js  c++  java
  • (整理)MyBatis入门教程(一)

    MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。

    一、理解什么是MyBatis?

    MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。 MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索。 MyBatis 可以使用简单的XML 或注解用于配置和原始映射,将接口和 Java 的 POJO( Plain Old Java Objects,普通的Java 对象)映射成数据库中的记录.

      1)MyBATIS 目前提供了三种语言实现的版本,包括:Java、.NET以及Ruby。(我主要学习java,就讲java的使用)
      2)它提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。
      3)mybatis与hibernate的对比?

       mybatis提供一种“半自动化”的ORM实现。
       这里的“半自动化”,是相对Hibernate等提供了全面的数据库封装机制的“全自动化”ORM实现而言,“全自动”ORM实现了POJO和数据库表之间的映射,以及 SQL 的自动生成和执行。

        而mybatis的着力点,则在于POJO与SQL之间的映射关系。

    二、简单例子(快速入门)

    mysql> show databases;
    +--------------------+
    | Database |
    +--------------------+
    | information_schema |
    | autoplat |
    | ibatis |
    | mysql |
    | performance_schema |
    | sys |
    | test |
    +--------------------+
    7 rows in set (0.00 sec)

    mysql> use ibatis;
    Database changed

    mysql> create table t_user(
    -> id int(11) not null auto_increment,
    -> username varchar(20) default null,
    -> password varchar(20) default null,
    -> account double(10,2) default null,
    -> primary key(id))
    -> ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
    Query OK, 0 rows affected (0.06 sec)

    1)配置mybatis所需的jar包,pom.xml

            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.35</version>
            </dependency>

            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.2.8</version>
            </dependency>

            <!-- logback start -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.7.7</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
                <version>1.1.3</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-access</artifactId>
                <version>1.1.3</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>1.1.3</version>
            </dependency>
            <!-- logback end -->

    2)mysql驱动配置文件mysql.properties

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://127.0.0.1:3306/mybatis
    jdbc.username=root
    jdbc.password=123

    3)添加mybatis配置文件mybatis.cfg.xml

    复制代码
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
    
      <!-- 引入外部配置文件 -->
      <properties resource="mysql.properties"></properties>
      
      <!-- 为JAVA Bean起类别名 -->
       <typeAliases >
            <!-- 别名方式1,一个一个的配置 type中放置的是类的全路径,alias中放置的是类别名
            <typeAliase type="com.cy.mybatis.beans.UserBean" alias="UserBean"/> -->
            <!-- 别名方式2,自动扫描,将JAVA类的类名作为类的类别名 -->
            <package name="com.wenyin.mybatis.beans"/>
       </typeAliases>
       <!-- 配置mybatis运行环境 -->
         <environments default="cybatis">
            <environment id="cybatis">
                <!-- type="JDBC" 代表使用JDBC的提交和回滚来管理事务 -->
                <transactionManager type="JDBC" />
                
                <!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->
                <!-- POOLED 表示支持JDBC数据源连接池 -->
                <!-- UNPOOLED 表示不支持数据源连接池 -->
                <!-- JNDI 表示支持外部数据源连接池 -->
                <dataSource type="POOLED">
                    <property name="driver" value="${jdbc.driver}" />
                    <property name="url" value="${jdbc.url}" />
                    <property name="username" value="${jdbc.username}" />
                    <property name="password" value="${jdbc.password}" />
                </dataSource>
            </environment>
        </environments> 
        
         
         <mappers>
            <!-- 告知映射文件方式1,一个一个的配置
            <mapper resource="com/cy/mybatis/mapper/UserMapper.xml"/>-->
            <!-- 告知映射文件方式2,自动扫描包内的Mapper接口与配置文件 -->
            <package name="com/wenyin/mybatis/mapper"/>
        </mappers>
         
    </configuration>
    复制代码

    4)创建对应的实体对象

    package com.wenyin.mybatis.beans;

    public class UserBean {

    private int id;

    private String username;

    private String password;

    private double account;

    public int getId() {
    return id;
    }

    public void setId(int id) {
    this.id = id;
    }

    public String getUsername() {
    return username;
    }

    public void setUsername(String username) {
    this.username = username;
    }

    public String getPassword() {
    return password;
    }

    public void setPassword(String password) {
    this.password = password;
    }

    public double getAccount() {
    return account;
    }

    public void setAccount(double account) {
    this.account = account;
    }

    @Override
    public String toString() {
    return "UserBean [id=" + id + ", username=" + username + ", password=" + password + ", account=" + account
    + "]";
    }
    }

    5)创建方法接口UserMapper.java和定义操作t_user表的sql映射文件UserMapper.xml

    package com.wenyin.mybatis.mapper;

    import java.util.List;

    import com.wenyin.mybatis.beans.UserBean;

    public interface UserMapper {

    /**
    * 新增用户
    * @param user
    * @return
    * @throws Exception
    */
    public int insertUser(UserBean user) throws Exception;

    /**
    * 修改用户
    * @param user
    * @param id
    * @return
    * @throws Exception
    */
    public int updateUser(UserBean user,int id) throws Exception;

    /**
    * 删除用户
    * @param id
    * @return
    * @throws Exception
    */
    public int deleteUser(int id) throws Exception;

    /**
    * 根据id查询用户信息
    * @param id
    * @return
    * @throws Exception
    */
    public UserBean selectUserById(int id) throws Exception;
    /**
    * 查询所有的用户信息
    * @return
    * @throws Exception
    */
    public List<UserBean> selectAllUser() throws Exception;
    }

  • 相关阅读:
    重构原则
    【重构:改善既有代码的设计】读书笔记——开篇
    C#值参数和引用参数
    使用Aspose.Cells利用模板导出Excel(C#)
    在MVC中使用rdlc格式的报表
    程序员如何高效学习
    IT 圈里有哪些经常被读错的词?
    VS2017生成解决方案报错,提示对路径的访问被拒绝
    JavaScript中的数值转换
    Xadmin的配置及使用
  • 原文地址:https://www.cnblogs.com/mabingxue/p/8989551.html
Copyright © 2011-2022 走看看