编写接口

import com.shandx.pojo.User;
import java.util.List; public interface UserMapper {
<span class="hljs-comment">//获取全部的用户</span>
<span class="hljs-function">List&lt;User&gt; <span class="hljs-title">selectUser</span><span class="hljs-params">()</span></span>; <span class="hljs-comment">//通过id查找用户</span>
<span class="hljs-function">User <span class="hljs-title">selectUserById</span><span class="hljs-params">(<span class="hljs-keyword">int</span> id)</span></span>; <span class="hljs-comment">//增加用户</span>
<span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">addUser</span><span class="hljs-params">(User user)</span></span>; <span class="hljs-comment">//通过id删除用户</span>
<span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">deleteUserById</span><span class="hljs-params">(<span class="hljs-keyword">int</span> id)</span></span>; <span class="hljs-comment">//更新用户</span>
<span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">updateUser</span><span class="hljs-params">(User user)</span></span>;

}

对应的mapper语句编写

<?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对应Mapper接口的类-->

<mapper namespace="com.shandx.dao.UserMapper">
<span class="hljs-comment">&lt;!--select标签的id对应映射接口的方法名字  resultType:返回结果的类型  中间就编写sql语句--&gt;</span>
<span class="hljs-comment">&lt;!--获取全部的用户--&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">select</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"selectUser"</span> <span class="hljs-attr">resultType</span>=<span class="hljs-string">"com.shandx.pojo.User"</span>&gt;</span>
select * from user
<span class="hljs-tag">&lt;/<span class="hljs-name">select</span>&gt;</span> <span class="hljs-comment">&lt;!--通过id查找用户--&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">select</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"selectUserById"</span> <span class="hljs-attr">resultType</span>=<span class="hljs-string">"com.shandx.pojo.User"</span>&gt;</span>
select *from user where id=#{id}
<span class="hljs-tag">&lt;/<span class="hljs-name">select</span>&gt;</span> <span class="hljs-comment">&lt;!--增加用户--&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">insert</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"addUser"</span> <span class="hljs-attr">parameterType</span>=<span class="hljs-string">"com.shandx.pojo.User"</span>&gt;</span>
insert into user (id,name,pwd) values (#{id},#{name},#{pwd})
<span class="hljs-tag">&lt;/<span class="hljs-name">insert</span>&gt;</span> <span class="hljs-comment">&lt;!--通过id删除用户--&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">delete</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"deleteUserById"</span> <span class="hljs-attr">parameterType</span>=<span class="hljs-string">"com.shandx.pojo.User"</span>&gt;</span>
delete from user where id=#{id}
<span class="hljs-tag">&lt;/<span class="hljs-name">delete</span>&gt;</span> <span class="hljs-comment">&lt;!--更新用户--&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">update</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"updateUser"</span> <span class="hljs-attr">parameterType</span>=<span class="hljs-string">"com.shandx.pojo.User"</span>&gt;</span>
update user set name=#{name},pwd=#{pwd} where id=#{id}
<span class="hljs-tag">&lt;/<span class="hljs-name">update</span>&gt;</span>

</mapper>

测试类

import com.shandx.dao.UserMapper;
import com.shandx.pojo.User;
import com.shandx.utils.MyBatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;
import java.util.List; public class UserMapperTest {

@Test //获取全部的用户

public void selectUser() {

//1.拿到sqlSessionFactory对象

SqlSessionFactory sqlSessionFactory = MyBatisUtils.getSqlSessionFactory();

//2.通过sqlSessionFactory对象openSession()创建一个sqlSession。

SqlSession sqlSession = sqlSessionFactory.openSession();

//3.通过sqlSession获得mapper对象 , 参数为映射文件对应的接口类的class对象

UserMapper mapper = sqlSession.getMapper(UserMapper.class);

//4.通过mapper对象来执行操作

List<User> users = mapper.selectUser();

//获得结果集

for (User user : users) {

System.out.println(user);

}

}
<span class="hljs-meta">@Test</span> <span class="hljs-comment">//通过id查找用户</span>
<span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> selectUserById(){
SqlSessionFactory sqlSessionFactory = MyBatisUtils.getSqlSessionFactory();
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.<span class="hljs-keyword">class</span>); User user = mapper.selectUserById(<span class="hljs-number">2</span>);
System.out.println(user);
} <span class="hljs-meta">@Test</span> <span class="hljs-comment">//增加用户</span>
<span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> addUser(){
SqlSessionFactory sqlSessionFactory = MyBatisUtils.getSqlSessionFactory();
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.<span class="hljs-keyword">class</span>); User user = <span class="hljs-keyword">new</span> User(<span class="hljs-number">5</span>, <span class="hljs-string">"shandianxia"</span>, <span class="hljs-string">"521"</span>);
<span class="hljs-keyword">int</span> i = mapper.addUser(user);
<span class="hljs-keyword">if</span>(i&gt;<span class="hljs-number">0</span>){
System.out.println(<span class="hljs-string">"插入成功!!!"</span>);
}
sqlSession.commit();<span class="hljs-comment">//提交事务</span>
sqlSession.close();<span class="hljs-comment">//关闭</span>
} <span class="hljs-meta">@Test</span> <span class="hljs-comment">//通过id删除用户</span>
<span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> deleteUserById(){
SqlSessionFactory sqlSessionFactory = MyBatisUtils.getSqlSessionFactory();
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.<span class="hljs-keyword">class</span>); <span class="hljs-keyword">int</span> i = mapper.deleteUserById(<span class="hljs-number">5</span>);
<span class="hljs-keyword">if</span>(i&gt;<span class="hljs-number">0</span>){
System.out.println(<span class="hljs-string">"删除成功!!!"</span>);
}
sqlSession.commit();<span class="hljs-comment">//提交事务</span>
sqlSession.close();<span class="hljs-comment">//关闭</span>
} <span class="hljs-meta">@Test</span> <span class="hljs-comment">//更新用户</span>
<span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> updateUser(){
SqlSessionFactory sqlSessionFactory = MyBatisUtils.getSqlSessionFactory();
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.<span class="hljs-keyword">class</span>); User user = <span class="hljs-keyword">new</span> User(<span class="hljs-number">3</span>, <span class="hljs-string">"雷神"</span>, <span class="hljs-string">"456"</span>);
<span class="hljs-keyword">int</span> i = mapper.updateUser(user);
<span class="hljs-keyword">if</span>(i&gt;<span class="hljs-number">0</span>){
System.out.println(<span class="hljs-string">"更新成功!!!"</span>);
}
sqlSession.commit();<span class="hljs-comment">//提交事务</span>
sqlSession.close();
}

}

