我在上海乐字节学习Java的第二天

第二天学习ssm框架,在网上搜过很多内容,在知乎上,各位大佬说ssh已经被抛弃了,所以今天的目标就是看完ssm入门网课,再多看几个项目,积累经验,把概念弄清楚之后,再去写代码应该方便许多 ,下面是我做的笔记:

SSM框架系列之一 MyBatis
MyBatis是什么?
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
MyBatis是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
总而言之MyBatis是一个轻量级简化数据库操作的框架。

为什么要使用MyBatis?
为了解决JDBC存在的问题和简化数据库操作,MyBatis提供了较为优秀的解决方案;
例如:
1、 可以通过主配置文件配置连接池解决频繁创建、释放数据库连接造成的性能影响;
2、 动态SQL解决JDBC中硬编码问题:
a) Where条件改变;
b) 占位符位置变化;
3、 可通过包装类方便的获取数据库查询结果集对象;
4、 使Dao层业务逻辑和数据库访问分离更易维护和测试。

我能从这门课中学到什么?
1、 了解MyBatis架构;
2、 掌握MyBatis框架搭建、配置;
3、 使用MyBatis完成对数据库的增、删、改、查操作。
4、 掌握Mapper代理开发;
5、 掌握输入和输出映射;
6、 掌握多表关联查询;
7、 掌握动态SQL编写SQL语句;
8、 使用MyBatis Generator工具快速生成Bean、Interface、mapper.xml;
9、 掌握MyBatis+Spring开发(需要部分Spring知识);

MyBatis从哪获取?
MyBatis目前已经迁移到github上,访问下边网址可以获取到MyBatis的各种版本
https://github.com/mybatis/mybatis-3/releases

使用Jdbc开发小demo,观察Jdbc的问题;

开始学习MyBatis框架
MyBatis架构图:

在这里插入图片描述

Part.1 HelloMyBatis:搭建MyBatis HelloWorld项目
1、 下载MyBatis、创建项目、导包;
2、 创建测试用例,测试数据库、测试Bean对象;
3、 创建sqlMapConfig.xml主配置文件;
a) 导入主配置文件头:

<?xml version="1.0" encoding="UTF-8" ?>

4、 创建Mapper.xml映射文件;
a) 导入Mapper文件头:

<?xml version="1.0" encoding="UTF-8" ?>

5、 导入约束;

Part.2 使用MyBatis对表进行增、删、改、查操作;
1、 通过ID去查询一个用户
2、 通过用户名模糊查找匹配的用户列表
3、 完成添加用户
4、 修改用户
5、 根据id删除用户
6、 使用MyBatis 开发Dao层并测试;
7、 小结1:Jdbc与MyBatis开发的区别(MyBatis的优点),回顾MyBatis开发流程;

Part.3 MyBatis Mapper动态代理开发4+1 (4原则+1注意):
1、 接口方法名需要与mapper.xml的要调用的sql语句的id一致;
2、 接口的形参类型需要与mapper.xml parameterType一致;
3、 接口的返回值需要与mapper.xml resultType一致;
4、 mapper.xml中namespace要与接口的全包名一致;
5、 注意mapper动态代理开发中,根据返回值类型来自动选择;

Part.4 MyBatis 主配置文件SqlMapConfig.xml说明:(注意顺序)
1、 properties(读取配置文件)
2、 settings(全局配置参数)
3、 typeAliases(类型别名)
4、 typeHandlers(类型处理器)
5、 objectFactory(对象工厂)
6、 plugins(插件)

7、 environments(环境集合属性对象,与Spring框架整合后Say Good Bye)
a) environment(环境子属性对象)
b) transactionManager(事务管理)
c) dataSource(数据源)

8、 mappers(配置映射器位置)

Part.5 MyBatis输入和输出映射
1、 输入映射parameterType;
a) 基本类型;
b) 自定义对象;
c) 自定义包装类;

2、 输出映射resultType、resultMap;

a) resultType:
i. 基本类型;
ii. 自定义对象;
iii. 集合;

b) resultMap;
i. bean对象字段与数据表字段不匹配;
ii. 自定义包装类;
iii. 关联查询;

Part.6 MyBatis关联查询
1、 一对一;
2、 一对多;

在这里插入图片描述

Part.7 MyBatis动态sql:更方便的拼接sql语句

1、 if标签 - 多条件查询,获取用户列表; 2、 where标签 - 解决if标签拼接字符串AND符号问题; 3、 trim标签 - 定制where标签的规则 4、 set标签 - 解决更新数据表时字符串拼接逗号”,”问题; 5、 foreach标签 – 如果需要使用IN查询多条相同数据,可以使用foreach遍历; 6、 sql标签 – 可以提取重复sql语句片段;

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Part.8 MyBatis Generator(MBG):
作用:根据数据库表自动生成Bean对象、Java接口及SqlMapper.xml配置文件;
官方文档:http://www.mybatis.org/generator/
下载地址:https://github.com/mybatis/generator/releases

1、 搭建MBG项目;
a) 下载MBG核心包;
b) 创建java项目;
c) 从官方文档获取配置表、实例代码;
d) 导入依赖包;
2、 MBG配置以及根据数据库表生成所需文件(Bean、Interface、Mapper.xml);
3、 使用自动生成的文件操作数据库;

Part.9 MyBatis + Spring整合开发 (如果没学过Spring的同学,这部分内容等学习完Spring再来看)
目的:
a) 使用Spring容器用单例模式管理Mybatis的sqlSessionFactory;
b) 使用Spring管理连接池、数据源等;
c) 将Dao/Mapper动态代理对象注入到Spring容器中,使用时直接获取;

1、 Mybatis和Spring框架整合;
a) 导入所需的包;
b) 创建Mybatis主配置文件sqlMapConfig.xml;
c) 创建Spring主配置文件applicationContext.xml (以下是spring框架xml的头,需要导入约束);

<?xml version="1.0" encoding="UTF-8"?>

  • 1

d) 配置C3P0连接池;

<bean name="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.driverClass}"/> <property name="jdbcUrl" value="${jdbc.jdbcUrl}"/> <property name="user" value="${jdbc.user}"/> <property name="password" value="${jdbc.password}"/> </bean>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

e) 读取db.properties;

jdbc.driverClass=com.mysql.jdbc.Driver jdbc.jdbcUrl=jdbc:mysql://localhost:3306/ssm_mybatis jdbc.user=root jdbc.password=123

  • 1
  • 2
  • 3
  • 4

f) 配置sqlSessionFactory;
g) 测试:…

2、 Dao式开发;
3、 Mapper动态代理开发;
4、 Mapper动态扫描开发;

猜你喜欢

转载自blog.csdn.net/dirft_lez/article/details/109173786