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的基础内容有 ...
随机推荐
- 常用的HBase命令
进入HBase shell:hbase shell 退出HBase shell:exit 查看HBase中所有的表:list 查看某个表中的记录总数:count 'table name' 查看某个表中 ...
- Windows系统(服务器)忘记管理员登录密码:
windows sever2003忘记密码:使用老毛桃PE进入然后修改密码,重启即可. windows sever2008忘记密码:可按该网址的方法即可解决:http://www.jb51.net/a ...
- (3)LoraWAN:链路控制、SF BW CR
三.Introduction on LoRaWAN options 本文件描述了一种用于可为移动的或固定在一个固定位置的电池供电的终端设备而优化的LoRaWAN™网络协议.LORA™是一个由Semte ...
- taucs库的使用方法(VS2012)
第一步:到taucs主页下载taucs,我下载的是:Version 2.2 of the code, with external libraries 第二步:在visual studio tools下 ...
- 使用JavaScript和Canvas打造真实的雨滴效果
使用JavaScript和Canvas打造真实的雨滴效果 寸志 · 1 年前 我最近搞了一个有趣的项目——rainyday.js .我认为这个项目并不怎么样,而且,事实上这是我第一次尝试接触一些比弹窗 ...
- 认识python中的super函数
需求分析 在类继承中,存在这么一种情况: class Human(object): def Move(self): print("我会走路...") class Man(Human ...
- Emergency
题意:有N个点,M条边,每个点有权值,问从起点到终点最短路的个数以及权值最大的最短路的权值. 分析:修改Dijstra模板. #include<bits/stdc++.h> using n ...
- 51nod 1416:两点 深搜
1416 两点 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 福克斯在玩一款手机解迷游戏,这个游戏叫做" ...
- pytorch & numpy广播法则
广播法则 所有数组向维度最高的数组看齐,若维度不足则在最前面的维度用1补齐 扩展维度后,所有数组在某一维度相同或者长度为1,否则不能计算 当可以计算时,将长度为1的维度扩展为另一数组相应维度的长度 a ...
- java执行操作系统脚本
http://www.cnblogs.com/bencakes/p/6139477.html 以前只是知道Runtime.getRuntime().exec(command);这种用法,但是有时候命令 ...