Mybaits

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

一对一查询(方法二)

 

一对多查询

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值