mspaint画图
MyBatis:搭建项目开发环境
1.导入开发所需的jar包
2.导入开发所需的配置文件
3.划分包结构,创建相关的类和接口
获取sqlSession对象
1.创建构造器
InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
SqlSessionFactoryBuilder factoryBuilder = new SqlSessionFactoryBuilder();
2.通过构造器对象加载配置文件得到工厂
SqlSessionFactory factory = factoryBuilder.build(is);
3.通过工厂得到sqlSession
SqlSession sqlSession = factory.openSession();手动提交
SqlSession sqlSession = factory.openSession(true);自动提交
4.通过sqlSession得到代理对象
sqlSession.getMapper(WordMapper.class)
sqlMapConfig.xml核心配置文件的标签
1.<mappers>:引入映射文件
子标签:
<mapper>配置一个映射文件
resource属性:映射文件路径com/itheima/dao/UserMapper.xml
或者class属性:映射接口全限定包名com.itheima.dao.UserMapper
<package>加载包下所有映射文件
name属性:com.itheima.dao
UserMapper.xml映射配置文件的标签
<mapper>:
namespace属性:命名空间,映射接口全限定包名com.itheima.dao.UserMapper
2.加载外部属性文件
<properties resource="db.properties"></properties>
3.给整个包下和子包下实体类定义别名,别名就是类名
<typeAliases>
<package name="com.itheima.entity"/>
</typeAliases>
4.在控制台显示SQL语句
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
标签多表查询
<resultMap>:配置字段和对象属性的映射关系
id 属性:标识,便于后面resultMap调用
type属性:实体对象类型
子标签:
<id>:配置主键映射关系
<result>:配置非主键映射关系
column :表中字段名称
property 属性:实体对象变量名称
<association>:配置被包含对象的映射关系
property 属性:被包含对象的变量名
javaType 属性:被包含对象的数据类型user*****
column 属性 :配置的外键字段*****
<collection>:配置被包含集合对象的映射关系标签。
property 属性:被包含集合对象的变量名
ofType 属性:集合中保存的对象数据类型
column 属性 :配置的外键字段*****
****主表user从表order,外键user_id在从表中,对应主表的主键id
1. association
- 配置一对一关联映射
比如: 查询一个card身份证信息需要关联一个user信息。
用户表和身份证表(在其中一方的JavaBean中定义另一方属性)
- 配置多对一关联映射(其实就是一对一)
比如:查询订单信息,需要关联一个用户信息。
在订单javaBean中添加user属性
2.collection
- 配置一对多时
比如: 查询一个用户信息需要关联该用户的所有订单信息
在用户表中,添加List<Order> orders
- 配置多对多时
比如: 查询一个订单信息需要关联该订单的所有商品信息
比如:查询一个商品信息需要关联查询该商品在那些订单中出现
@results里面是@Result数组
@Result(主键+非主键)
column属性:表中字段名称
property属性:实体对象变量名称
@Result(配置被包含对象的映射关系)
property属性:被包含对象的变量名
javaType 属性:被包含对象的数据类型User.class,List.class*****
column属性:根据card表中的user_id字段来查询User表(另一个接口根据uid查询)*****
查询从表数据,以及把从表对应的主表数据查询出来,一对一,column="外键字段名称"
查询主表数据,把它对应的从表数据查询出来,多对多,column="主键字段"
one=@One属性:一对一固定写法(也是注解)
select属性:指定调用哪个接口的哪个方法com.itheima.dao.UserMapper.selectById
many=@many属性:多对多固定写法(也是注解)
select属性:指定调用哪个接口的哪个方法
构建SQL对象
@SelectProvider:生成查询用的SQL语句注解
type属性:生成语句的功能类对象
method属性:指定调用方法
@InsertProvider:生成新增用的SQL语句注解
@UpdateProvider:修改
@DeleteProvider:删除