# mybatiesTest
**Repository Path**: three_fu/mybatiesTest
## Basic Information
- **Project Name**: mybatiesTest
- **Description**: No description available
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-05-15
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# mybatiesTest
## Demo01
- 根据id查询
```text
//创建会话工厂,引入Config文件
SqlSessionFactory sqlSessionFactory =new SqlSessionFactoryBuilder().
build(Resources.getResourceAsStream("Config/sqlMapperConfig.xml"));
//通过工厂得到SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
//通过SqlSession操纵数据库
User user = sqlSession.selectOne("test.findUserById",1);
#{}: 相当于占位符
${}: 字符串拼接
selectOne(): 查询一条记录
selectList(): 查询多条记录
SqlSession: 是线程不安全的,建议在方法体内执行
```
## Demo02
```text
传统dao方法开发
```
## Demo03
```text
mapper代理开发,namespace要求与接口文件的地址一样
接口中的方法名和xml文件中的statement的id一样,输入参数类型也要一致,返回值类型也要一致
mapper接受的参数只有一个,但可以通过多种POJO包装类型,来实现多类型
```
## sqlMapConfig属性
```text
properties: 引入外部配置文件,通常不在其内部配置属性,而通过外部properties文件配置属性
setting: 全局属性配置,可查api
typeAliases: 定义类型别名,针对parameterType和resultType
typeHandlers: 类型处理器,完成JDBC类型到java类型的转换
objectFactory: 对象工厂
plugins: 插件
```
- mapper配置
```html
and password like '%${userCustomer.password}%'
and name like '%${userCustomer.name}%'
```
## Demo05
```text
一对一:
resultType: 不可实现延迟加载
resultMap: 可实现延迟加载
一对一映射使用association,存储到POJO中
一对多或多对多使用collocation,可嵌套使用: 存储到list中
只需要一条集合记录可使用resultType
多条记录展示可使用resultMap
```