IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 1.MyBatis整合 -> 正文阅读

[Java知识库]1.MyBatis整合

  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包进行支持。在该文件中添加如下内容:

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

??</properties>

<build>

<plugins>

<plugin>

<artifactId>maven-compiler-plugin</artifactId>

<configuration>

<source>l.6</source>

<target>l.6</target>

</configuration>

</plugin>

</plugins>

</build>

<dependencies>

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis</artifactId>

<version>3.5.1</version>

</dependency>

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.10</version>

</dependency>

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-log4j12</artifactId>

<version>1.7.26</version>

</dependency>

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.1.47</version>

</dependency>

</dependencies>

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

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

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

然后下面的路径待修改:

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

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

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

?

<configuration>

<!-- 全局配置项 -->

<settings>

<setting name="logImpl" value="LOG4J" />

<!-- 将以下画线方式命名的数据库列映射到Java对象的驼峰式命名属性中 -->

<setting name="mapUnderscoreToCamelCase" value="true"/>

<!-- 延迟加载 -->

<setting name="aggressiveLazyLoading" value="false"/>

</settings>

<!-- 配置包的别名

<typeAliases>

<package name="jack.mybatis.authority.model" />

</typeAliases>-->

<!-- 配置数据库连接 -->

<environments default="development">

<environment id="development"> <!-- 每个environment元素定义的环境ID -->

<transactionManager type="JDBC"> <!-- 事务处理方式 -->

<property name="" value="" />

</transactionManager>

<dataSource type="UNPOOLED"> <!-- 数据源配置 -->

<property name="driver" value="com.mysql.jdbc.Driver" />?<!-- 数据库JDBC驱动 -->

<property name="url" value="jdbc:mysql://localhost:3306/db_mybatis" /> <!-- 数据库URL -->

<property name="username" value="root" /> <!-- 数据库用户 -->

<property name="password" value="123456" /> <!-- 密码 -->

</dataSource>

</environment>

</environments>

<!-- 引用映射文件 -->

<mappers>

<mapper resource="com/zq/mapper/CountryMapper.xml" />

<mapper resource="com/zq/mapper/CountryMapper2.xml" />

</mappers>

</configuration>

  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<String,Object> ?paraMap = new HashMap<>();

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

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

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

③使用注解

List<SysUser> 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 ?映射文件

第一步:拷贝文档声明

?<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

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

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

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

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

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

删:<delete>

改:<update>

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

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

情况1.1 可以是一个实体类

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

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

?

查: <select>

Id:

resultType:结果类型 ?-->指定一个实体类

只要是查询的结果的列,和实体类中的属性能够对应上【考虑到有无配置mapUnderScoer,,,,这个参数】,就可以使用resultType

resultMap:结果Map结合,自动映射不好使,闲的,去手动配置映射。

?Id 比较特殊: 可以使用id标签进行手工映射。 ?property 实体类中的属性名 ?, column:数据库中的字段名

注意:特殊字段类型:添加 jdbcType=BLOB类型 ???TIMESTAMP

列的别名可以解决一切不对应。

高级映射:

1对1:

实体类的某个属性,也是一个实体类。

1对多:

实体类中的某个属性,是一个集合

动态SQL: if ???where

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ---------转载老师课堂上给我们写的笔记

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-05-06 10:55:43  更:2022-05-06 10:57:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:37:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码