一、概述
Mybatis是apache的一个开源项目,前身是iBatis二、 用法
创建SqlSessionFactoryBuilder对象SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
加载sqlMapConfig.xml配置文件InputStream inputStream = Resources.getResourceAsStream("sqlMapConfig.xml");
创建SqlSessionFactory对象SqlSessionFactory factory = builder.build(inputStream);
创建session,执行session中的方法SqlSession session = factory.openSession();
三、#{}和${}
- #{}表示一个占位符号,通过#{}可以实现preparedStatement向占位符中设置值,自动进行java类型和jdbc类型转换。
- #{}可以有效防止sql注入。
- #{}可以接收简单类型值或pojo属性值。 如果parameterType传输单个简单类型值,#{}括号中可以是value或其它名称。
"${}"表示拼接sql串,通过${}可以将parameterType 传入的内容拼接在sql中且不进行jdbc类型转换, ${}可以接收简单类型值或pojo属性值,如果parameterType传输单个简单类型值,${}括号中只能是value。
四、parameterType和resultType
parameterType:指定输入参数类型,mybatis通过ognl从输入对象中获取参数值拼接在sql中。resultType:指定输出结果类型,mybatis将sql查询结果的一行记录数据映射为resultType指定类型的对象。如果有多条数据,则分别进行映射,并把对象放到容器List中
五、SqlMapConfig.xml中配置的内容和顺序如下:
properties(属性)settings(全局配置参数)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境集合属性对象)
environment(环境子属性对象)
transactionManager(事务管理)
dataSource(数据源)
mappers(映射器)