Mybatis 用注解处理CRUD

来源:互联网 发布:宽带多重网络怎么回事 编辑:程序博客网 时间:2024/05/21 03:25

修改config.xml文件:

  <mappers>    <!-- <mapper resource="com/dw/dao/userMapper.xml"/>  -->    <mapper class="com.dw.dao.UserMapper"/>  </mappers>

UserMapper.java:
package com.dw.dao;import java.util.List;import java.util.Map;import org.apache.ibatis.annotations.Delete;import org.apache.ibatis.annotations.Insert;import org.apache.ibatis.annotations.Param;import org.apache.ibatis.annotations.Result;import org.apache.ibatis.annotations.ResultType;import org.apache.ibatis.annotations.Results;import org.apache.ibatis.annotations.Select;import org.apache.ibatis.annotations.Update;import com.dw.entity.User;public interface UserMapper {  @Select("select * from user as u where u.id=#{id}") //数据表中的字段名与实体属性对应可以用这种方法,否则用下一种  //@Select("select id,t_username as username,password from user as u where u.id = #{id}")  @ResultType(User.class)  //可以不写public User selectById(Integer id);    @Select("select * from user")  @Results({ //相当于resultMap ,这里也可以不写,当字段名与属性相同时  @Result(property="username",column="username"),  @Result(property="password",column="password")  })  public List<User> selectAll();    //多参数查询  //@Select("select id,username,password from user as u where u.id=#{0} and u.username=#{1}")  @Select("select id,username,password from user as u where u.id=#{id} and u.username=#{name}")  public User selectByMulParam(@Param("id")Integer id,@Param("name")String name);    @Select("select id,username,password from user as u where u.id=#{a} and u.username=#{b}")  public User selectByMap(Map<String, Object> mp);        @Update("update user as u set u.password=#{pwd} where u.id=#{id}")  public void updateById(@Param("id")Integer id,@Param("pwd")String pwd);    @Update("update user as u set u.password=#{password} where u.id=#{id}")  public void updateByUser(User user);      @Insert("insert into user(username,password) values(#{username},#{password})")  public void insertUser(User user);    @Delete("delete from user where user.username = #{n}")  public void delectUserByName(String name);}

测试:

/*  * 注解配置  */   @Test  public void testSelectById(){  init();  Integer id = 5;  User user = userMapper.selectById(id);  System.out.println(user);  destory();  }  @Test  public void testSelectAll(){  init();  List<User> list = userMapper.selectAll();  for (User user : list) {System.out.println(user);}  destory();  }      @Test  public void testSelectByMulParam(){  init();  Integer id = 5;  String name = "李斯";  User user = userMapper.selectByMulParam(id, name);  System.out.println(user);  destory();  }     @Test  public void testSelectByMap(){  init();  Map<String, Object> mp = new HashMap<>();  mp.put("a", 5);  mp.put("b", "李斯");  User user = userMapper.selectByMap(mp);  System.out.println(user);  destory();  }       @Test  public void testUpdateById(){  init();      Integer id = 5;      String pwd = "hahaha";  userMapper.updateById(id, pwd);  destory();  }       @Test  public void testUpdateByUser(){  init();      User user = new User();      user.setId(5);      user.setPassword("heihei");  userMapper.updateByUser(user);  destory();  }        @Test  public void testInsertUser(){  init();      User user = new User();      user.setUsername("zhoujielun");      user.setPassword("123456");  userMapper.insertUser(user);  destory();  }      @Test  public void testDelectUser(){  init();  userMapper.delectUserByName("zhoujielun");  destory();  }    private void init(){try {inputStream = Resources.getResourceAsStream("config.xml");sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);session = sessionFactory.openSession();//userDao = session.getMapper(UserDao.class);userMapper = session.getMapper(UserMapper.class);} catch (IOException e) {e.printStackTrace();}}private void destory(){if(session != null){session.close();}if(inputStream != null){try {inputStream.close();} catch (IOException e) {e.printStackTrace();}}}  





原创粉丝点击