mybatis框架实现数据库的增删查改

本文详细介绍了使用MyBatis框架进行数据库操作的具体步骤,包括不使用接口和注解、使用接口开发以及使用注解的方式,涵盖了数据库的增删查改等核心功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mybatis框架实现数据库的增删查改


(一)不使用接口和注解

1.准备数据库
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.创建maven工程
在这里插入图片描述
在这里插入图片描述
3.在pom文件中引入需要的依赖
在这里插入图片描述

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.lsh</groupId>
  <artifactId>MYBATIS-1</artifactId>
  <version>0.0.1-SNAPSHOT</version>
   <dependencies>
    <dependency>
  		<groupId>mysql</groupId>
	    <artifactId>mysql-connector-java</artifactId>
  		<version>5.1.32</version>
  	</dependency>
  	<dependency>
  		<groupId>org.mybatis</groupId>
  		<artifactId>mybatis</artifactId>
  		<version>3.5.2</version>
  	</dependency>
  		<dependency>
  		<groupId>junit</groupId>
  		<artifactId>junit</artifactId>
  		<version>4.12</version>
  	</dependency>
  </dependencies>
</project>

4.在resource目录下创建mybatis核心配置文件
在这里插入图片描述
在这里插入图片描述
5.配置mybatis-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- mybatis 核心配置 -->
<configuration>
  <!-- 配置初始化环境(连接) -->
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <!-- 使用mybatis自带连接池 -->
      <dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url"  value="jdbc:mysql:///user?characterEncoding=utf-8"/>
        <property name="username" value="root"/>
        <property name="password" value="root"/>
      </dataSource>
    </environment>
  </environments>
</configuration>

6.创建实体类User,用于封装数据
在这里插入图片描述

package com.lsh.pojo;

public class User {
		private Integer id;
		private String name;
		private String sex;
		public Integer getId() {
			return id;
		}
		public void setId(Integer id) {
			this.id = id;
		}
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		public String getSex() {
			return sex;
		}
		public void setSex(String sex) {
			this.sex = sex;
		}
		@Override
		public String toString() {
			return "User [id=" + id + ", name=" + name + ", sex=" + sex + "]";
		}
	}

7.创建User的映射文件(Mapper/UserMapper.xml),并添加要执行的SQL语句

在这里插入图片描述

<?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="BlogMapper">
	 <!-- 插入一条记录 -->
	 <insert id="insertUser">
	 	insert into user value(#{id},#{name},#{sex})
	 </insert>
</mapper>

8.在mybatis核心配置文件中添加(注册)映射文件UserMapper.xml
在这里插入图片描述
在这里插入图片描述

<mappers>
  <mapper resource="Mapper/UserMapper.xml"/>
  </mappers>

9.创建测试类测试mybatis框架

在这里插入图片描述

package com.lsh;

import java.io.IOException;
import java.io.InputStream;
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.Test;

import com.lsh.pojo.User;

public class testMybatis{
	private SqlSessionFactory sqlSessionFactory;
	private SqlSession sqlSession=null;
	{
		InputStream inputStream=null;
		String resource = "mybatis-config.xml";
		try {
			//读取mybatis-config.xml文件保存到文件流对象
			inputStream = Resources.getResourceAsStream(resource);
		} catch (IOException e) {
			e.printStackTrace();
		}
		//根据对象中封装的信息创建sqlSessionFactory
		sqlSessionFactory = new SqlSessionFactoryBuilder().
				build(inputStream);
		//基于sqlSessionFactory创建sqlSession,类似于JDBC中的Connection
		sqlSession = sqlSessionFactory.openSession();
	}
	/**
	 * 执行此方法插入一条数据
	 */
	@Test
	public void InsertUser(){
		//准备数据user
		User user=new User();
		user.setId(1);
		user.setName("张三");
		user.setSex("男");
		//startement的值为mybatis-config.xml中的
		//namespace和要执行的SQL语句的id
		String statement="BlogMapper.insertUser";
		//执行插入语句
		int rows = sqlSession.insert(statement, user);
		//提交事务
		sqlSession.commit();
		System.out.println("受影响行数"+rows);
	}
}

@Test如何执行?在有@Test注解的方法上双击选中方法名,再run as
在这里插入图片描述
执行结果:
在这里插入图片描述
在这里插入图片描述
10.增加查询所有记录的方法
1)在UserMapper中增加查询的SQL语句
在这里插入图片描述

<!-- 查询所有记录,封装到resultType中,值为封装数据的实体类的
包路径名+类名 -->
	 <select id="findAll" resultType="com.lsh.pojo.User">
	 	select * from user
	 </select>

2)在testMybatis中添加查询所有记录的方法
在这里插入图片描述

	/**
	 * 执行此方法查询所有表记录
	 */
	@Test
	public void queryAll(){
		String statement="BlogMapper.findAll";
		//执行查询,封装到List集合
		List<Object> userList = sqlSession.selectList(statement);
		//输出到控制台
		for (Object user : userList) {
			System.out.println(user);
		}
	}

执行结果:
在这里插入图片描述

(二)使用接口开发
1.添加UserMapper接口并在其中添加修改的方法
在这里插入图片描述
2.修改UserMapper.xml文件中的namespace,并添加修改的SQL语句
在这里插入图片描述
需要注意的是:修改SQL语句的id必须和接口中的方法名相同,否则底层无法匹配
在这里插入图片描述
3.在testMybatis中添加修改的方法

/**
	 * 执行此方法修改相应记录
	 */
	@Test
	public void modUser() {
		//准备要修改的数据
		User user=new User();
		user.setId(1);
		user.setName("查尔斯");
		user.setSex("女");
		//获取接口
		UserMapper mapper = sqlSession.
				getMapper(UserMapper.class);
		//执行修改操作
		int rows = mapper.updateUser(user);
		sqlSession.commit();
		System.out.println("受影响行数"+rows);
	}

执行结果:
在这里插入图片描述
在这里插入图片描述
4.重复上面的步骤完成删除
1)在UserMapper.xml文件中添加删除的SQL

 <!-- 根据id删除记录 -->
	 <delete id="deleteUser">
	 delete from user where id=#{id}
	 </delete>

2)在UserMapper接口中添加删除的方法
在这里插入图片描述
3)在testMybatis中完成删除功能

	/**
	 * 执行此方法删除相应记录
	 */
	@Test
	public void deleteId(){
		UserMapper mapper = sqlSession.getMapper
		(UserMapper.class);
		//删除id为1的记录
		int rows = mapper.deleteUser(1);
		sqlSession.commit();
		System.out.println("受影响行数"+rows);
	}

执行结果:
在这里插入图片描述
在这里插入图片描述
(三)使用注解
1.根据id查询单条记录
1)在接口中添加查询单条记录的方法
在这里插入图片描述
2)在testMybatis中完成该功能
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值