MyBatis(2):CRUD操作
编写接口
import com.shandx.pojo.User;
import java.util.List; public interface UserMapper {<span class="hljs-comment">//获取全部的用户</span>
<span class="hljs-function">List<User> <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"><!--select标签的id对应映射接口的方法名字 resultType:返回结果的类型 中间就编写sql语句--></span>
<span class="hljs-comment"><!--获取全部的用户--></span>
<span class="hljs-tag"><<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>></span>
select * from user
<span class="hljs-tag"></<span class="hljs-name">select</span>></span> <span class="hljs-comment"><!--通过id查找用户--></span>
<span class="hljs-tag"><<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>></span>
select *from user where id=#{id}
<span class="hljs-tag"></<span class="hljs-name">select</span>></span> <span class="hljs-comment"><!--增加用户--></span>
<span class="hljs-tag"><<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>></span>
insert into user (id,name,pwd) values (#{id},#{name},#{pwd})
<span class="hljs-tag"></<span class="hljs-name">insert</span>></span> <span class="hljs-comment"><!--通过id删除用户--></span>
<span class="hljs-tag"><<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>></span>
delete from user where id=#{id}
<span class="hljs-tag"></<span class="hljs-name">delete</span>></span> <span class="hljs-comment"><!--更新用户--></span>
<span class="hljs-tag"><<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>></span>
update user set name=#{name},pwd=#{pwd} where id=#{id}
<span class="hljs-tag"></<span class="hljs-name">update</span>></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><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><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><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&useUnicode=true&characterEncoding=utf-8"
3,如果是基本数据类型,可以省略,但建议写上,引用类型必须写指定的 包名+类名
MyBatis(2):CRUD操作的更多相关文章
- 【MyBatis】MyBatis实现CRUD操作
1.实现基本CRUD功能 使用MyBatis对数据完整的操作,也就是CRUD功能的实现.根据之前的内容,要想实现CRUD,只需要进行映射文件的配置. 范例:修改EmpMapper.xml文件,实现CR ...
- 05 Mybatis的CRUD操作和Mybatis连接池
1.CRUD的含义 CRUD是指在做计算处理时的增加(Create).读取(Retrieve)(重新得到数据).更新(Update)和删除(Delete)几个单词的首字母简写.主要被用在描述软件系统中 ...
- Spring boot 入门四:spring boot 整合mybatis 实现CRUD操作
开发环境延续上一节的开发环境这里不再做介绍 添加mybatis依赖 <dependency> <groupId>org.mybatis.spring.boot</grou ...
- Mybatis:CRUD操作
提示: Mapper配置文件的命名空间为对应接口包名+接口名字,这个经常会忘记和搞错的!! select标签 在接口中编写三个查询方法 //获取全部用户List<User> selectU ...
- MyBatis学习01(初识MyBatis和CRUD操作实现)
1.初识MyBatis 环境说明: jdk 8 + MySQL 5.7.19 maven-3.6.1 IDEA 学习前需要掌握: JDBC MySQL Java 基础 Maven Junit 什么是M ...
- mybatis中crud操作范例
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-/ ...
- MyBatis的CRUD操作
MyBatis的两个主要配置文件 mytatis.xml:放在src目录下,常见的配置如下 <?xml version="1.0" encoding="UTF-8& ...
- java之mybatis之使用mybatis实现crud操作
目录结构: 1.封装 mybatis 的工具类: MybatisUtil.java public class MybatisUtil { private static SqlSessionFactor ...
- SSM框架之Mybatis(2)CRUD操作
Mybatis(2)CRUD 1.基于代理Dao实现CRUD操作 使用要求: 1.持久层接口(src\main\java\dao\IUserDao.java)和持久层接口的映射配置(src\main\ ...
- Mybatis的CRUD案例
一.Mybatis增删改查案例 上一节<Mybatis入门和简单Demo>讲了如何Mybatis的由来,工作流程和一个简单的插入案例,本节主要继上一讲完整的展示Mybatis的CRUD操作 ...
随机推荐
- kafaka高效吞吐量-生产端,服务端,消费端
零拷贝:sendfile 生产端 生产端:消息压缩,缓存批量发送,异步解耦 多线程并发:防止某一个业务阻塞等待 接收消息缓存 BufferPool设计:不释放 服务端 Reactor模型,顺序写,页缓 ...
- maven添加代理,默认的.m2路径
Maven设置http代理 编辑~/.m2/settings.xml文件,添加如下配置 找到 <proxies> 节点.去掉相应的注释,设置代理信息如下: 1 <proxy> ...
- 2021CISCN 华南赛区WEB wp
CISCN 华南区域赛 太菜了 我躺平了 easy_seri <?php error_reporting(0); highlight_file(__FILE__); class Test{ pu ...
- flower 指定app
flower 指定app # tasks.py from celery import Celery celery = Celery(broker="amqp://", backen ...
- Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create()
在Java中处理JSON格式的数据时,Google Gson 是个不错的选择,用起来挺方便的,也有一定灵活性.我现在工作中在参与的两个项目里都有用它.不过它在处理Date格式时有个小陷阱,在不同环境 ...
- 暑假算法练习Day6
最近开始了实验室的生活,并且学习了bullet journal.希望接下来的每一天都能完成所有的任务. 1012 数字分类 (20 分) 给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数 ...
- [Apache Doris] Apache Doris 元数据设计及DDL操作源码阅读
元数据设计 如上图,Doris 的元数据主要存储4类数据: 用户数据信息.包括数据库.表的 Schema.分片信息等. 各类作业信息.如导入作业,Clone 作业.SchemaChange 作业等. ...
- python实现图像直方图
目录: (一)直方图的使用 正文: (一)直方图的使用 1 from matplotlib import pyplot as plt 2 def plot_demo(image): 3 print(i ...
- cmd命令配置MySQL
当安装完MySql后,每次windows启动的时候都会将MySql服务启动起来. 如果是winxp则不需要使用管理员权限既可以很简单的打开和关闭,具体在cmd中敲入命令: 1.启动MySql服务: n ...
- [atARC114F]Permutation Division
由于是排列,即任意两个数字都各不相同,因此字典序最大的$q_{i}$就是将每一段的第一个数从大到小排序 接下来,考虑第一个元素,也就是每一段开头的最大值,分类讨论: 1.当$p_{1}\le k$时, ...