MyBatis学习笔记(一、简单的MyBatis-javaweb项目实例)

转载:https://www.imooc.com/article/16522#comment

 

简介

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

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

iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。

与它相类似的还有hibernate在这里我就不多说了。mybatis与hibernate的对比详见MyBatis和Hibernate相比,优势在哪里?

简单例子

1》首先我们创建一个java web项目

MyBatis学习笔记(一、简单的MyBatis-javaweb项目实例)_第1张图片
2》导入相应的jar包

MyBatis学习笔记(一、简单的MyBatis-javaweb项目实例)_第2张图片

mybatis需要jar包:mybatis-3.4.1.jar

mysql驱动jar包:mysql-connector-java-5.1.39.-bin.jar

日志记录jar包:log4j-1.2.17.jar
3》创建数据库数据
MyBatis学习笔记(一、简单的MyBatis-javaweb项目实例)_第3张图片
4》添加mybatis配置文件mybatis-config.xml



 
 
 
  
 
    
      
          
              
              
                  
                
                  
                  
              
          
      
    
    
    
    
    
 

5》实体类对象的创建

package com.songci.mybatis.model;

public class Student {

    private int id;
    private String name;
    private String address;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    @Override
    public String toString() {
        return "Student [id=" + id + ", name=" + name + ", address=" + address
                + "]";
    }

}

6》创建DAO层的接口方法

package com.songci.mybatis.dao;

import com.songci.mybatis.model.Student;

public interface StudentDao {

//保存学生信息
public   void saveStudent(Student student);
//修改学生信息
public  void updateStudent(Student student);

}

7》mapper映射文件






 

INSERT INTO `studentInfo`(`name`,`address`)values
(#{name},#{address})



update studentInfo set name=#{name} ,address=#{address} where id=#{id}


8》创建测试类

package com.songci.mybatis.test;

import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import com.songci.mybatis.dao.StudentDao;
import com.songci.mybatis.model.Student;

public class MybatisTest {

  public static void main(String[] args) throws IOException {

      /***
       * mybatis 使用注意事项
       * 1:  加载 mybatis 配置文件
       */
      String resource = "mybatis-config.xml";
      InputStream inputStream = Resources.getResourceAsStream(resource);
      SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

           /**
            *2: 从mybatis 数据连接池中获取 session连接
            *    并选择相应的接口类《mapper》 
            */
            SqlSession session = sqlSessionFactory.openSession();
            StudentDao sutdentDao =  (StudentDao) session.getMapper(StudentDao.class);
            Student student =new  Student();
            student.setName("张三");
            student.setAddress("西湖的小桥边");

            //student.setId(id);我们并没有设置id--------》useGeneratedKeys="true"和keyProperty(id)的作用

            sutdentDao.saveStudent(student);
            System.out.println(student);
            //3:提交事务 仅在【保存数据 删除数据 更新数据】
            session.commit();
           //4:关闭session连接 ---放回至mybatis维护连接池中
            session.close();

}
}

9》最终测试结果显示
MyBatis学习笔记(一、简单的MyBatis-javaweb项目实例)_第4张图片

推荐网站

  1. MyBatis官方文档
  2. MyBatis相关工具

 

你可能感兴趣的:(mybatis)