Mybatis注解3

在刚开始学习Mybatis注解的时候,总是遇到错误Type interface com.souvi.ibatis.xxxMapper is not known to the MapperRegistry,在网上搜索相关的解决方案时,得到的答案都不怎么详细,但知道了Mybatis注解一定要注册自己写的接口类,不然就会老报开头提到的这个错误。经过一段时间的学习后,想在这里和大家分享一下mybatis注解的使用,以基础数据的增、删、改、查为例。

第一,要写一个接口,这个接口不需要对应的实现类,在方法上写上对应的增(@Insert),删(@Delete),改(@Update),查(@Select);

第二,配置好Configuration.xml文件;

第三,写一个测试类,读入configuration.xml,创建一个SqlSessionFactory对象,由SqlSessionFactory对象对数据库进行操作。在进行数据库操作之前,一定要注册第一步中的接口,不然系统无法识别我们自己写的接口。

以下是详细的代码:

//PersonMapper 接口
public interface PersonMapper {
 @Select("SELECT * FROM person")
 public List<Person> getAll();

 @Select("SELECT * FROM person WHERE id = #{id}")
 public Person getPerson(@Param("id") int id);

 @Update("UPDATE person SET sex=#{sex} WHERE id = #{id}")
 public int updPerson(@Param("id")int id,@Param("sex") String sex);

 @Insert("INSERT INTO person(id,age,sex,name,password) VALUES(null,#{age},#{sex},#{name},#{password})")
 public void insertPerson (Person p);

 @Select("DELETE FROM person WHERE id=#{id}")
 public void delPerson(@Param("id")int id);

 @Update("UPDATE person SET sex=#{sex}, name=#{name},age=#{age}, password=#{password}  WHERE id=#{id}")
 public void updatePerson(Person p);

}

测试类

public class PersonImpl{
 public static void main(String[] args) {
  SqlSessionFactory factory = null; InputStream is = TestIbatis.class.
                           getClassLoader().getResourceAsStream("Configuration.xml");
  factory = new SqlSessionFactoryBuilder().build(is);
  //使用注解的时候一定要将XXXMapper注册一下,跟XML配置namespace一样
  factory.getConfiguration().addMapper(PersonMapper.class);

  //如果不注册Mapper的话,老是报Type interface com.souvi.ibatis.xxxMapper is 

                         //not known to the MapperRegistry异常
  SqlSession sqlSession = factory.openSession();
  PersonMapper mp = sqlSession.getMapper(PersonMapper.class);
  Person person = new Person();
  person.setId(1);
  person.setName("杨辉");
  person.setAge(100);
  mp.updatePerson(person);
  sqlSession.commit();
 }
}
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值