用MyBatis来操作crud
文章目录
- 一、查询表记录
- 1、在映射器配置文件里引入结果映射元素
- 2、添加按姓名查询用户记录功能,更新,查找,删除
- 3、在UserMapper接口里增加插入、更新、删除方法
- 4、在测试类TestUserMapper里添加测试方法
- 运行效果
一、查询表记录
1、在映射器配置文件里引入结果映射元素
2、添加按姓名查询用户记录功能,更新,查找,删除
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.tp.mybatis.mapper.UserMapper"><resultMap id="UserMap" type="User"><result column="id" property="id"/><result column="name" property="name"/><result column="age" property="age"/><result column="address" property="address"/></resultMap><select id="findById" parameterType="int" resultType="User">SELECT * FROM t_user WHERE id = #{id};</select><select id="findAll" resultType="User">SELECT * FROM t_user;</select><select id="findByName" parameterType="string" resultType="User">SELECT *FROM t_user where name like concat (#{name},"%");</select><insert id="insert" parameterType="User"useGeneratedKeys="true" keyProperty="id">insert into t_user(name ,age,address)value (#{name},#{age},#{address});</insert><update id="update" parameterType="User">UPDATE t_user SET name =#{name}, age=#{age},address =#{address} where id=#{id};</update><delete id="deleteById" parameterType="int">DELETE FROM t_user WHERE id=#{id};</delete>
</mapper>
3、在UserMapper接口里增加插入、更新、删除方法
package net.tp.mybatis.mapper;import net.tp.mybatis.bean.User;
import org.apache.ibatis.annotations.Select;import java.util.List;
/*** 功能:用户映射器接口* 作者:tp* 日期:2021年03月04日*/
public interface UserMapper {// @Select("SELECT * FROM t_user;")List<User> findAll();//@Select(" SELECT * FROM t_user WHERE id = #{id}")User findById(int id);List<User> findByName(String name);int insert (User user);int update(User user);int deleteById(int id);
}
4、在测试类TestUserMapper里添加测试方法
package net.tp.mybatis.mapper;import net.tp.mybatis.bean.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;import java.io.IOException;
import java.io.Reader;
import java.util.List;/*** 功能:测试用户映射器接口* 作者:tp* 日期:2021年03月04日*/
public class TestUserMapper {private SqlSession sqlSession; // SQL会话private UserMapper userMapper; // 用户映射器@Beforepublic void init() {try {// 读取MyBatis配置文件作为字符输入流Reader reader = Resources.getResourceAsReader("mybatis-config.xml");// 基于MyBatis配置文件构建SQL会话工厂SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);// 利用SQL会话工厂获取SQL会话sqlSession = factory.openSession();// 利用SQL会话获取用户映射器对象userMapper = sqlSession.getMapper(UserMapper.class);// 提示用户SQL会话对象创建成功System.out.println("sqlSession对象已创建。");} catch (IOException e) {e.printStackTrace();}}@Testpublic void testFindById() {int id = 1;User user = userMapper.findById(id);if (user != null) {System.out.println(user);} else {System.out.println("编号为[" + id + "]的用户未找到。");}}@Testpublic void testFindAll() {List<User> users = userMapper.findAll();users.forEach(user -> System.out.println(user));}@Testpublic void testFindName(){String name= "王";List<User> users =userMapper.findByName(name);if (users.size() >0){users.forEach(user -> System.out.println(user));}else {System.out.println("没有找到姓名为:["+name+"]的记录!");}}@Testpublic void testInsert(){User user =new User();user.setName("王雨涵");user.setAge(30);user.setAddress("龙马潭区长桥路2号宿舍");int count =userMapper.insert(user);sqlSession.commit();//提交数据库操作if(count>0){System.out.println("记录插入成功!");System.out.println("插入的新记录:"+user);}else {System.out.println("插入失败!");}}@Testpublic void testUpdate(){User user=userMapper.findById(4);System.out.println("更新前的记录:"+user);user.setName("萌萌");user.setAge(18);user.setAddress("北京市朝阳区北苑路6号楼");int count =userMapper.update(user);sqlSession.commit();//提交数据库操作if(count>0){System.out.println("记录更新成功!");System.out.println("更新后的记录:"+user);}else {System.out.println("更新失败!");}}@Testpublic void testDeleteById(){int id = 4;User user =userMapper.findById(id);System.out.println("待删除的记录:"+user);userMapper.deleteById(id);sqlSession.commit();//提交数据库操作System.out.println("编号为["+id+"]的记录删除成功!");user=userMapper.findById(id);if (user != null) {System.out.println(user);} else {System.out.println("编号为[" + id + "]的用户未找到。");}}@Afterpublic void destroy() {// 关闭SQL会话sqlSession.close();// 提示用户SQL会话对象关闭System.out.println("sqlSession对象已关闭。");}}
运行效果
用MyBatis来操作crud相关推荐
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对u ...
- MyBatis学习总结(2)——使用MyBatis对表执行CRUD操作
一.使用MyBatis对表执行CRUD操作--基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下:
- Mybatis框架实现CRUD操作
Mybatis框架实现CRUD操作 自定义mybatis流程 mybatis基于代理dao的CRUD操作(重点) E:\JAVAworkspace\mybatis_CRUD CRUD中可能遇到的问题: ...
- 爬梯:MyBatis全操作
学习资源整理自:B站<狂神说> 扎实基础,将Mybatis全面走一遍! Mybatis中文官网 MyBatis全操作 1.Hello MyBatis 数据库表环境 CREATE TABLE ...
- MyBatis知多少(22)MyBatis删除操作
本节从表中使用MyBatis删除记录. 我们已经在MySQL下有EMPLOYEE表: 1 CREATE TABLE EMPLOYEE ( 2 id INT NOT NULL auto_incremen ...
- MyBatis 实现增删CRUD
七.MyBatis 实现增删CRUD 概念复习 1.1 功能:从应用程序角度出发,软件具有哪些功能. 1.2 业务:完成功能时的逻辑.对应 Service 中一个方法 1.3 事务:从数据库角度出发, ...
- 【高校宿舍管理系统】第二章 整合Mybatis和写CRUD的基本流程以及使用代码生成器生成Mapper等相关代码
第二章 整合Mybatis和写CRUD的基本流程以及使用代码生成器生成Mapper等相关代码 提示:本博客个为人独立博客,不是权威,仅供参考!所有思路只做交流之用!如有不足之处,望各位在评论区友善指正 ...
- JavaWeb【Mybatis】Mybatis的操作步骤
Mybatis的操作步骤 mybatis开发流程 1.创建SqlSessionFactoryBuilder对象 2.创建SqlSessionFactory对象 3.加载SqlMapConfig.xml ...
- mybatis crud_MyBatis教程– CRUD操作和映射关系–第1部分
mybatis crud CRUD操作 MyBatis是一个SQL Mapper工具,与直接使用JDBC相比,它极大地简化了数据库编程. 步骤1:创建一个Maven项目并配置MyBatis依赖项. & ...
最新文章
- python cx_oracle 有超时的设置吗_python cx_Oracle的基础使用方法(连接和增删改查)
- python使用matplotlib可视化线图(line plot)、移除可视化结果的所有坐标轴信息(remove all axis in matplotlib graph)
- oracle, to_char(), to_number, ORA_01722
- pycharm控制台调试程序
- 百度地图的实现,IIS6.0,.net4.0 无法使用POST和GET
- asp java.class,以下不属于Java程序结构文件的是()。A.asp文件B.java文件C.class文件D.jar文件...
- python PIL.Image使用
- 【Java面试题】19 final,finally和finalize的区别
- 全文搜索引擎有哪些?_你想要拥有自己的搜索引擎吗?
- 跨平台最好用笔记软件——Simplenote
- 轻量函数式 JavaScript:十、函数式异步
- Openbox-桌面图标设置
- 树莓派如何接硬盘_树莓派添加USB外接硬盘
- 第2章 HashMap集合
- 闭锁 java_Java并发编程之闭锁
- 一文彻底掌握时间复杂度和大O表示法
- 什么是EE(exploration and exploitation)问题
- 大豆技术面分析_技术贴 | GIS三维视域分析—面要素
- 云米AI洗碗机Iron A1 AI消毒除菌版上手体验
- HSV与HSI颜色空间的区别以及和RGB之间的转换