zoukankan      html  css  js  c++  java
  • 增删改查

    MyBatis 映射并不能用注解来构建

    1|11. select

    接口方法声明:

    import com.yyh.pojo.User; import org.apache.ibatis.annotations.Select; public interface UserMapper2 { @Select("select * from kuser where id = #{id}") public User selectUserByID(int id); }

    测试方法:

    @Test public void selectTest(){ SqlSession session = factory.openSession(); UserMapper2 mapper = session.getMapper(UserMapper2.class); User user = mapper.selectUserByID(2); System.out.println(user); session.close(); }

    不要忘记注册这个接口到全局配置中

    <mappers> <mapper class="com.yyh.mapper.UserMapper2"/> </mappers>

    1|22. sql语句多个参数

    接口方法声明:

    @Select("select * from kuser where sex = #{sex} and name like '%${name}%'") public List<User> selectUserBySexAndName(@Param("sex") String sex, @Param("name") String name);

    测试方法:

    @Test public void selectTest2(){ SqlSession session = factory.openSession(); UserMapper2 mapper = session.getMapper(UserMapper2.class); List<User> users = mapper.selectUserBySexAndName("1","张"); System.out.println(users); session.close(); }

    当sql语句需要多个参数时则必须将多个参数打包到一个对象中,通常是POJO或Map,上面的案例中使用了@Param注解本质就是告诉MyBatis有多个参数MyBatis会自动创建一个Map,然后将@Param的值作为Key,然后将Map传给sql,你也可以手动传一个Map

    接口方法声明:

    @Select("select * from kuser where sex = #{sex} and name like '%${name}%'") public List<User> selectUserBySexAndName(Map<String,Object> params);

    测试方法:

    @Test public void selectTest2(){ SqlSession session = factory.openSession(); UserMapper2 mapper = session.getMapper(UserMapper2.class); Map<String,Object> params = new HashMap<>(); //存储参数的Map params.put("sex","1"); params.put("name","张"); List<User> users = mapper.selectUserBySexAndName(params); System.out.println(users); session.close(); }

    1|33. insert

    接口方法声明:

    @Insert("insert into kuser values(null,#{name},#{birthday},#{sex},#{address})") public int insertUser(User user);

    测试方法:

    @Test public void insertTest() { SqlSession session = factory.openSession(); UserMapper2 mapper = session.getMapper(UserMapper2.class); User user = new User(); user.setName("jerry"); user.setSex("1"); user.setAddress("亚洲中国"); user.setBirthday(new Date()); mapper.insertUser(user); session.commit(); session.close(); }

    1|0获取自增主键

    在@select注解的下方添加@selectKey注解来完成对自增主键的获取

    @Insert("insert into kuser values(null,#{name},#{birthday},#{sex},#{address})") @SelectKey(statement = "select last_insert_id()",keyProperty = "id",resultType = Integer.class,before = false) public int insertUser(User user);

    在执行insert之后执行last_insert_id()函数获取自增值,然后放入对象的某个属性中;

    1|44. update

    接口方法声明:

    @Update("update kuser set name = #{name}, birthday = #{birthday}, sex = #{sex}, address = #{address} where id = #{id}") public int updateUser(User u); // 如果一行太长可以换行些 但是要注意sql语法

    测试方法:

    @Test public void updateTest() { SqlSession session = factory.openSession(); UserMapper2 mapper = session.getMapper(UserMapper2.class); User user = mapper.selectUserByID(1); user.setName("王六子"); mapper.updateUser(user); session.commit(); session.close(); }

    1|55.delete

    接口方法声明:

    @Delete("delete from kuser where id = #{id}") public int deleteUserByID(int id);

    测试方法:

    @Test public void deleteTest() { SqlSession session = factory.openSession(); UserMapper2 mapper = session.getMapper(UserMapper2.class); mapper.deleteUserByID(12); session.commit(); session.close(); }
  • 相关阅读:
    智能安全实验室-全能优化(Guardio) 3.8.0.460:紧急修复功能列表点击“导出(/列表)”出现错误的问题
    Guardio全能优化3.2.0.400
    智能安全实验室-全能优化(Guardio) 3.8.0.482:修正部分错误
    智能安全实验室-Defendio杀马2.4.0.420-实时防护-内存防护、新浏览器导航界面
    智能安全实验室-杀马(Defendio) 2.3.0.409 :任务计划,用户可以定时对指定目标进行扫描、智能更新等
    微软同步框架入门之五使用WCF同步远程数据
    微软同步框架入门之四冲突(Conflict)检测和处理
    小A是支枪,子弹未打光之"步枪"篇
    微软同步框架入门之三分析生成的同步类文件
    微软同步框架入门之二增量和修改同步方式
  • 原文地址:https://www.cnblogs.com/huaobin/p/14162752.html
Copyright © 2011-2022 走看看