Mybatis学习(1)

目录

是什么

开发步骤

 CRUD的实现

步骤

万能Map(传参)

 模糊查询

方法一:java代码执行的时候,传递通配符%

方法二:在sql拼接中使用通配符

 核心配置文件

环境配置(environments)

属性(properties)

总结

类型别名(typesAliases)

方式一:给实体类起别名

方式二:指定一个包名,它的默认别名就为这个类的类名,首字母小写

设置(settings)

映射器(mappers)

方式一:resource资源路径

方式二:使用class文件绑定注册

方式三:使用扫描包进行注入绑定

解决属性名和字段名不一致的问题

解决方法1:sql别名

解决方法2:resultMap结果集映射

日志

常见日志

LOG4J使用步骤


Mybatis中文文档

是什么

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录

开发步骤

1、连接数据库,导入mybatis和mysql使用的基本jar包(pom.xml中导入)

2、需要sqlSessionFactory对象,为此建造一个工具类(com.liang.utils.MybatisUtils)

3、写mybatis核心配置文件mybatis-config.xml(resources中):连接数据库、Mapper

 4、 写实体类(com.liang.pojo.User):有参无参构造器、get()set()方法、toString()方法重写

5、写接口(com.liang.dao.UserMapper)

6、 写实现类(com.liang.dao.UserMapper.xml):namespace绑定一个对应的接口,标签id绑定接口中的方法,标签体为sql语句

 CRUD的实现

步骤

1、编写接口(Mapper)

2、编写对应的Mapper.xml

3、测试

万能Map(传参)

假设,我们的实体类,或者数据中的表,字段或者参数过多,我们应当考虑使用Map!

Map传递参数,直接在sql中取出key即可!【parameterType="map"】

对象传递参数,直接在sql中取对象的属性即可!【parameterType="Object"】

只有一个基本类型参数的情况下,可以直接在sql中取到!

多个参数用Map,或者注解!

【接口】

 【实现类】

【测试】

 模糊查询

方法一:java代码执行的时候,传递通配符%

方法二:在sql拼接中使用通配符

 核心配置文件

即mybatis-config.xml

标识出的为重点掌握部分

环境配置(environments)

Mybatis可以配置成适应多种环境

尽管可以配置多个环境,但每个SqlSessionFactory实例只能选择一种环境

属性(properties)

这些属性都是可外部配置且动态替换的,既可以在典型的java属性文件中配置,也可以通过properties元素的子元素来传递【db.properties】

编写一个配置文件【db.properties】,在核心配置文件中引入(注意放置的顺序!)

总结

1、可以直接引入外部文件

2、可以在其中增加一些属性配置

3、如果两个文件有同一个字段,优先使用外部配置文件的

类型别名(typesAliases)

目的:为了减少类完全限定名的冗余

方式一:给实体类起别名

方式二:指定一个包名,它的默认别名就为这个类的类名,首字母小写

在实体类比较少的时候,使用第一种方式

如果实体类十分多,建议使用第二种

第一种可以diy别名,第二种如果非要diy,需要在实体类上增加注解@Aliase

设置(settings)

需掌握:全局缓存+懒加载+日志

映射器(mappers)

方式一:resource资源路径

方式二:使用class文件绑定注册

注意点:接口和他的Mapper配置文件必须同名!

              接口和他的Mapper配置文件必须在同一个包下!

方式三:使用扫描包进行注入绑定

注意点:接口和他的Mapper配置文件必须同名!

              接口和他的Mapper配置文件必须在同一个包下!

解决属性名和字段名不一致的问题

遇到的问题:

例: 数据库中字段名为pwd

        实体类中属性名为password

        测试程序中无法正确识别password

解决方法1:sql别名

解决方法2:resultMap结果集映射

column数据库中的字段、property实体类中的属性

日志

目的:如果一个数据库操作,出现了异常,我们需要排错,日志就是最好的助手!

常见日志

SLF4J

LOG4J【掌握】

LOG4J2

COMMONS_LOGGINF

STDOUT_LOGGING【掌握】【标准的日志工厂实现】

NO_LOGGING

在mybatis中,具体使用哪一个日志实现,在settings中设置

LOG4J使用步骤

1、导入log4j的包

2、写log4j.properties(放resources中)

3、配置log4j为日志的实现(settings)

4、使用log4j

1、在要使用log4j的类中,导入包

2、日志对象,参数为当前类的class

3、日志级别(info、debug、error)

  • 23
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值