- 持久层的框架
- 在maven上导入相关jar包
org.mybatis mybatis 3.5.2 mysql mysql-connector-java 5.1.47 junit junit 4.13.1 test
- 编写相关xml的核心配置文件(mybatis-config.xml)
- 编写mybatis工具类
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;
public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
try {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
//获取SqlSession连接
public static SqlSession getSession(){
return sqlSessionFactory.openSession();
}
}
- 在核心配置的mybatis-config.xml文件中注册DAO层的接口
- 编写实体类
- 编写DAO层的类的Mapper接口
public interface UserMapper {
List selectUser();
}
- 编写Mapper接口的配置文件
- 测试
public class MyTest {
@Test
public void selectUser() {
SqlSession session = MybatisUtils.getSession();
//方法一:
//List users = session.selectList("com.kuang.mapper.UserMapper.selectUser");
//方法二:
UserMapper mapper = session.getMapper(UserMapper.class);
List users = mapper.selectUser();
for (User user: users){
System.out.println(user);
}
session.close();
}
}
可能遇到的问题
- Maven的静态资源过滤导致Mapper的xml文件无法生成为target文件
解决办法 :在pom.xml文件添加以下代码
基础的CRUD操作(多练) select操作src/main/java ***.xml false src/main/resources ***.xml false
参数的传递问题 方式一:通过注解进行传递使用select标签,其中注意点就是关于参数的传递
//通过密码和名字查询用户
User selectUserByNP(@Param("username") String username,@Param("pwd") String pwd);
方式二:通过map进行参数的传递
insert ,update,delete操作
注意事项:
- 所有的增删改操作都需要提交事务!
- 在标签中最好注明参数类型和返回值类型
configuration(配置) properties(属性) settings(设置) typeAliases(类型别名) typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件) environments(环境配置) environment(环境变量) transactionManager(事务管理器) dataSource(数据源) databaseIdProvider(数据库厂商标识) mappers(映射器)
- environment元素
其中有两个重要的子节点元素
1.transactionManager(事务管理器)
2.dataSourse(数据库源)
作用:配置连接对象
- mapper元素
是什么? 就是映射器,映射接口文件
配置优化重点!!! 需要掌握四种引入方式
1.使用properties元素导入相关连接信息
2.使用别名来代替包的全路径
作用域和生命周期主要理解三个的各自存在的周期
结果集映射ResultType理解:顾名思义,就是将查询到的结果做一个新的映射,而不是使用原本的默认映射(HashMap)
目的是什么:能够解决从数据库查询到的数据列名和pojo的属性名不同的情况
分页功能 日志功能 动态SQl 缓存(了解)


