mybatis基本知识学习
1,参考文献:http://www.cnblogs.com/selene/p/4604605.html
MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架
MyBatis可以使用简单的xml或是注解用于配置和原始映射,将接口和java的POJO映射成数据库的记录。
MyBatis对jdbc操作数据库过程进行了封装,使得开发者只需要关注sql本身,不必要花费精力处理如注册驱动,创建connection,创建statement,手动设置参数,结果集检索等jdbc繁杂的过程。
使用mybatis的时候,可以直接使用一个接口的bean。
原因是:
http://blog.csdn.net/mingtian625/article/details/47684271
A.mybatis注解方式通过没有实现类的dao接口进行数据库操作的原理,一句话概括,就是jdk proxy,就是jdk代理
B.spring+mybatis注解方式,也是没有实现类的,但是spring会默认返回MapperFactoryBean对象作为实现类的替换,但是这个只是被spring使用的,mybatis本身还是通过jdk代理来运行的。
mybatis功能架构分为三层:
API接口层:接口层接收到调用请求,就会调用数据处理层来完成具体的数据处理
数据处理层:负责具体sql查找,sql解析,sql执行和执行结果映射处理等。主要目的是根据调用的请求来完成一次数据库操作。
基础支撑层:负责最基础的功能支撑,包括连接管理,事物管理,配置加载和缓存处理,抽取出公共东西作为基础的组件。
2,使用:SqlSessionFactoryBuilder:
每个mybatis的应用程序入口是SqlSessionFactoryBuilder. ----- 》创建SqlSessionFactory(通用做法是创建一个全局的对象即可。)
3,建立工程:
A,spring-pool-mybatis.xml:存放数据库连接池。
B,spring-mybatis:存放mybatis数据库配置。
C,applicationContext.xml:入口文件,引入数据库连接池,mybatis配置文件。
D,StudentInfoDao:一个接口。使用注释:@Repository。即可使用接口bean。
E,StudentInfoDto:实体对象。
F,studentInfoImpl.xml:映射文件。
4,#{}跟${}的区别:
#{}表示占位符,${}表示字符串拼接。
3.其他基础概念:
四大对象:executor,statementHandler,parameterHandler,resultHandler。
Executor:SimpleExecutor(普通的执行器);ReuseExecutor(执行器会重用预处理语句);BatchExecutor(批量执行器)
分页:https://www.cnblogs.com/kangoroo/p/7998433.html
4.应用:
简单搭建: