MyBatis quickstart

创建数据库和表用于测试:

create database student;
use student;
CREATE TABLE `student` (
  `id` int(11) NOT NULL auto_increment,
  `studentname` varchar(32) NOT NULL COMMENT '学生名称',
  `birthday` datetime default NULL COMMENT '生日',
  `sex` char(1) default NULL COMMENT '性别',
  `address` varchar(256) default NULL COMMENT '地址',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

insert  into `student`(`id`,`studentname`,`birthday`,`sex`,`address`) values 
(15,'Mybatis','2018-02-27 17:47:08','男','北京'),
(17,'小王','2018-03-02 15:09:37','男','广州');

创建Maven空项目:

CreateMavenEmptyProject

next

Enable-Import

选择Enable Auto-Import


导入Mybatis依赖坐标

到maven的中央仓库(https://mvnrepository.com/)搜索Mybatis,即可找到依赖坐标

Mybatis_dependency

点击第一个Mybatis,可以看到有很多的版本,这里我就选择3.4.5

Version4Mybatis

页面下方的代码就是Mybatis的Maven依赖坐标,先复制好

Maven

先在项目的pom文件中写好dependencies标签,再把坐标粘贴到dependencies标签内

导入成功:

有了Mybatis是不够的,还需要添加Mysqlconnector,坐标的获得方法和以上获取Mybatis的一样,如下:

<!--依赖坐标-->
<dependencies>
    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    <!--Mybatis坐标-->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.4.5</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <!--MysqlConnector坐标-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.15</version>
    </dependency>
</dependencies>

在java文件夹下创建包(com.mb.bean),然后创建Bean:

Bean

Getter和Setter方法、toString方法可以通过Alt+Ins快捷键快速创建

然后创建com.mb.dao的包,在里面创建dao接口:

daoInterface

在resources文件夹中创建Mybatis的XML配置文件:
mybatisConfig
该配置文件的内容可以在Mybatis的官方文档上复制(https://mybatis.org/mybatis-3/zh/getting-started.html)

关于XML配置文件的标签的解释在官方文档上已有了,简单的整理:

  • 默认使用的环境 ID(比如:default="development")。
  • 每个 environment 元素定义的环境 ID(比如:id="development")。
  • 事务管理器的配置(比如:type="JDBC")。
  • 数据源的配置(比如:type="POOLED")。

默认的环境和环境 ID 是自解释的,因此一目了然。 你可以对环境随意命名,但一定要保证默认的环境 ID 要匹配其中一个环境 ID。

事务管理器(transactionManager)

在 MyBatis 中有两种类型的事务管理器(也就是 type=”[JDBC|MANAGED]”):

  • JDBC – 这个配置就是直接使用了 JDBC 的提交和回滚设置,它依赖于从数据源得到的连接来管理事务作用域。
  • MANAGED – 这个配置几乎没做什么。它从来不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如 JEE 应用服务器的上下文)。 默认情况下它会关闭连接,然而一些容器并不希望这样,因此需要将 closeConnection 属性设置为 false 来阻止它默认的关闭行为。

接下来在XML配置文件中添加代码用于指定映射(mappers)配置文件的位置,映射配置玩家指的是每个dao独立的配置文件,我们需要告诉 MyBatis 到哪里去找到这些Sql语句

首先在resources文件加内创建文件夹com/mb/dao

在dao文件夹内创建映射配置文件,文件名称为:StudentDaoInterface.xml
Mappers
同理,该文件的内容可以在官方文档中的"入门"章节内复制

接下来要对mappers文件和XML配置文件稍做修改,因为我们刚刚复制的是官方文档的内容。

Mappers:

  • namespace里面应该指定Dao接口的全限定类名
  • id里面应该指定Dao接口中的查询方法名称
  • resultType指的是从这条语句中返回的期望类型的类的完全限定名或别名。
  • select标签里面的Sql语句需要修改自己需要的

XML配置文件:
XML_config
修改的地方比较简单,主要是property标签和mapper标签

以上,Mybatis的环境搭建已经完成
****
注意的地方:

  • mybatis的映射配置文件位置必须和dao接口的包结构相同
  • 映射配置文件的namespace属性的取值必须是dao接口的全限定类名
  • 映射配置文件的操作配置(比如select标签),id属性的值必须是dao接口的方法名称
    ****
    开始测试

在test/java文件夹内创建测试类:

import com.mb.bean.Student;
import com.mb.dao.StudentDaoInterface;
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 java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class Test01 {
    public static void main(String[] args) throws IOException {
        /*读取配置文件*/
        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
        /*创建Sql会话工厂*/
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        SqlSessionFactory factory = builder.build(in);
        /*使用工厂生产Sql会话对象*/
        SqlSession session = factory.openSession();
        /*使用Sql会话创建Dao接口的代理对象*/
        StudentDaoInterface mapper = session.getMapper(StudentDaoInterface.class);
        /*使用代理对象执行方法*/
        List<Student> Students = mapper.findAllStudent();
        for (Student student:Students){
            System.out.println(student);
        }
        /*释放资源*/
        session.close();
        in.close();
    }
}

可以看到输出结果和我们数据库的内容是一样的:

OutPut

猜你喜欢

转载自www.cnblogs.com/AACFHFZFZE/p/12298032.html
今日推荐