(整理)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;
}

原文地址:https://www.cnblogs.com/mabingxue/p/8989551.html