关于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,一经查实,立即删除!

相关文章

一起学RISC-V汇编第6讲之伪指令列表

一起学RISC-V汇编第6讲之伪指令 伪指令是方便程序员使用,相当于为实际指令取的别名,编程时可以直接使用伪指令。 上一章已经列出了RISC-V中的伪指令,只是比较分散,这一章以另一个视角重新整理一下伪指令,表格来源于《RISC-V 开放架构设计之道 1.0.0》 1 RISC-V伪指令列表 …

业界十大知名权威安全漏洞库介绍

https://mp.weixin.qq.com/s/xBS9jy_UdTKKzpWtfOt3xg

GraalVM的资料

官网An advanced JDK with ahead-of-time Native Image compilation.代码社区下载主页文档主页GraalVM compiles your Java applications ahead of time into standalone binaries. These binaries are smaller, start up to 100x faster, provide peak performance with no wa…

SciTech-Methodology

https://plato.stanford.edu/entries/scientific-method/

NOIP2024模拟赛5 总结

NOIP2024模拟赛5 总结 T1 天才俱乐部 特判了 \(sum - s < 0\),但没有考虑 \(sum - s = 0\)。挂为 0pts。T2 实战教学 由于写的不够优,贪心+二分的思路 TLE 了。 由于不明原因,输出 \(\max(a_i + b_i)\) 能过。 非常神奇。T3 穿越银匙之门T4 绳网委托

线程同步(互斥锁、读写锁、条件变量、信号量)

互斥锁、读写锁、条件变量、信号量一、为什么要线程同步?

20240908

20210908T1 NFLSOJ 服装 考虑逐次确定每个人。从前往后枚举,维护一个栈表示当前前缀里所有颜色不同的人。加入一个人的时候和栈里的东西并起来查,查出来是栈大小说明这个颜色出现过,在栈里二分找到那个颜色相同的人。否则当前颜色没出现过,将其加入栈。代码 #include <…

诈尸随笔

败犬女主太多了 昨天和女朋友一起看了六集败犬女主的动漫,制作好太加分了 她代入温水觉得作为小雏男给大伙解决情感问题很cool,可是我代入温水(的经历)真的会喜欢上老八(老八真是个尤物...后面忘了),然后在朋友宣言那里就只能说痛,太痛了温水:我们做朋友吧,老八:抱歉…