1,什么是MyBatis:
- mybatis是一款持久层框架;
-
2,java的三层架构:
表现层;
- 业务层;
-
3,框架的概念:
框架就是一个半成品软件,是一套可重用的、通用的、软件基础代码模型;
- 在框架的基础之上构建软件编写更加高效、规范、通用、可扩展;
4,Mybatis的配置使用步骤:
A,使用maven创建并配置好maven结构项目模块;(见Maven的配置);
B,在resources目录下配置MyBatis核心配置(.xml)文件:文件名为:mybatis-config.xml


其中:UserName和Password是数据库用户名和密码,
这两个是包名;
. xml文件详细代码如下:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><settings><!--在控制台显示SQL语句--><setting name="logImpl" value="STDOUT_LOGGING"/></settings><!--定义实体类别名--><typeAliases><package name="top.jztice5.pojo"/></typeAliases>//数据源为默认(defalut)<environments default="default"><!--环境变量--><environment id="default"><!--事务管理器--><transactionManager type="JDBC"/><!--数据源--><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/day17?useSSL=false&characterEncoding=utf8"/><property name="username" value="root"/><property name="password" value="root"/></dataSource></environment></environments><!--加载实体类映射文件--><mappers><package name="top.jztice5.mapper"/></mappers></configuration>
C,根据核心配置的别名路径创建mapper和pojo包:

1. 在**mapper(映射)包**中创建**映射接口** UserMapper:
public interface UserMapper {//接口中的方法:List<User> selectAll();}
2. 在**pojo包**中创建**属性(对象)类** User:
public class User {//写属性对象:如:private String name;//getter和setter方法及构造器,toString方法:略}
D,在resources目录下创建实体类映射配置文件(SQL映射文件):(创建成功后,会与映射接口产生连接,显示小鸟)
注意:路径一定要该包名路径一致;且 . 要换成 / ; 因为创建的是文件夹而不是包:
命名格式:
;
然后,在此目录下创建实体类映射配置文件:
此namespace写之前创建的映射接口路径(带包路径);
创建成功后的 .xml 文件内容:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd" ><mapper namespace="top.jztice5.mapper.UserMapper">//id = 就填上执行的映射接口中的方法; (resultType)结果集为:实体(属性)类所在的包路径;<!-- 映射的接口方法 :id后面的方法名 ;框架创建代理对象,当调用映射的接口方法后,代理对象就会找到并执行对应id的sql语句,再将结果集或需要的数据返回到实体类中--><!-- 在创建代理对象的时候就会加载映射文件 (mapper.xml)--><select id="selectAll" resultType="top.jztice5.pojo.User">//select标签就写查询的sql语句;其它操作就使用对应的标签即可;select * from user;</select></mapper>
注意!!!:在resources下的xml文件路径与dao层包路径一定要相同,否则会导致无法绑定映射对象;(报错:Invalid bound statement (not found) );
两者的路径要一致;
E,在测试类能够执行数据库操作就代表Mybaits配置成功:
1. 在main下创建自定义工具类:

2. 在Test下创建测试类:

public class MybatisTest {@Testpublic void setMbbatisTest() throws IOException {//调用工具类获取会话对象SqlSession sqlSession = MybatisUtils.getSqlSession();//创建mapper接口的代理对象,生成(子)类对象;UserMapper mapper = sqlSession.getMapper(UserMapper.class);//实现增删改查,并将结果集放到集合中List <User> users = mapper.selectAll();//关闭资源(释放资源)sqlSession.close();//输出users.forEach(System.out :: println);}}
F,工具类 中 :MybatisUtil 的详细创建代码:
public class MybatisUtils {private static SqlSessionFactory factory;static {InputStream inputStream=null;try {//获取类路径下的mybatis配置文件:inputStream = Resources.getResourceAsStream("mybatis-config.xml");//创建会话工厂建造类SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();//创建会话工厂factory = builder.build(inputStream);} catch (IOException e) {e.printStackTrace();}}//获取会话对象;public static SqlSession getSqlSession(){return factory.openSession();}}

两者的路径要一致;
