• 编写接口
  • 编写对应的Mapper.xml中的sql语句
  • 测试(增删改需要提交事务)
<mapper namespace="com.perwrj.dao.UserMapper">
<!-- 查询 id=“重写的方法名” resultType=“返回值类型(全类名)” -->
<select id="getUserList" resultType="com.perwrj.pojo.User">
select * from mybatis.user
</select>
</mapper>
  • id:就是对应的namespace中的方法名
  • resultType:sql语句的返回值类型
  • parameterType:传入参数的类型
package com.perwrj.dao;

import java.util.List;

import com.perwrj.pojo.User;

public interface UserMapper {
// 查询全部用户
List<User> getUserList();
// 根据id查询用户
User getUserById(int id);
// 添加一个用户
int addUser(User user);
// 修改用户
int updateUser(User user);
// 删除用户
int deleteUser(int id);
}
<?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">
<!-- namespace绑定一个对应的Mapper/Dao接口 -->
<mapper namespace="com.perwrj.dao.UserMapper">
<!-- 查询 id=“重写的方法名” resultType=“返回值类型(全类名)” -->
<select id="getUserList" resultType="com.perwrj.pojo.User">
select * from mybatis.user
</select> <select id="getUserById" parameterType="int" resultType="com.perwrj.pojo.User">
select * from mybatis.user where id = #{id}
</select>
<!-- 对象中的属性可以直接取出来 -->
<insert id="addUser" parameterType="com.perwrj.pojo.User">
insert into mybatis.user (id,name,pwd) values (#{id},#{name},#{pwd})
</insert> <update id="updateUser" parameterType="com.perwrj.pojo.User">
update mybatis.user set name = #{name},pwd = #{pwd} where id = #{id}
</update> <delete id="deleteUser" parameterType="int">
delete from mybatis.user where id = #{id}
</delete>
</mapper>
package com.perwrj.dao;

import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.junit.Test; import com.perwrj.pojo.User;
import com.perwrj.utils.MyBatisUtil; public class UserMapperTest {
@Test
public void test() {
//获得SqlSession对象,
SqlSession sqlSession = MyBatisUtil.getSqlSession(); try {
// 方式一:getMapper执行sql:更加简洁,类型更加安全,推荐使用 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); List<User>
userList = userMapper.getUserList(); for (User user : userList) { System.out.println(user); } //方式一结束 // 方式二:老方法,不建议使用,
/*
* List<User> list =
* sqlSession.selectList("com.perwrj.dao.UserMapper.getUserList");
*
* for (User object : list) { System.out.println(object); }
*/
//方式二结束
}catch(Throwable e) {
e.printStackTrace();
}finally {
// 关闭sqlSession
sqlSession.close();
}
}
/**
* 删除操作
*/
@Test
public void deleteUserTest() {
SqlSession sqlSession = MyBatisUtil.getSqlSession(); try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
int num = userMapper.deleteUser(4);
if(num > 0) {
// 提交事务
System.out.println(num);//1
sqlSession.commit();
sqlSession.close();
}
}catch(Throwable e) {
e.printStackTrace();
}finally {
sqlSession.close();
}
} /**
* 改操作
*/
@Test
public void updateUserTest() {
SqlSession sqlSession = MyBatisUtil.getSqlSession(); try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
int num = userMapper.updateUser(new User(2,"杰瑞","987654"));
if(num > 0) {
// 提交事务
System.out.println(num);//1
sqlSession.commit();
sqlSession.close();
}
}catch(Throwable e) {
e.printStackTrace();
}finally {
sqlSession.close();
}
} /**
* 增删改需要提交事务
*/
@Test
public void addUserTest() {
SqlSession sqlSession = MyBatisUtil.getSqlSession(); try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
int num = userMapper.addUser(new User(4,"王瑞杰","123568"));
if(num > 0) {
// 提交事务
System.out.println(num);//1
sqlSession.commit();
sqlSession.close();
}
}catch(Throwable e) {
e.printStackTrace();
}finally {
sqlSession.close();
}
} @Test
public void testGetUserById() {
//获得SqlSession对象,
SqlSession sqlSession = MyBatisUtil.getSqlSession(); try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.getUserById(1);
System.out.println(user);
}catch(Throwable e) {
e.printStackTrace();
}finally {
sqlSession.close();
}
} }

初窥MyBatis-普通的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. 初窥Mybatis初始化

    引言 这篇文章呢,主要是讲Mybtais的两种方式的源码剖析:传统方式以及Mapper代理方式,初次探索Mybatis源码,希望大佬勿喷并且指正错误,谢谢! 个人博客:www.fqcoder.cn 一 ...

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

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

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

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

  6. Mybatis:CRUD操作

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

  7. mybatis中crud操作范例

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

  8. MyBatis的CRUD操作

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

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

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

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

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

随机推荐

  1. 8.PowerShell DSC之Push

    前言 LCM的默认mode就是push,所以对于push模式,我们直接就三步走 以下是示例: 1.编写配置 Authoring Configuration WebsiteTest { # Import ...

  2. Vue的七种传值方式

    目录 1,父传子 2,子传父 3,兄弟组件传值 4,父组件使用子组件的数据和方法 5,子组件使用父组件的数据和方法 6,Vuex传值 6.1,定义store 6.2,挂载 6.3,使用 7,路由传值 ...

  3. python-零基础入门-自学笔记

    目录 第一章:计算机基础 1.1 硬件组成 1.2 操作系统分类 1.3 解释型和编译型介绍 第二章:Python入门 2.1 介绍 2.2 python涉及领域 2.2.1 哪些公司有使用Pytho ...

  4. 微软大楼设计方案(中等) 推公式+RMQ问题

    近日,微软新大楼的设计方案正在广泛征集中,其中一种方案格外引人注目.在这个方案中,大楼由 nn 栋楼组成,这些楼从左至右连成一排,编号依次为 11 到 nn,其中第 ii 栋楼有 h_ih​i​​层. ...

  5. js bitwise operation all in one

    js bitwise operation all in one 位运算 & 按位与 | 按位或 ^ 按位异或 / XOR let a = 5; // 000000000000000000000 ...

  6. qrcode & console.log

    qrcode & console.log image https://fs-api.lightyy.com/service/utils/qrcode?url=http://169.254.13 ...

  7. svg rect to polygon points & points order bug

    svg rect to polygon points & points order bug https://codepen.io/xgqfrms/pen/vYOWjYr?editors=100 ...

  8. 人物传记-BILL RAY:低谷时的信念,决定你能走多远

    自2018年全球经济危机以来,以工作为重的成年人们一直备受打击.尤其是2020年,全球贸易争端使得经济下滑严重,很多公司倒闭破产,有些人甚至从富豪变成了负债者,走向了人生低谷.其实,每个人都会遇到人生 ...

  9. java基础第12期——反射、注解

    一. 反射 反射: 将类的各个组成部分封装为其他对象. 1.1 获取class对象的方式 Class.forName("全类名"): 将字节码文件加载进内存,返回class对象 多 ...

  10. net字符串倒置和冒泡排序

    using System;using System.Configuration;using System.Data;using System.Linq;using System.Web;using S ...