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)。
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC
代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的
POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。
看完上面的介绍那我们使用java的编程方式来看一下Mybatis的基本开发吧
Mybatis的特点
Mybatis是一个ORM类型框架,解决的数据库访问和操作的问题,对现有JDBC技术的封装。
简单 : mybatis框架不依赖于任何第三方的功能jar, 只需要一个核心的功能jar就能使用mybatis开发。
灵活 : mybatis操作数据库的sql语句是书写在xml配置文件中, 非常利于sql语句的调优和维护修改。
工具的版本
- JDK8
- IDEA2023.1
- Maven3.6.3
- Mysql-jar5.1.48 版本-5.7
- Mybatis3.4.6
搭建开发环境(Spring整合)
- 准备jar
<dependencies>
<!--mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.48</version>
</dependency>
<!--junit-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
2.准备配置文件
2.1基本配置文件mybatis-config.xml
- 数据源设置
- 类别别名
- Mapper文件注册
<?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>
<typeAliases>
<typeAlias type="com.bugz.entity.User" alias="User"/>
</typeAliases>
<environments default="default">
<environment id="default">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/bugz?useSSL=false"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</dataSource>
</environment>
</environments>
<mappers>
<!--<package name=""-->
<mapper resource="UserDAOMapper.xml"/>
</mappers>
</configuration>
2.2Mapper文件
- DAO规定方法的实现—>SQL语句
<?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="com.bugz.dao.UserDAO">
<select id="queryAllUser" resultType="User">
select id,name from user;
</select>
</mapper>
3.初始化配置
完成上述的配置
开发步骤(7步)
- entity
public class User implements Serializable {
private Integer id;
private String name;
private Integer version;
}
- 类型别名
- table
- DAO接口
public interface UserDAO {
List<User> queryAllUser();
}
- Mapper文件
<mapper namespace="com.bugz.dao.UserDAO">
<select id="queryAllUser" resultType="User">
select id,name from user;
</select>
</mapper>
- Mapper文件的注册
<mappers>
<!--<package name=""-->
<mapper resource="UserDAOMapper.xml"/>
</mappers>
- API编程
@Test
public void Test01() throws IOException {
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
UserDAO userDAO = sqlSession.getMapper(UserDAO.class);
List<User> list = userDAO.queryAllUser();
for (User u : list) {
System.out.println("u = " + u);
}
}
搭建开发环境(SpringBoot整合)
工具的版本
- JDK8
- IDEA2023.1
- Maven3.6.3
- Mysql-jar5.1.48 版本-5.7
- mybatis-spring-boot-starter 2.3.1
- SpringBoot2.7.1
准备jar包
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.1</version>
</parent>
<dependencies>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.48</version>
</dependency>
<!--junit-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
在application.yml文件中编写配置
#数据源
spring:
datasource:
url: jdbc:mysql://localhost:3306/bugz?useSSL=false
driver-class-name: com.mysql.jdbc.Driver
username: root
password: 123456
#类型别名&mapper文件
mybatis:
type-aliases-package: com.bugz.entity
mapper-locations: classpath:mappers/*.xml
编写SpringBoot启动类&添加相关注解
一定要加上@MapperScan注解,是用来扫描Dao接口的注解,还要在每一个dao接口上加上@Repository这个注解
@SpringBootApplication
@MapperScan(value = "com.bugz.dao")
public class SpringMabatisApplication {
public static void main(String[] args) {
SpringApplication.run(SpringMabatisApplication.class,args);
}
}
@Repository
public interface UserDAO {
List<User> queryAllUser();
}
注入测试
@SpringBootTest(classes = SpringMabatisApplication.class)
@RunWith(SpringRunner.class)
public class TestMybatis {
@Autowired
private UserDAO userDAO;
@Test
public void Test01(){
List<User> users = userDAO.queryAllUser();
for (User user : users) {
System.out.println("user = " + user);
}
}
}
接下来小编会学习整理Mybatis的源码,如果感兴趣的话关注一下小编吧!!!