总结CRUD注意点

1,增删改查需要提交事务

2,如果出现乱码,先在sql中进行测试,sql没问题,就检查配置文件

jdbc:mysql://localhost:3306/mybatis?
useSSL=true&amp;useUnicode=true&amp;characterEncoding=utf-8"

3,如果是基本数据类型,可以省略,但建议写上,引用类型必须写指定的 包名+类名

MyBatis(2):CRUD操作的更多相关文章

  1. 【MyBatis】MyBatis实现CRUD操作

    1.实现基本CRUD功能 使用MyBatis对数据完整的操作,也就是CRUD功能的实现.根据之前的内容,要想实现CRUD,只需要进行映射文件的配置. 范例:修改EmpMapper.xml文件,实现CR ...

  2. 05 Mybatis的CRUD操作和Mybatis连接池

    1.CRUD的含义 CRUD是指在做计算处理时的增加(Create).读取(Retrieve)(重新得到数据).更新(Update)和删除(Delete)几个单词的首字母简写.主要被用在描述软件系统中 ...

  3. Spring boot 入门四:spring boot 整合mybatis 实现CRUD操作

    开发环境延续上一节的开发环境这里不再做介绍 添加mybatis依赖 <dependency> <groupId>org.mybatis.spring.boot</grou ...

  4. Mybatis:CRUD操作

    提示: Mapper配置文件的命名空间为对应接口包名+接口名字,这个经常会忘记和搞错的!! select标签 在接口中编写三个查询方法 //获取全部用户List<User> selectU ...

  5. MyBatis学习01(初识MyBatis和CRUD操作实现)

    1.初识MyBatis 环境说明: jdk 8 + MySQL 5.7.19 maven-3.6.1 IDEA 学习前需要掌握: JDBC MySQL Java 基础 Maven Junit 什么是M ...

  6. mybatis中crud操作范例

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-/ ...

  7. MyBatis的CRUD操作

    MyBatis的两个主要配置文件 mytatis.xml:放在src目录下,常见的配置如下 <?xml version="1.0" encoding="UTF-8& ...

  8. java之mybatis之使用mybatis实现crud操作

    目录结构: 1.封装 mybatis 的工具类: MybatisUtil.java public class MybatisUtil { private static SqlSessionFactor ...

  9. SSM框架之Mybatis(2)CRUD操作

    Mybatis(2)CRUD 1.基于代理Dao实现CRUD操作 使用要求: 1.持久层接口(src\main\java\dao\IUserDao.java)和持久层接口的映射配置(src\main\ ...

  10. Mybatis的CRUD案例

    一.Mybatis增删改查案例 上一节<Mybatis入门和简单Demo>讲了如何Mybatis的由来,工作流程和一个简单的插入案例,本节主要继上一讲完整的展示Mybatis的CRUD操作 ...

随机推荐

  1. C 函数指针语法总结

    C 函数指针语法总结 函数指针 定义 每一个函数都占用一段内存单元,它们有一个起始地址,指向函数入口地址的指针称为函数指针. 注意:函数指针的本质是一个指针变量,且指针指向的函数的入口地址. 语法 返 ...

  2. 电脑变WIFI:建立虚拟共享WIFI热点可查看WIFI密码windows中使用bat批处理命令提示符cmd创建教程含工具

    台式机也可支持移动热点,Win10却提示"我们无法设置移动热点",今天我们就另辟蹊径来调教它. ​​建立和开启虚拟WIFI共享网络 Windows 7操作系统及以后支持承载网络,可 ...

  3. layui 如果调用 from 内嵌入的 iframe子页面方法

    (人笨,占时想法的办法,不要骂,不要骂,怕了怕了,想到别的会来改的) 父页面; <%@ page language="java" contentType="text ...

  4. 测试平台系列(79) 编写Redis配置功能(下)

    大家好~我是米洛! 我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的完整教程,希望大家多多支持. 欢迎关注我的公众号测试开发坑货,获取最新文章教程! 回顾 上一节我们提出了优化Dao ...

  5. [hdu6995]Travel on Tree

    问题即查询将其按照dfs序排序后,相邻两点(包括首尾)的距离和 考虑使用莫队+set维护,时间复杂度为$o(n\sqrt{n}\log n)$,无法通过 进一步的,注意到删除是可以用链表实现的,因此考 ...

  6. [nowcoder5669E]Eliminate++

    枚举$a_{i}$并判断是否可行,有以下结论:若$a_{i}$可以留下来,一定存在一种合法方案使得$a_{i}$仅参与最后若干次合并,且第一次参与合并前左右都不超过2个数 证明:将大于$a_{i}$的 ...

  7. Vulnhub-Empire: LupinOne题解

    Vulnhub-Empire: LupinOne题解 本靶机为Vulnhub上Empire系列之LupinOne,地址:EMPIRE: LUPINONE 扫描与发现 利用arp-scan命令扫描靶机I ...

  8. Protocol Buffer序列化Java框架-Protostuff

    了解Protocol Buffer 首先要知道什么是Protocol Buffer,在编程过程中,当涉及数据交换时,我们往往需要将对象进行序列化然后再传输.常见的序列化的格式有JSON,XML等,这些 ...

  9. [TopCoder2014Final]FrozenStandings 解法探究

    https://vjudge.net/problem/TopCoder-13460 简要题意:给出 \(n\) 段从 \(1\) 到 \(n\) 编号的等长区间,保证区间的端点互不相同.区间可以选取其 ...

  10. Congratulations, FYMS-OIers!

    Fuzhou Yan'an Middle School Online Judge 又一次上线啦! 真的是一波三折,主要功劳必须得属于精通网页编排.ubuntu 下如何使用 rm -rf 语句但是又能够 ...