mybatis基础CURD的学习
2024-10-08 16:57:53
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="dao.IUserDao">
<!-- 重点之一-->
<!-- 配置数据库的列名与实体类中国属性名的对应关系
<resultMap id="userMap" type="bean.User">
主键的配置
<id property="" column="">
非主键的配置
<result property=""column=""></result>
</resultMap> --> <!-- SQL语句
配置查找
提供Sql语句 获取'PreparedSatement'
和返回的类型3
-->
<!--查找所有-->
<select resultType="bean.User" id="findAll">
select * from user
</select> <!--保存用户 插入 parameterType传进去的-->
<insert id="saveUser" parameterType="bean.User">
<!-- insert into user(username)values(#{userName},#{必须与对应的bean中对应})
前面那个user()学过数据库应该都知道该怎么写--> <!--配置插入操作后,获取插入数据的id keyColumn列名称对应表
有它存贮后id从null变成了数据库里存储的id
-->
<selectKey keyProperty="id" keyColumn="id" resultType="int" order="AFTER">
select last_insert_id();
</selectKey> insert into user(username)values(#{userName})
</insert> <update id="updateUser" parameterType="bean.User">
update user set username=#{userName}where id=#{id}
</update>
<!--可以写int可以Integer-->
<delete id="deleteUser" parameterType="int">
<!--可以id 也可以写userId-->
/*一个参数时名字随便写*/
delete from user where id=#{id}
</delete>
<!--根据id查询用户 -->
<select id="findById" parameterType="int" resultType="bean.User">
select * from user where id=#{id}
</select>
<!-- 重点之一-->
<!-- 模糊查询
如果这样写必须写成value,源码里规定
查询时就不需要加%了
select * from user where username like '%${value}%'‘
二者比较
这种使用Statement拼接Sql
下面那个用的时PrateStatement的?预处理方式
-->
<select id="findByName" parameterType="String" resultType="bean.User">
<!-- 传进的参数须带% 此方式更好-->
select * from user where username like #{userName} </select>
<!--获取用户数 -->
<select id="count" resultType="int">
select count(*) from user
</select>
<!-- 重点之一-->
<!-- 对实体类对象包装起来查询-->
<select id="findUserByVo" parameterType="bean.QueryVo" resultType="bean.User">
select * from user where username like #{user.userName}
</select>
</mapper>
许多操作看Sql语句就能明白
学习到了三个重点:
1.模糊查询的俩种方式,一种得在set函数中自己加入%,一个必须严格使用vlaue
2.使用实体类对象包装查询
3.配置数据库与实体类的属性名对应:俩种方式一种Sql语句中起别名,一种写<resultMap>配置,二者优劣:前者执行效率高,后者只写一遍不用每条Sql都写开发好用
最新文章
- EF多对多更新报错(TableNoTracking引发的bug)
- zabbix的配置使用
- IOS Storyboard使用-模拟登录、注册、混合使用
- Python Web.py
- RPC框架motan: 通信框架netty之Netty4Client
- Linux C 程序 字符串函数(12)
- java_jdbc_spring框架查询操作简例
- Direct3D 11的资源
- Qt Creator needs a compiler set up to build. Configure a compiler in the kit options - Stack Overflow
- js继承之原型链继承
- SQL语句 (一)
- Python爬虫入门教程 38-100 教育部高校名单数据爬虫 scrapy
- 【做题】SRM704 Div1 Median - ModEquation——数论
- KazaQ&#39;s Socks (找规律)
- go语言fallthrough的用法心得
- js中级小知识1
- PC/FORTH 变量|常数|数组
- 2018.4.25-ml笔记(梯度下降)
- python 简单的server请求
- get和post的解析