1、框架的学习的方法
多动手
多思考
查看框架官方文档和源码
S2阶段项目:JDBC+servlet+MySQL+JSP
框架:Struts2 hibernate spring springmvc mybatis 会学习这5个框架。
其中:Struts2和springmvc是代替servlet的。
hibernate和mybatis是代替JDBC的,spring是一个“大管家”的角色,它可以
把其他的框架集成到一起。
所以一般我们在用框架的时候,Spring+SpringMVC+Mybatis 简称 SSM
Spring+Struts2+hibernate 简称 SSH
咱们先学Mybatis,是用来代替JDBC的,所以要跟数据库交互。
Mybatis和hibernate区别:Mybatis中所有的sql语句是由程序员自己写,
要求程序员有较高的写sql语句的技术,而hibernate框架不需要自己写sql语句
因为,hibernate框架封装了sql语句。所以,虽然hibernate框架在大部分情况下
不需要自己写sql语句,但是也可以写sql语句,Mybatis框架比较灵活,性能
较hibernate高。所以Mybatis称为半自动框架,因为sql语句还是自己写。
2、为什么需要框架技术?
为了更快更好的写代码,因为有了框架,有好多的代码就不需要写了,
直接用框架中的代码。
3、框架技术
是一个应用程序的半成品,因为自己还得写代码
提供可重用的公共结构
按一定规则组织的一组组件
4、分析优势
不用再考虑公共问题
专心在业务实现上
结构统一,易于学习、维护
新手也可写出好程序,学习框架的时候,我们新手也可以学好。
5、Struts2框架
MVC设计模式的实现。
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写。
Controller:常用servlet来实现,通过servlet来获取经过javabean包装过的对象(已存入数据库中的数据),然后再发送数据传输到JSP界面
View:常用JSP来实现,通过可直接观察的JSP页面来展示我们从数据库中获取的数据。
Model:常用javabean去实现,通过各种类来对数据库的数据进行获取,并封装在对象当中。
拦截器
可变和可重用的标签
6、hibernate框架
ORM,简化数据库操作.
(ORM O代表Object对象,R代表Relational关系,M代表Mapping映射。对象关系映射简称ORM)
DAO层
就是说MySQL数据库中的字段 User_Name ,我的bean实体类中
有一个属性 name ,如何去对应?
7、Spring框架,春天的意思,给程序员带来了春天。
依赖注入容器 / AOP实现
声明式事务
简化Java EE应用
黏合剂,将大家组装到一起,集成其他框架
8、Spring MVC,和Spring关系:SpringMVC是Spring的一部分。
结构最清晰的MVC Model2实现
高度可配置,支持多种视图技术
定制化开发
9、Mybatis框架
半自动化的ORM实现
DAO层,和数据库交互。
动态SQL
小巧灵活、简单易学
10、持久化是程序数据在瞬时状态和持久状态间转换的过程。
存在内存中的数据通过JDBC存在MySQL数据库中的过程叫持久化。
那么我们的Mybatis框架,持久层框架。
11、ORM(Object Relational Mapping)
编写程序的时候,以面向对象的方式处理数据
保存数据的时候,却以关系型数据库的方式存储
ORM解决方案包含下面四个部分:
在持久化对象上执行基本的增、删、改、查操作
对持久化对象提供一种查询语言或者API
对象关系映射工具
提供与事务对象交互、执行检查、延迟加载以及其他优化功能
12、MyBatis前身是iBatis,本是Apache的一个开源的项目
官方网站
http://mybatis.org,因为这个是国外的网站,访问不了,所以我们可以
在GitHub上去下载Mybatis框架的jar包。
网址:https://github.com/mybatis/
ORM框架
实体类和SQL语句之间建立映射关系
特点:
基于SQL语法,简单易学
能了解底层封装过程
SQL语句封装在配置文件中,便于统一管理与维护,降低程序的耦合度
方便程序代码调试
因为框架的使用方法有2种:1种是XML配置文件的形式 另一种是
注解的形式,但是配置文件不进行编译,所以后期好维护,而注解是
写在Java文件中的,要进行编译,后期不好维护,注解相对配置文件
来说比较简单,但是Mybatis框架的注解形式并不是很简单。所以我们这里
采用的是配置文件的形式。
13、使用Mybatis框架步骤:
1>导入jar包,如果项目是Java Project ,要新建一个lib文件夹,把jar包
复制到lib文件夹中,导入
mysql-connector-java-5.1.0-bin.jar 用于连接数据库
mybatis-3.2.2.jar Mybatis的jar包
log4j-1.2.17.jar 日志的jar包
然后选中3个jar包,右击鼠标,选择build path--->Add build path
2>新建bean包,写实体类
3>写配置文件
1.新建一个source fold 这是一个文件夹和src文件夹是同级的,
一般把配置文件放在这里面。
2.右击NEW-File ,写文件名,文件名随便起,但是要有意义,默认的
名字 configuration.xml ,我们起一个叫 mybatis-config.xml
3.一般XML文件都有文件头。
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
其中,http://mybatis.org/dtd/mybatis-3-config.dtd是
用于校验代码的。
4.是根标签
myeclipse中的jar包和源码关联步骤:
1、在需要进行关联的jar包上右击选择Properities-->Java Source Attachment
2、在右侧写上地址 写地址的方式有3种,第一种是工作空间,第二种是文件
第三种是文件夹,选择其中一种指定源码路径即可.
查看类中的方法
快捷键:Ctrl+O 鼠标点击其中的方法就会定位到那个方法那
或者第二种方式:
Window->Show View->Outline 也可以查看类中的方法
SqlSessionFactoryBuilder
用过即丢,其生命周期只存在于方法体内
可重用其来创建多个 SqlSessionFactory 实例
负责构建SqlSessionFactory,并提供多个build方法的重载
SqlSessionFactory
SqlSessionFactory是每个MyBatis应用的核心
作用:创建SqlSession实例
作用域:Application
生命周期与应用的生命周期相同
*单例*:
存在于整个应用运行时,并且同时只存在一个对象实例
SqlSession
包含了执行SQL所需的所有方法
对应一次数据库会话,会话结束必须关闭
线程级别,不能共享
注意:在SqlSession里可以执行多次SQL语句,
但一旦关闭了SqlSession就需要重新创建
SqlSession的两种使用方式:
1、通过SqlSession实例直接运行映射的SQL语句
例子:
int count=sqlSession.selectOne("cn.bdqn.dao.DeptMapper.findCount");
注意:cn.bdqn.dao.DeptMapper.findCount要和mapper.xml映射文件中namespace
的值一致。
2、基于Mapper接口方式操作数据
1,新建一个接口 (一般接口的名字和sql映射文件的名字 类名+Mapper)
2,在接口中写一个方法,方法的名字就是sql映射文件中sql语句的id的名字
注意:sql映射文件中namespace中的值要和接口的路径要一致,不是和这个
文件本身的路径一致。
非集成环境下的最佳实践
SqlSessionFactoryBuilder
用过即丢,推荐作用域范围:方法体内
SqlSessionFactory
最佳作用域范围:应用的全局作用域
生命周期与应用的生命周期相同
SqlSession
线程级
一个request请求期间
mybatis-config.xml中的标签是由顺序要求的,顺序不能乱
领取专属 10元无门槛券
私享最新 技术干货