认识Mybatis,使用Mybatis创建入门案例,分析入门案例,分别使用xml配置和注解的方式来实现。

1、什么是Mybatis?
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)
2、Mybatis入门案例-查询所有
2.1 项目导报
2.1.1、所需jar包

2.1.2、Maven构建mybatis
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId> <artifactId>Mybatil_day1</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.12</version> </dependency>
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> </dependency> </dependencies> </project>
|
使用mybatis实际使用mybatis和jdbc驱动包就可以,加入日志包是为了让我们在控制台查看打印的一些SQL语句和相关信息。
2.1.3、添加log4j.xml文件
然而这个日志包要想运行就必须在项目目录下添加一个log4j.xml文件(文件名必须为:logj)
2.2、项目构建
2.2.1、创建一个实体类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| package Model;
public class Student { private Integer id; private String name; private String Sex; private String Sclass; private String School;
public Integer getId() { return id; }
public void setId(Integer id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public String getSex() { return Sex; }
public void setSex(String sex) { Sex = sex; }
public String getSclass() { return Sclass; }
public void setSclass(String sclass) { Sclass = sclass; }
public String getSchool() { return School; }
public void setSchool(String school) { School = school; }
@Override public String toString() { return "Student{" + "id=" + id + ", name='" + name + '\'' + ", Sex='" + Sex + '\'' + ", Sclass='" + Sclass + '\'' + ", School='" + School + '\'' + '}'; } }
|
2.2.2、创建一个dao层接口
1 2 3 4 5
| public interface InStudentDao { public List<Student> findAll();
}
|
不需要创建该接口的实现类,因为我们mybatis会帮我们创建该接口的代理对象,我们用代理对象去调用findAll()执行就OK。
2.2.2、创建全局配置文件
全局配置文件主要帮我们配置连接数据库的连接条件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <?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> <environments default="mysql"> <environment id="mysql"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost3306/test"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> </configuration>
|
2.2.3、创建Sql映射配置文件
1 2 3 4 5 6 7 8 9 10
| <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="dao.StudentDao"> <select id="findAll" resultType="Model.Student"> select count(*) from Student </select> </mapper>
|
2.2.4、使用Mybatis查询所有Student表数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| package com.mybatis; public class Test { public static void main(String[] args) throws Exception{ InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml"); SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); SqlSessionFactory factory = builder.build(inputStream); SqlSession session = factory.openSession(); InStudentDao studentDao = session.getMapper(InStudentDao.class); List<Student> list = studentDao.findAll(); session.close(); inputStream.close();
} }
|
2.2.4、案例所使用的设计模式

3、Mybatis注解开发
相关博文