mybaits知识点(1)

来源:互联网 发布:执业医师题库软件 编辑:程序博客网 时间:2024/06/05 11:47

1、数据库连接频繁的创建和关闭,缺点浪费数据库的资源,影响操作效率

设想:使用数据库连接池


2sql语句是硬编码,如果需求变更需要修改sql,就需要修改java代码,需要重新编译,系统不易维护。

设想:将sql语句 统一配置在文件中,修改sql不需要修改java代码。


3、通过preparedStatement向占位符设置参数,存在硬编码( 参数位置,参数)问题。系统不易维护。

设想:将sql中的占位符及对应的参数类型配置在配置文件中,能够自动输入 映射。

 

4、遍历查询结果集存在硬编码(列名)。

设想:自动进行sql查询结果向java对象的映射(输出映射)。


mybaits的架构

mybatis-3.2.7.jar--核心 jar

工程文件  

sqlMapConfig.xml 公用文件 加载mybaits的运行环境(类似Hibernate的HibernateConfig.xml 在和spring整合后无用 加载 对象.xml)。

pojo类对应的xml文件(User类 对应 user.xml)。

·<mapper namespace>定义statement

·查询标签<select id(唯一标识一个statement) parametType(参数类型) resultType(返回值类型) >

· sql 语句 select * from where id=#{id} (#{}是一个占位符 mybaits自动进行java和jdbc类型的转换 在需要拼接时 可以使用¥{} 指内容会不加任何修饰的添加  在我们的sql当中)

 </mapper>

·当属性值不是普通类型时 mybatis 同时支持OGNL语言解析pojo的属性值。

JAVA文件

首先获取sessionFactory(根据配置文件创建会话工厂) 

·加载配置文件到输入流。

·创建会化工厂 sqlSessionFactoryBuilder().build(InputStream)。 

·回话工厂获取会话 SqlSession。

·通过回话操作数据库。(statement=namespace.id)。

··sqlsession.close();


对jdbc问题的解决

·解决1:sqlMapperConfig.xml中配置数据连接池,使用连接池管理数据库连接。

·解决2:sql语句在mapper.xml文件当中与java代码分离。

·解决3:自动将java对象映射至sql语句,通过statement中的parametertype定义输入参数的类型。

·解决4:自动将sql执行的结果映射至java对象 通过statement中的resultType定义输出参数的类型。


Mapper代理开发







原创粉丝点击