Mybaits

mac2022-06-30  76

Mybatis是一个框架:

框架:框架就是一个封装完的模式,根据开发的习惯,对重复的冗余的代码进行封装,形成固定的解决问题的方式,具备这一领域开发的功能的插件(组件)。

Mybatis简介:

  Mybatis是一个框架,连接数据库的框架,对数据进行增删改查操作,底层依然是JDBC,基于JDBC做了简单的映射封装,ORM封装。

 

   ORM(对象关系映射)数据库里的User表,相当于JAVA代码里的User类,User表里的UserName,UserAge 等 相当于User类里的一个属性,User表里的一条记录相当于User类里的一个对象,这样就把数据库和Java代码对应起来了

 

  JDBC:

  1.加载数据库驱动

  2.创建数据库连接

  3.创建JDBC Statement对象

  4.设置SQL

  5.设置参数

  6.获取结果

  7.处理结果

  8.释放资源

问题:

  1.创建连接,释放资源频繁,浪费资源-------数据库连接池

  2.SQL语句写在JAVA代码中,硬编码,不利于维护

  3.preparedStatement设置参数,硬编码

  4.解析编码,硬编码,sql变化导致结果变化,解析代码变化。

入门案例:

1.导入主体结构(jar包)

  核心包:mabatis-x.x.x.jar

  数据库连接:mysql.x.x.x.jar

  依赖包---日志包

2.添加核心配置文件:

1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE configuration 3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 4 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 5 <configuration> 6 <!-- 环境配置:数据库信息 --> 7 <environments default="development"> 8 <environment id="development"> 9 <transactionManager type="JDBC"/> 10 <dataSource type="POOLED"> 11 <property name="driver" value="com.mysql.jdbc.Driver"/> 12 <property name="url" value="jdbc:mysql://localhost:3306/0506java"/> 13 <property name="username" value="root"/> 14 <property name="password" value="root"/> 15 </dataSource> 16 </environment> 17 </environments> 18 <!-- 注意位置 --> 19 <mappers> 20 <mapper resource="com/ujiuye/mapper/UserMapper.xml"/> 21 </mappers> 22 </configuration>

 

3.创建实体类:

  序列化

  属性如果是基本数据类型,使用包装类

  提供set,get方法

4.添加Mapper

  结果类型,查询的时候需要添加:

1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE mapper 3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 5 <!-- 命名空间 隔离SQL --> 6 <mapper namespace="test"> 7 <!-- 根据ID查询 --> 8 <!-- 9 parameterType:参数类型 数据库类型 10 resultType:查询是需要添加,用来表示结果类型 11 Id:方法名(执行sql的名字) 12 #{id}:占位符 13 --> 14 <select id="queryByID" parameterType="int" 15 resultType="com.ujiuye.pojo.User"> 16 select * from user where id=#{id} 17 </select> 18 </mapper>

 

5.测试

  创建工厂:读取配置文件

  创建Session对象:通过工厂创建

  数据库操作

 

MyBatis动态代理:

  代理的部分:Dao层开发取消实现类,用Mapper.xml代替

  过程:定义接口(CRUD),创建Mapper.xml

  注意:Mapper.xml文件名与接口一致

 

 

Properties标签:

 

 

Typealiases标签

 

 

Mapper标签

 

resultMap标签

 

动态SQL

Ifwhere标签

 

 

Foreach标签

 

SQL片段

 

关联查询

一对一(方法一)

使用Resulttype

创建实体类:包含查询需要的类中所有属性

 

 

 编写Mapper

一对一查询(方法二)

 

一对多查询

 

转载于:https://www.cnblogs.com/ywzbky/p/MyBatis.html

最新回复(0)