Spring Mvc那点事---(12)Spring Mvc之mybatis使用注解进行增删改查

       上一节我们演示了通过使用Mapper配置文件进行数据的增删改查,实际上还有另一种方法,mybatis为我们提供注解来操作数据库,这样我们就不要在mapper.xml中进行SQL语句配置,只需要在接口方法中使用mybatis注解进行操作,mybatis为我们提供了@Select @Update @Delete @Insert等多种注解,下面我们定义了一个接口,并在接口中定义了相应的增删改查方法。

           

public interface ISkusMapper {
	
	//添加
	@Insert("INSERT INTO skus (skuname,skucode)  VALUES (#{SkuName},#{SkuCode})")
	public int AddSku(skus sku);
	
	//更新
	@Update("UPDATE skus SET skuname=#{SkuName} WHERE SkuCode=#{SkuCode}")
	public int UpdateSku(skus sku);
	
	//删除
	@Delete("DELETE FROM skus WHERE SkuCode=#{_parameter}")
	public int DelSku(String SkuCode);
	
	//根据ID获取单个SKU 
	@Select("  SELECT * FROM skus WHERE  id=#{id}")
	public skus GetSingleSku(int id);
	
	//查询所有数据
	@Select("SELECT Id,SkuName,SkuCode FROM skus ")
	public List<skus> GetList();
	

}
    接下来注册接口

<?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">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <!-- 配置数据库连接信息  url中的erp为数据名称-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/erp?useUnicode=true&characterEncoding=utf8" />
                <property name="username" value="root" />
                <property name="password" value="123456" />
            </dataSource>
        </environment>
    </environments>
    
     <mappers>
      
        <!-- 注册操作接口 -->
        <mapper class="com.testone.Controller.ISkusMapper"/>
    </mappers>

</configuration>
     接下来我们编写JAVA方法调用接口

     

package com.testone.Controller;

import java.io.InputStream;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import dto.skus;

@Controller
@RequestMapping("/DataOperation")
public class DataOperationController {
	
	//添加
	@RequestMapping(value="AddSku")
	public String AddSku()
	{
		    String resource = "/conf.xml";
	        //加载mybatis的配置文件
	        InputStream inputstream =this.getClass().getResourceAsStream(resource);
	       
	        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputstream);
	      
	        SqlSession session = sessionFactory.openSession();
	       
	        ISkusMapper mapper=session.getMapper(ISkusMapper.class);

	        skus sku=new skus();
	        sku.setSkuName("New Balance 运动鞋");
	        sku.setSkuCode("00003");
	        int result =mapper.AddSku(sku);
	        session.commit();
            session.close();
	        System.out.println(result);
	    	return "index";
	}
	
	@RequestMapping(value="UpdateSku")
	public String UpdateSku()
	{
		    String resource = "/conf.xml";
	        //加载mybatis的配置文件
	        InputStream inputstream =this.getClass().getResourceAsStream(resource);
	       
	        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputstream);
	      
	        SqlSession session = sessionFactory.openSession();
	       
	        ISkusMapper mapper=session.getMapper(ISkusMapper.class);
	        
	      
	        skus sku=new skus();
	        sku.setSkuName("New Balance 运动鞋 574系列");
	        sku.setSkuCode("00003");
	        int result =mapper.UpdateSku(sku);
	        
	        session.commit();
            session.close();
	        System.out.println(result);
	    	return "index";
	}
	
	
	@RequestMapping(value="DelSku")
	public String DelSku()
	{
		    String resource = "/conf.xml";
	        //加载mybatis的配置文件
	        InputStream inputstream =this.getClass().getResourceAsStream(resource);
	       
	        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputstream);
	      
	        SqlSession session = sessionFactory.openSession();
	       
	        ISkusMapper mapper=session.getMapper(ISkusMapper.class);
	        
	        
	        int result =mapper.DelSku("00003");
	        session.commit();
            session.close();
	        System.out.println(result);
	    	return "index";
	}
	
	@RequestMapping(value="GetSingelSku")
	public String GetSingelSku()
	{
		 String resource = "/conf.xml";
	        //加载mybatis的配置文件
	        InputStream inputstream =this.getClass().getResourceAsStream(resource);
	       
	        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputstream);
	      
	        SqlSession session = sessionFactory.openSession();
	       
	        ISkusMapper mapper=session.getMapper(ISkusMapper.class);
	        
	        skus sku =mapper.GetSingleSku(1);
	        session.commit();
         session.close();
	        System.out.println(sku.getSkuName());
	    	return "index";
		
	}
	
	@RequestMapping(value="List")
	public String List()
	{
		    String resource = "/conf.xml";
	        //加载mybatis的配置文件
	        InputStream inputstream =this.getClass().getResourceAsStream(resource);
	       
	        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputstream);
	      
	        SqlSession session = sessionFactory.openSession();
	       
	        String statesql= "mapping.skusMapper.getList";//在skusMapper.xml中有命名空间+方法名
	        
	        ISkusMapper mapper=session.getMapper(ISkusMapper.class);
	        
	        java.util.List<skus> listResult=mapper.GetList();
	        session.commit();
            session.close();
	        
            for(dto.skus item:listResult)
            {
                   System.out.print(item.getId()+"--"+item.getSkuCode()+"--"+item.getSkuName());
            	    System.out.print("--------------");
            }
           
	    	return "index";
	}
	

}
     主要使用SqlSession的getMapper方法来返回操作对象

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值