上一节我们演示了通过使用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方法来返回操作对象