什么是MyBits?
1 | sql复制代码提到mybits,我们就得想到之前学过的JDBC,还记得我们用jdbc操作数据库时需要哪些步骤吗 |
代码在上面了,不记得的可以看一下
1 | sql复制代码通过上面的jdbc我们会发现还是有很多问题存在的 |
Mybatis的介绍
1 | sql复制代码mybits是一个优秀的基于java的持久层框架,它内部封装了jdbc,能够让开发者只关注sql语句本身,而不需要花费精力去处理加载驱动,获取连接这些烦琐的操作 |
Mybatis快速入门
1 | 复制代码1.在pom文件里使用下面的依赖 |
1 | js复制代码 <dependencies> |
创建数据库
1 | CREATE复制代码USE mybatis_day01; |
创建实体类
1 | @AllArgsConstructor复制代码@NoArgsConstructor |
创建UserDao接口
1 | public复制代码 |
3.2.4创建 UserDao.xml 映射文件
在创建mybatis-config.xml核心配置文件
1 | xml复制代码<?xml version="1.0" encoding="UTF-8" ?> |
主要介绍2点,上面configuration中的配置是数据库的配置,具体的可以去mybits官网上查看
mappers标签下主要是引入上面配的UserDao.xml文件
注意:dao接口的目录一定要和映射文件的目录和名字相同
1 |
|
1 | ini复制代码@Test |
详解核心配置文件(mybatis-config)
1.当我们需要使用数据库的配置文件时,使用properties标签,从而引入进行使用
然后在数据库的配置中使用${key}来获取配置文件中的value,例如;
2.起别名:typeAliases
我们每次写全限定类名都比较麻烦,可以给起个别名方便我们引用
这样就可以直接引用了
3.引入配置文件:Mapper
可以直接引入映文件路径,也可以通过扫描接口的方式
详解配置文件UserDao.xml
在上述代码中,我们可以发现有2个参数可能大家还很陌生
resultType介绍:
1 | arduino复制代码 resultType从字面上看是结果类型,没错,就相当于是返回值类型 |
1 | csharp复制代码这是基本类型 |
ParameterType详解
1 | csharp复制代码1.基本类型直接写int|long,字符串直接写全限定类名 java.long.String |
1 | xml复制代码 <!--parameterType传递简单的参数: |
1 | xml复制代码 <!--parametertype传递对象数据 |
1 | parametertype复制代码 1. 也是使用#{}取值 |
当我们如果想要传递多个简单类型参数,该如何传呢?
第一种方法:把参数封装到pojo对象中去【推荐】
第二种方法:把多个简单类型封装到map集合中【map的key用的比较少】
第三种办法:直接在参数前面加上@Param注解
1 | less复制代码 List<User> getUserListByNameAndAddres(@Param("username") String username,@Param("address") String address); |
1 | csharp复制代码// 方式一:使用@Param注解 直接传递 #{参数名称} |
1 | bash复制代码扩展:当我们在进行新增操作时,怎么样才能拿到这条记录的id呢 |
方式二:通过属性配置
resultMap结果类型(当表中字段和javabean中字段不一致时需要手动进行映射配置)
1 | 复制代码1.比较简单就是在查询语句中给字段起别名,从而让他和javabean中的字段一致 |
1 | xml复制代码<!-- |
此时我们的返回值就不能写resultTye了,应该写resultMap
1 | sql复制代码<select id="findAll" resultMap="user"> |
${}和#{}的区别
1 | bash复制代码1.他们都可以进行属性取值, |
本文转载自: 掘金