栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Mybatis实现简单的增删改查(Mapper接口方式)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mybatis实现简单的增删改查(Mapper接口方式)

学习目标:实现简单的增删改查

前言:实现增删改查以及总记录查询问题


代码:

结构图:

Customer实体类:

package com.test.po;

public class Customer {
	private int id;
	private String username;
	private String jobs;
	private String phone;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getJobs() {
		return jobs;
	}
	public void setJobs(String jobs) {
		this.jobs = jobs;
	}
	public String getPhone() {
		return phone;
	}
	public void setPhone(String phone) {
		this.phone = phone;
	}
	//将对象内容转换成字符串
	@Override
	public String toString() {
		return "Customer [id=" + id + ", username=" + username + ", jobs="
				+ jobs + ", phone=" + phone + "]";
	}
	
}

CustomerMapper.xml:



 

 
 
 
 
 select * from Customer where username like '%'+#{username}+'%'
 
   
 	insert into customer(username,jobs,phone) values(#{username},#{jobs},#{phone})
 
 
 UPDATE customer SET username=#{username},jobs=#{jobs},phone=#{phone} WHERe id=#{id}
 
   
 	 delete from customer where id = #{id}
 

CustomerMapper接口:

package com.test.mapper;

import java.util.List;

import com.test.po.Customer;

public interface CustomerMapper {
	//按照id查询客户信息
	Customer findCustomerById(int id);
	//按照客户名模糊查询客户信息
	List findCustomerByName(String username);
	//增加客户信息
	int addCustomer(Customer customer);
	//修改客户信息
	int updateCustomer(Customer customer);
	//删除客户信息
	int deleteCustomerById(int id);
	
}

MyBatisTest测试类:

package com.test.test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

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.test.mapper.CustomerMapper;
import com.test.po.Customer;

public class MybatisTest {
	//Junit 是java语言的单元测试框架
	//@Test这个注释说明依附在Junit的public void方法可以作为一个测试案例
	//单元测试是一个对单一实体的测试(类或方法)
	@Test
	public void findCustomerByIdTest() throws IOException{
		//1.读取配置文件
		String resource = "mybatis-config.xml";
		InputStream inputStream = Resources.getResourceAsStream(resource);
		//2根据配置文件构建SqlSessionFactory
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		SqlSession sqlsession = sqlSessionFactory.openSession();
		//3.sqlsession执行映射文件中的SQL,并返回映射结果
		
		CustomerMapper customerMapper=sqlsession.getMapper(CustomerMapper.class);
		Customer customer = customerMapper.findCustomerById(1);
		System.out.println(customer.toString());
		//4.关闭sqlsession
		sqlsession.close();
	}
	//模糊查询
	@Test
	public void findCustomerByNameTest() throws IOException{
		//1.读取配置文件
		String resource = "mybatis-config.xml";
		InputStream inputStream = Resources.getResourceAsStream(resource);
		//2根据配置文件构建SqlSessionFactory
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		SqlSession sqlsession = sqlSessionFactory.openSession();
		//3.sqlsession执行映射文件中的SQL,并返回映射结果
		
		CustomerMapper customerMapper=sqlsession.getMapper(CustomerMapper.class);
		List list = customerMapper.findCustomerByName("小");
	
		for (Customer customer : list) {
            System.out.println(customer.toString());
            }
		//4.关闭sqlsession
		sqlsession.close();
	}
	//插入
	@Test
	public void addCustomerTest() throws IOException{
		//1.读取配置文件
		String resource = "mybatis-config.xml";
		InputStream inputStream = Resources.getResourceAsStream(resource);
		//2根据配置文件构建SqlSessionFactory
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		SqlSession sqlsession = sqlSessionFactory.openSession();
		//3.创建customer对象,并向对象中添加数据
		Customer customer = new Customer();
		customer.setUsername("小张");
		customer.setJobs("幼儿园老师");
		customer.setPhone("122");
		 //4.insert 返回影响的行数
		 
		CustomerMapper customerMapper=sqlsession.getMapper(CustomerMapper.class);
		int rows= customerMapper.addCustomer(customer);
		 //5.通过返回结果判断插入操作是否成功
		 if(rows>0){
		 System.out.println("成功插入了"+rows+"条数据");
		 }else{
			 System.out.println("插入失败");
		 }
		 //6.提交事物
		 sqlsession.commit();
		//7.关闭sqlsession
		sqlsession.close();
	}
	//更新
	@Test
	public void updateCustomerTest() throws IOException{
		//1.读取配置文件
		String resource = "mybatis-config.xml";
		InputStream inputStream = Resources.getResourceAsStream(resource);
		//2根据配置文件构建SqlSessionFactory
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		SqlSession sqlsession = sqlSessionFactory.openSession();
		//3.创建customer对象,并向对象中添加数据
		Customer customer = new Customer();
		customer.setId(2);
		customer.setUsername("小p");
		customer.setJobs("幼儿园老师");
		customer.setPhone("122");
		 //4.insert 返回影响的行数
		 
		CustomerMapper customerMapper=sqlsession.getMapper(CustomerMapper.class);
		int rows= customerMapper.updateCustomer(customer);
		 //5.通过返回结果判断插入操作是否成功
		 if(rows>0){
		 System.out.println("成功更新了"+rows+"条数据");
		 }else{
			 System.out.println("更新失败");
		 }
		 //6.提交事物
		 sqlsession.commit();
		//7.关闭sqlsession
		sqlsession.close();
	}
	//根据id删除
		@Test
		public void deleteCustomerByIdTest() throws IOException{
			//1.读取配置文件
			String resource = "mybatis-config.xml";
			InputStream inputStream = Resources.getResourceAsStream(resource);
			//2根据配置文件构建SqlSessionFactory
			SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
			SqlSession sqlsession = sqlSessionFactory.openSession();
			 //4.insert 返回影响的行数
//			 int rows= sqlsession.delete("com.test.mapper.CusotmerMapper.deleteCustomerById",7);
			CustomerMapper customerMapper=sqlsession.getMapper(CustomerMapper.class);
			int rows = customerMapper.deleteCustomerById(10);
			 //5.通过返回结果判断插入操作是否成功
			 if(rows>0){
			 System.out.println("成功删除了"+rows+"条数据");
			 }else{
				 System.out.println("删除失败");
			 }
			 //6.提交事物
			 sqlsession.commit();
			//7.关闭sqlsession
			sqlsession.close();
		}
}

部分运行截图:

常见问题:

查询表总记录时SELECT count(1) FROM product 测试类运行时只显示
DEBUG [main] - ==> Preparing: SELECt count(1) FROM product
DEBUG [main] - ==> Parameters:
原因在于未指定sql输出结果类型 resultType
成功后显示如下:
DEBUG [main] - ==> Preparing: SELECt count(1) FROM product
DEBUG [main] - > Parameters:
DEBUG [main] - <
Total: 1
总记录数为:3

   
 	SELECT count(1) FROM product
 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/284195.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号