课程:https://www.bilibili.com/video/av38513367
为什么要学习框架?
所谓框架,即framework。其实就是某种项目的半成品,里边有很多功能组件可供你使用来完成自己的项目。
框架可以帮助我们完成底层基础工作,程序员只需要关注项目业务本身。
什么是SSM框架?
SSM框架即指Spring+SpringMVC+MyBatis的简称
SSM框架的组成
- Spring:容器大管家,可管理项目中对象的生命周期,同时AOP事务大大的优化了事务的操作等
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
- SpringMVC:所属web层,取代了servlet技术负责处理请求,成为连接前端的桥梁
Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
- MyBatis:所属dao层,简化了数据库操作,使用动态sql让程序员只需要关注sql语句。
将sql和代码分离了
SSM框架在web项目中所处的位置
MyBatis是什么?
MyBatis是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
总而言之MyBatis是一个轻量级简化数据库操作的框架。
jdbc使用数据库
主要语句:
//链接对象
Connection con = null;
//查询对象
PreparedStatement ps = null;
//结果集对象
ResultSet rs = null;
try {
//加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
//获取连接
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/ssm_mybatis", "root", "123");
String sql = "SELECT * FROM user WHERE u_sex = ?";
//获取statement
ps = con.prepareStatement(sql );
ps.setString(1, "0");
//查询 输出结果
rs = ps.executeQuery();
while(rs.next()) {
System.out.println(rs.getString("u_id") + " " + rs.getString("u_username") +" " + rs.getString("u_sex"));
}
} catch (Exception e) {
e.printStackTrace();
}finally {
if(rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(ps != null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
MyBatis架构图
SqlMapConfig.xml 主配置文件 :可以配置属性、别名、映射器等
Mapper.xml mapper映射文件:mapper映射器。mybatis里真正强大的功能,可以帮助简化mysql语句,sql语句都会写在这里。一个mapper文件会对应一张表,数据库有几个表就对应几个mapper文件
以后用SqlSession操作数据库
SqlSession分装Executor,这个才是真正执行sql操作的
jdbc里的结果集是由输出映射处理