1.MyBatis整合

1.MyBatis整合,第1张

  1. 创建Maven项目
  2. 根据数据库,创建实体类,遵循下划线转驼峰命名
  3. 创建对实体类进行dao *** 作的 映射接口  ,并在映射接口中定义方法。
  4. 创建映射文件 xxxMapper.Xml ,根据映射接口定义其中的mapper内容
  5. 在MyBatis的配置文件中,配置引用我们的映射文件,添加log4j的配置文件.properties文件,并修改路径。

  1. 测试类  获取SqlSessionFactory 

Reader read = Resources.getResourceAsReader("mybatis-config.xml");

sqlSessionFactory = new SqlSessionFactoryBuilder().build(read);

SqlSession sqlSession   = sqlSessionFactory.openSession();

SysUserMapper userMapper = sqlSession.getMapper(SysUserMapper.class);

第一:maven项目创建成功,效果如下

第二:修改pom.xml文件,我们需要配置Maven项目运行的基本环境,比如我们要进行单元测试,要连接数据库,都需要有jar包进行支持。在该文件中添加如下内容:

UTF-8

  

maven-compiler-plugin

l.6

l.6

org.mybatis

mybatis

3.5.1

junit

junit

4.10

org.slf4j

slf4j-log4j12

1.7.26

mysql

mysql-connector-java

5.1.47

添加完毕之后,进行ctrl+s进行保存:多了一个Maven Dependencies  

但是现在项目上有红色 *, 所以我们要刷新一下Maven项目。

到此为止: Maven的运行环境,还差一步Junit的配置文件,需要将log4J.properties,拷贝到

然后下面的路径待修改:

第二大步: 搞定mybatis的运行环境

1.mybatis的配置文件: 在以下目录,创建mybatis-config.xml文件

2.修改mybatis的配置文件:拷贝如下内容

 

 

  1. 创建系统的目录结构

注意: countryMapper.xml 作为我们的映射文件,需要格外注意以下几点:

先拷贝文档声明:

 

遗漏下面这个属性:

至此:最简单的规范Mybatis项目完成,开始进行测试:测试之前千万千万别忘了我们还有个待修改路径:

最后开始去写测试类:测试类所在的目录:

新建一个测试类: TestCountry.java  这个类中,我们要

   加载mybatis的基础信息

   获取sqlSession

最后的配置:

映射器方法多参数传递:假如有两个参数 username password

  • arg0 \arg1      |  param1 \param2

Select * from user where user_name = #{arg0} and user_password = #{arg1}

②: 使用map进行传递: 保证sql中的占位 和Map的key值一致。

Map  paraMap = new HashMap<>();

paramMap.put(“uname”,”周广彬”);

paramMap.put(“pwd”,”123456”);

Select * from user where user_name = #{uname} and user_password = #{pwd}

③使用注解

List selectUserDeptByUid(@Param("uuuuid") int userid);

select * from sys_user u , sys_dept d  where u.dept_id = d.id and u.id = #{uuuuid}

Mybatis: 最流行的:

一个实体类 p.java  --> 接口 pMapper.java  --> pMapper.xml

使用注解之后的:

一个实体类 p.java  --> 接口 pMapper.java  --> pMapper.xml

第三章: MyBatis 高级映射  ★

1: 需求: 查询出某个用户详细信息和它的部门名称

  

一对一嵌套查询:

一对多映射:

 

 

 

Mybatis要有基础的配置文件: mybatis-config.xml  放置在 src/main/resources 文件夹下,

此处有两个地方需要修改,第一个是数据源配置,第二点引用映射文件。

Com.zq.bean  -->实体类  Medicine.java

Com.zq.mapper--> 接口类  MedicineMapper.java   

映射接口: 在接口中的方法都抽象的不必实现的。  起的名字很重要,要来做关联。

Com.zq.mapper--> 映射文件xml   medicineMapper.xml  映射文件

第一步:拷贝文档声明

 

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

第二步:编写 标签,  namespace属性非常重要,错误会导致映射不成功。

Namespace 值指向的是 映射接口的全类名eg.  Com.zq.mapper.MedicineMapper

第三步:和方法做具体映射。id属性指定和接口中的方法进行关联。

增:,在新增的时候,一般参数传递使用实体类,parameterType可写可不写。 注意: 获取自动增长生成的主键useGeneratedKeys=true,keyPropety=id

删:

改:

映射接口中,方法的参数的问题。

情况1:参数只有一个   parameterType可写可不写

情况1.1 可以是一个实体类

情况1.2 可以是一个基本数据类型

情况2:参数是一个以上: ☆  使用注解 @Param  起个别名,这个别名对应是sql中的参数值

 

查: