Mybatis
2021-09-08 16:30:11 139 举报
AI智能生成
登录查看完整内容
Mybatis学习
作者其他创作
大纲/内容
增强的jdbc,访问数据库,执行crud
作用
1.加入maven依赖
2.创建Dao接口:定义了操作数据库的方法
3.创建mapper文件,也叫sql映射文件:写sql语句的,和接口方法对应的sql语句
4.创建mybatis的主配置文件:1)连接数据库 2)指定mapper文件的位置(target/classes下)
5.使用Mybatis的对象 SqlSession执行sql语句
基本步骤
动态代理:mybatis自动创建dao接口的实现类,在实现类中调用SqlSession执行sql语句
1.获取SqlSession对象,SqlSessionFactory.openSession()
2.使用sqlSession.getMapper(接口.class)方法获取某个接口的对象
3.使用Dao接口的方法,调用方法就执行了mapper文件中sql语句
使用动态代理的方式
1.Dao接口和mapper文件放在一起,同一个目录
2.Dao接口和mapper文件名称一致
3.mapper文件中的namespace的值是dao接口的全限定名称
5.Dao接口中不要使用重载方法,不要使用同名的,不同参数的方法
使用动态代理方式的要求
使用mybatis的动态代理
从java代码把实际的值传入到mapper中
1.一个简单类型的参数:#{任意字符}
2.多个简单类型的参数:使用@Param(\"自定义名称\")
3.使用一个java对象,对象的属性值作为mapper文件找到参数,#{java对象的属性名}
5.使用Map作为参数,#{map的key}
理解传参
1.#是占位符,表示列值的,放在等号右侧
2.$也是占位符,表示字符串的连接,把sql语句连接成一个字符串
3.#占位符使用的jdbc指定PrepareStatement对象执行sql语句,效率高,没有sql注入的风险
4.$使用的是Statement执行sql,效率低,有sql注入的风险
#和$的区别
1.实体类对象类型的全限定名称
1.使用<typeAlias>
2.使用<package name=\"包名\" />,类名就是别名
2.别名,在mybatis主配置文件定义别名
表示sql语句的执行结果,转为java对象的类型
resultType
自定义列名和java实体类对象的属性名对应关系
resultMap
使用列名as 别名
使用resultMap
列名和属性名不一致的解决的方式
在java代码中指定like的内容 ,例如%张%
在mapper文件中拼接like
like
mybatis返回结果
根据条件,能够得到不同的sql语句,使用mybatis的标签,例如 if,where,foreach等
if:判断条件,条件为true,会把if之间的sql加入到主sql之后
where:<where>标签里面是多个if,如果有一个if判断为true,会在sql的后面加入where关键字,会去掉无用的and,or等字符
<!-- foreach第一种使用方式 collection:表示接口方法参数的类型,如果是数组使用array,如果是list集合使用list item:自定义,表示数组或者集合成员的变量 open:循环开始时的字符 close:循环结束时的字符 separator:成员之间的分隔符 -->
foreach:循环数组,list集合
sql代码片段:复用部分sql语句
mybatis动态sql
2.在mybatis的主配置文件中使用<property>指定文件的位置。在需要使用的值的地方,${key}
1.数据库属性配置文件的使用
<!--第一种方式:指定多个mapper文件--><mapper resource=\"com/there/dao/UserDao.xml\"/><mapper resource=\"com/there/dao/UserDao.xml\"/>
<!-- 第二种方式:使用包名 name:xml文件(mapper文件所在的包名),这个包中所有的xml文件一次性都能加载到mybatis 使用package的要求: 1.mapper文件名称要和接口名称一样,区分大小写 2.mapper文件和dao接口需要在同一目录 --> <package name=\"com.there.dao\"/>
2.mapper文件的位置
mybatis主配置文件
功能:实现数据库的分页
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.2.1</version> </dependency>
<plugins> <plugin interceptor=\"com.github.pagehelper.PageInterceptor\"></plugin></plugins>
2.在mybatis主配置文件加入plugin
3.在查询方法前,加入PageHelper方法的调用
使用步骤
PageHelper:分页
Mybatis
0 条评论
回复 删除
下一页