什么是 MyBatis?
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
Getting started
要使用 MyBatis, 只需将 mybatis-x.x.x.jar 文件置于 classpath 中即可。 如果使用 Maven 来构建项目,则需将下面的 dependency 代码置于 pom.xml 文件中:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.0</version>
</dependency>
由于要我操作的是mysql数据库,所以再引入mysql驱动包
mysql mysql-connector-java 8.0.15 首先工程目录结构如下: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190723132346611.png)1.创建一张测试表:t_user
2.然后根据表字段,写出实体类
//orm映射:要求实体类属性和数据库表字段要一一对应
public class User {
private String userId;
private String userName;
private int age;
private String phone;
private String address;
//Getters和Setters方法省略
@Override
public String toString() {
return "{userId=" + userId + ", userName=" + userName + ", age=" + age + ", phone=" + phone + ", address="
+ address + "}";
}
}
3.写一个测试接口
public interface UserMapper {
List<User> selectAll();
}
4.编写sql映射文件:UserMapper.xml
<?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">
<!-- namespace:接口全类名 -->
<mapper namespace="com.bdqn.zmj.api.UserMapper">
<!-- 实体类属性名和数据库字段名不一致的字段需要自己定义映射关系 -->
<resultMap type="user" id="userMap">
<id property="userId" column="uid"/>
<result property="userName" column="uname"/>
</resultMap>
<select id="selectAll" resultMap="userMap">
select * from t_user
</select>
</mapper>
5.核心配置文件:mybatis.config.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="db.properties"></properties>
<!-- 别名配置 -->
<typeAliases>
<package name="com.bdqn.zmj.entity"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/bdqn/zmj/mapper/UserMapper.xml" />
</mappers>
</configuration>
6.测试
public class Test {
public static void main(String[] args) {
try {
String resource = "mybatis-config.xml";
InputStream is = Resources.getResourceAsStream(resource);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
//获取sqlsession
SqlSession session = factory.openSession();
UserMapper mapper = session.getMapper(UserMapper.class);
List<User> list = mapper.selectAll();
for (User user : list) {
System.out.println(user);
}
session.close();//关闭sqlsession
} catch (IOException e) {
e.printStackTrace();
}
}
}
将数据库查询到的所有数据打印如下: