关于mybatis

1、junit方法  @Test @Before @After

2、数据类型与别名

 3、参数定义方法:

  #{name} 直接表示对象的属性名,只有一个参数的时候 #{} 内的名称随便写。

  '%${name}%'  模糊查询拼接字符串

<select id="findByUsernameLike"
parameterType="string"
resultType="com.itbaizhan.pojo.User">  select * from user where username like
'%${value}%'
</select>

模糊查询的推荐写法,使用bind标签

<select id="findByUsernameLike"
parameterType="string"
resultType="com.itbaizhan.pojo.User">   <bind name="likeName"
value="'%'+username+'%'"/>  select * from user where username like #
{likeName}
</select>

4、多参书写方式,

注解方式

List<User> findPage1(@Param("startIndex")
int startIndex, @Param("pageSize")int
pageSize);
<select id="findPage1"
resultType="com.itbaizhan.mapper.User">select * from user limit #{startIndex},#
{pageSize}
</select>

Map传参

 

List<User> findPage3(Map<String,Object>
params);

 

<select id="findPage3"
resultType="com.itbaizhan.pojo.User"
parameterType="map">  select * from user limit #
{startIndex},#{pageSize}
</select>
@Test
public void testFindPage3(){   Map<String,Object> params = new
HashMap();   params.put("startIndex",0);   params.put("pageSize",4);   List<User> users =
userMapper.findPage3(params);   users.forEach(System.out::println);
}

5、主键回填

void add(User user);
<insert id="add"
parameterType="com.itbaizhan.user.User">   <!-- keyProperty:主键属性名,keyColumn:主
键列名,resultType:主键类型,order:执行时机 -->   <selectKey keyProperty="id"
keyColumn="id" resultType="int"
order="AFTER">      SELECT LAST_INSERT_ID();   </selectKey>  insert into
user(username,birthday,sex,address)
values(#{username},#{birthday},#{sex},#
{address})
</insert><!-- SELECT LAST_INSERT_ID():查询刚刚插入的记录的主键
值,只适用于自增主键,且必须和insert语句一起执行。-->
@Test
public void testAdd(){   User user = new User("尚学堂", new
Date(), "男", "北京");   userMapper.add(user);   session.commit();   System.out.println(user.getId());
}

6、正确配置数据库连接的方法

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybat
is
jdbc.username=root
jdbc.password=root
在配置文件中引入db.properties
<properties resource="db.properties">
</properties>
<environments default="mysql">   <environment id="mysql">       <transactionManager type="JDBC"></transactionManager>       <dataSource type="POOLED">           <property name="driver" value="${jdbc.driver}"/>           <property name="url" value="${jdbc.url}"/>           <property name="username" value="${jdbc.username}"/>           <property name="password" value="${jdbc.password}"/>       </dataSource>   </environment></environments>

7、类别名

<!-- mybatis配置文件 -->
<typeAliases><typeAlias type="com.itbaizhan.pojo.User"alias="User"> </typeAlias>
</typeAliases>

映射文件

<select id="findAll" resultType="User">  select * from user
</select>
为一个所有包下的所有类配置别名 
<typeAliases>   <package name="com.itbaizhan.pojo">
</package>
</typeAliases>

8、 <mappers> 用于注册映射文件或持久层接口

<!-- 注册一个包下的所有持久层接口 -->
<mappers>   <package name="com.itbaizhan.mapper"/>
</mappers

9、返回属性与对象名不一致时

   resultMap

<!-- id:自定义映射名 type:自定义映射的对象类型
  -->
<resultMap id="teacherMapper"
type="com.itbaizhan.pojo.Teacher">   <!-- id定义主键列 property:POJO属性名
column:数据库列名 -->   <id property="id" column="tid"></id>   <!-- result定义普通列 property:POJO属性
名 column:数据库列名 -->   <result property="teacherName"
column="tname"></result>
</resultMap><select id="findAll"
resultMap="teacherMapper">  select * from teacher
</select>

sql语句as

<select id="findAll"
resultType="com.itbaizhan.pojo.Teacher">  select tid as id,tname as teacherName
from teacher;
</select>

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/794032.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【题解】CPS-S模拟2

