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的基础内容有 ...
随机推荐
- java并发之CopyOnWriteArraySet
java并发之CopyOnWriteArraySet CopyOnWriteArraySet是基于CopyOnWriteArrayList实现的,持有CopyOnWriteArrayList的内部对象 ...
- Lesson 48 Planning a share portfolio
How does the older investor differ in his approach to investment from the younger investor? There is ...
- vue前端项目初始化的步骤
前端项目初始化的步骤 1. 安装vue脚手架 2.通过vue脚手架创建项目 可以直接 vue create 项目名 也可以 vue ui 3.配置vue路由 4.配置Element-ui 组件 ...
- ubuntu安装discourse论坛----结合在apache服务上建立虚拟主机
指导操作:https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md 一.先安装 Docker / Git: wg ...
- 单片机ADC检测4-20mA电路,以及计算方法
单片机ADC检测4-20mA电路,以及计算方法 转载:https://www.hongchangzidonghua.com/?id=24 1,手里有一个4-20mA输出的压力传感器,假设测量范围是0M ...
- 第1节 IMPALA:1、impala的基本介绍
impala的介绍: impala是cloudera公司开源提供的一款高效率的sql查询工具 impala可以兼容hive的绝大多数的语法,可以完全的替代表hive impala与hive的关系:紧耦 ...
- gitbook简单教程
简介 GitBook 是一个基于 Node.js 的命令行工具,可使用 Github/Git 和 Markdown 来制作精美的电子书.GitBook支持输出以下几种文档格式 静态站点:GitBook ...
- .net core文件系统简介
在asp.net core程序中,我们可以通过如下代码开启对Web 根目录内的文件静态访问功能: app.UseStaticFiles(); 如果要提供更高级的选项,例如:将其它的物理文件夹下的文件作 ...
- js封装、继承
封装:http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_encapsulation.html 继承:http://ww ...
- Golang的基础数据类型-字符型
Golang的基础数据类型-字符型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.字符型概述 Go语言中的字符有两种,即uint8类型和rune类型. uint8类型: 我们也 ...