MyBatis学习笔记:快速入门使用

注:本文内容都来自互联网,通过自己整理用于学习,不作任何其他作用!

原理概念:
mybatis-config.xml中:

< configuration>核心配置

< environments id=“development开发/对应的还有生产环境”>环境

下有两个主要配置
< transactionManager type=JDBC(事务管理器类型)>:事务管理器

< DataSource type=“POOLED”>:数据源

< property name=“driver/url/username/password” value=" ${String}">
注:
url一般这么写:jdbc:mysql://localhost:3306/mybais?useSSL=true&amp ;useUnicode = true &amp ;characterEncoding=“UTF-8” 避免中文乱码和安全传输问题

数据库连接字符可以写在properties中

< properties resource= “db.properties”> //必须放在最上面,引入外部配置文件,优先使用外部配置文件。
编写db.properties.把driver=""/user/pass/url写进去换行
使用的时候用${key}取出。

< mapper>:在Mybatis中注册mybatis.xml,不注册找不到mapper
< mapper> resource=“com/aruiea/dao/mapper.xml”< /mapper>
——
注:路径分隔符用/

mapper.xml中

< map namespace=“com.aruiea.dao层接口”>绑定dao层接口

这下面的标签:
< select id=“接口中的方法名” resultType=" 数据库实体类/返回值类型" parameterType=“参数类型”>< /select>: 把数据库实体类和dao层实现类联系起来。
id=“接口中的方法名”
resultType=" 返回值类型"
parameterType=“方法参数类型”

#{value}得到传进来的value参数。

增删改必须要提交事务

资源过滤问题:mybatis.xml找不到配置的mapper。
原因:
这是maven的问题,resource目录下可以识别,java目录下识别不了
解决:
pom.xml下MyBatis学习笔记:快速入门使用

使用流程:

1.在maven中导入依赖
sql包,mybatis包,junit包

2.在maven项目中在创建一个maven项目模块

3.新建mybatis-config.xml中:
< environments default=“development”>下:
< transcationManager type=“JDBC” >
< DataSource type=“POOLED”>下:
< property id=“driver/url/usename/password” value="" />
——
< mappers>
< mapper resource =“com/aruiea/dao/mapper.xml” />
</ mappers>

4.获得sqlSessionFactory对象,最好封装成工具类
String resource =“com.aruiea.mybatis-config.xml”;
InputStream in = Resources.getResourceAsStream(resource)
SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in);

5.获得sqlsession对象:SqlSession ss = sqlsessionfactory.openSession();

6.准备好数据库表,编写dao接口,dao层实现类(被mapper.xml替换)mapper.xml配置

7.mapper.xml中:
< map namespace=“com.aruiea.dao层接口”>
< select id="" resultType=" "> 语句块 < /select>
parameterType:参数类型,和方法传进来的参数类型相同
values:通过#{参数名}取出,对象用属性名,Map用key
< /map>

8.测试。
在test下创建同等级Test类,把里面的方法加上@Test标注为测试方法
——
dao层接口 daoInter = sqlsession.getMapper(dao层接口.class);
daoInter.接口下的方法();//执行xml下的方法
daoInter.insert/update/delete();//必须要提交事务
sqlsession.commit();
sqlsession.close();

使用map作为参数:

在数据库操作方法中加入参数void Method(Map<key,value> map)
——
< insert id="" parameter=“map” >
insert into mybatis.user (id,name,pas) values (#{V1},#{V2},#{V3});
</ insert>

数据库操作语句中参数parameter可以用:

1.Map #{k1},#{k2},#{k3}
2.对象(#{属性}
3.基本数据类型 #{属性}

模糊查询:

直接在java传参时加入通配符%value%

类型别名(typeAliases)

类型别名是为Java类型设置的一个短的名字。它只和XML配置有关,存在的意义仅在于用来减少类完全限定名的冗余。
< typeAliases>
< typeAlias alias=“user” type=“cn.mybatis.domain.User”/>
< /typeAliases>

也可以指定一个包名,MyBatis会在包名下面搜索需要的JavaBean,默认是类名的小写。
< typeAliases>
< package name=“cn.mybatis.domain”/>
< /typeAliases>