目录PreT1.不相邻集合题目描述部分分40pts10pts正解思路代码T2.线段树题目描述部分分20pts正解思路代码T3.部分分40pts正解思路代码T4.部分分10pts正解思路代码And Pre赛时没有第一时间找到签到题,遂四处游走,后来决定先打T1,约1h时切了,然后1h打后3题暴力,后面推了推T4一…

SpringBoot集成knife4j接口文档

0. 导入maven依赖 <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId> </dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lom…

Cisco Catalyst 9000 Series Switches, IOS XE Release 17.15.1 ED

Cisco Catalyst 9000 Series Switches, IOS XE Release 17.15.1 EDCisco Catalyst 9000 Series Switches, IOS XE Release 17.15.1 ED 思科 Catalyst 9000 交换产品系列 IOS XE 系统软件 请访问原文链接:https://sysin.org/blog/cisco-catalyst-9000/,查看最新版。原创作品,…

dbeaver导出表结构和数据,无需二次操作

1. 对某个数据库右键(示例demo)→工具→转储数据库 2.接着按下面进行操作:3.创建跟上面同名字的数据库: 右键数据库名字-》工具-》执行脚本 导入数据,执行sql文件时报错unknown command \\. 在额外的命令参数中添加下面命令即可: --default-character-set=utf8

Day01 MarkDown语法学习

MarkDown语法学习 标题 #+空格 一级标题 ##+空格 二级标题字体 粗体 **粗体** 斜体 *斜体* 斜体加粗 ***斜体加粗*** 删除线 ~~删除~~ 引用引用 > 引用分割线---或者***图片![截图2](https://cdn.luogu.com.cn/upload/usericon/1.png) 超链接 我的博客 [我的博客](https://w…

Graph Edge Partitioning via Neighborhood Heuristic

目录概符号说明Vertex vs Edge partitioningNE (Neighbor Expansion)代码Zhang C., Wei F., Liu Q., Tang Z. G. and Li Z. Graph edge partitioning via neighborhood heuristic. KDD, 2017.概 本文提出了一种图分割方法 (edge partitioning), 保证只有少量的重复结点. 符号说…

P11020 「LAOI-6」Radiation 题解

一道简单的构造题,其实不用想的十分复杂的说。 首先,最多发射的宇宙射线 \(sum\) 也最多为 \(sum_{max}=min(m,n)\) 也就是说,无论如何摆放石子,也只能达到这个数量。那么我们的目的便变成了如何让石子变成这一个形状。如上图,在一个 \(3\times6\) 的矩阵中,其实只要三颗…

适合科研的团队协作工具:8款实用评测

本文介绍的8款工具如下:1.Worktile;2.PingCode;3.蓝湖;4.智方科研管理系统;5.九云办公;6.和鲸ModelWhale;7.有道云协作;8.Maxhub。在科研项目中,团队协作软件的选择总是让人头疼。市面上有太多工具,不知道哪款更适合自己?每个软件都宣传自己效率高、功能全,但真正好…

精选10款团队协作工具,让合作更高效

本文将介绍10款团队协作工具:1.Worktile;2.PingCode;3.哨子办公;4.智办事;5.曲奇云盘;6.小钉贴;7.协同易;8.BoardMix;9.CORNERSTONE;10.ORGOS。团队合作中总是有很多信息来回传递,却没有一个统一的平台来管理任务和沟通,这不仅让工作效率大打折扣,还可能让团队成员…

1-2Java基本数据类型

Java基本数据类型 变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。因此,通过定义不同类型的变量,可以在内存中储存整数、小数或者字符。 Java 的两大数据…

知识库软件对比:10款适合团队的工具揭秘

本文将介绍10款知识库软件:1.PingCode; 2. Worktile; 3. 亿方云; 4. 掘金文档; 5. 问道文档; 6. 海豚智库; 7. 麦客; 8. Helpjuice; 9. Confluence; 10. FlowUs。如今,团队协作越来越依赖于高效的工具,而一个简单、易用的知识库软件能极大提升工作效率。面对市场上…

南方科技大学院士分析

网页信息获取分析报告 1.Python获取页面信息 这里需要爬取的是南方科技大学研究生院-师资概况页面,使用的是requests和BeautifulSoup方法 以下是要爬取的页面import requests from bs4 import BeautifulSoup import pandas as pd import matplotlib.pyplot as plt import seab…