mybatis基础CURD的学习
<?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都写开发好用
mybatis基础CURD的学习的更多相关文章
- Mybatis基础进阶学习2
Mybatis基础进阶学习2 1.测试基本结构 2.三个POJO package com.pojo; import java.io.Serializable; import java.util.Dat ...
- Mybatis基础入门学习
Mybatis基础入门学习 mybatis架构分析 搭建测试mybatis架构 )下载并导入mybatis3.2.7.jar(架构),mysql-connector-java-5.1.7-bin.ja ...
- mybatis基础系列(一)——mybatis入门
好久不发博客了,写博文的一个好处是能让心静下来,整理下之前学习过的一些知识一起分享,大神路过~ mybatis简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射. ...
- MyBatis基础入门《十二》删除数据 - @Param参数
MyBatis基础入门<十二>删除数据 - @Param参数 描述: 删除数据,这里使用了@Param这个注解,其实在代码中,不使用这个注解也可以的.只是为了学习这个@Param注解,为此 ...
- MyBatis基础入门《五》核心配置文件
MyBatis基础入门<五>核心配置文件 描述: 在前面的章节中,简单的学习使用了一下mybatis,对于配置文件没有过多详细说明. 这里先描述项目中的一个核心配置文件:mybatis-c ...
- MyBatis基础入门《二》Select查询
MyBatis基础入门<二>Select查询 使用MySQL数据库,创建表: SET NAMES utf8mb4; ; -- ---------------------------- -- ...
- 零基础如何系统学习Java Web
零基础如何系统学习Java Web? 我来给你说一说 你要下决心,我要转行做开发,这样你才能学成. 你要会打字,我公司原来有一个程序员,打字都是两个手一指禅,身为程序员你一指禅怎么写出的代码,半个 ...
- myBatis 基础测试 表关联关系配置 集合 测试
myBatis 基础测试 表关联关系配置 集合 测试 测试myelipse项目源码 sql 下载 http://download.csdn.net/detail/liangrui1988/599388 ...
- ASP.NET基础之HttpHandler学习
ASP.NET基础之HttpHandler学习 经过前两篇[ASP.NET基础之HttpModule学习]和[ASP.NET基础之HttpContext学习]文章的学习我们对ASP.NET的基础内容有 ...
随机推荐
- Outer()函数
转载:https://bbs.pinggu.org/thread-7078237-1-1.html R语言中的outer()函数,名为内积函数,但是他执行的功能并不是解析几何中的内积.那该函数到底发挥 ...
- 【深入】 - AST抽象语法树
参考: https://segmentfault.com/a/1190000016231512
- 前端学习笔记系列一:15vscode汉化、快速复制行、网页背景图有效设置、 dl~dt~dd标签使用
ctrl+shift+p,调出configure display language,选择en或zh,若没有则选择安装使用其它语言,则直接呼出扩展程序搜索界面,选择,然后安装,重启即可. shift+a ...
- 最简单的mybatis增删改查样例
最简单的mybatis增删改查样例 Book.java package com.bookstore.app; import java.io.Serializable; public class Boo ...
- 开发工具类(eclipse、安卓SDK) 镜像站
1.eclipse 中国科技大学:http://mirrors.ustc.edu.cn/eclipse/ 中国科学院:http://mirrors.opencas.cn/eclipse/ 东北大学:h ...
- define可变参数,float数据传输
define可变参数 一般在调试打印Debug信息的时候, 需要可变参数的宏. 从C99开始可以使编译器标准支持可变参数宏(variadic macros), 另外GCC也支持可变参数宏, 但是两种在 ...
- jvm问题汇总
1.软引用.弱引用.虚引用-他们的特点及应用场景?
- Java笔记--基础
1.Java中内存的基本结构: 栈(stack):存放局部变量.对象的引用: 堆(heap):new出来的东西(对象) 方法区:常量池等 静态域:全局变量等 变量在其生命周期结束后将出栈,此时堆中的空 ...
- Mongoose多表查询
文章来自 两个表关联查询aggregate 多个表关联查询aggregate populate多表关联查询 多表查询的两个方式 一个是aggregate聚合 一个是populate Schema的外表 ...
- Day6 - D - Tree 园丁的烦恼 HYSBZ - 1935
很久很久以前,在遥远的大陆上有一个美丽的国家.统治着这个美丽国家的国王是一个园艺爱好者,在他的皇家花园里种植着各种奇花异草.有一天国王漫步在花园里,若有所思,他问一个园丁道: “最近我在思索一个问题, ...