| |
|
开发:
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整合 |
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包进行支持。在该文件中添加如下内容:
添加完毕之后,进行ctrl+s进行保存:多了一个Maven Dependencies ? 但是现在项目上有红色 *, 所以我们要刷新一下Maven项目。 到此为止: Maven的运行环境,还差一步Junit的配置文件,需要将log4J.properties,拷贝到 然后下面的路径待修改: 第二大步: 搞定mybatis的运行环境 1.mybatis的配置文件: 在以下目录,创建mybatis-config.xml文件 2.修改mybatis的配置文件:拷贝如下内容 ?
注意: countryMapper.xml 作为我们的映射文件,需要格外注意以下几点: 先拷贝文档声明: ? 遗漏下面这个属性: 至此:最简单的规范Mybatis项目完成,开始进行测试:测试之前千万千万别忘了我们还有个待修改路径: 最后开始去写测试类:测试类所在的目录: 新建一个测试类: TestCountry.java ?这个类中,我们要 ???加载mybatis的基础信息 ???获取sqlSession 最后的配置: 映射器方法多参数传递:假如有两个参数 username password
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 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ---------转载老师课堂上给我们写的笔记 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |