zoukankan      html  css  js  c++  java
  • mybatis 之 实现单表的增删改查操作

    1. Mybatis 实现单表的crud操作,只需要添加对应的 sql 映射即可。
      <mapper namespace="cn.wh.mapper.RoleMapper">
          <!-- 根据id查询 -->
          <select id="findById" parameterType="int" resultType="cn.wh.vo.Role">
              select * from t_role where id = #{id}
          </select>
          <!-- 添加  添加成功,将返回受影响行数 
              占位符中 是自定义类型的属性名  自定义要提供get方法
              useGeneratedKeys 设置为true,表示主键自增
          -->
          <insert id="save" useGeneratedKeys="true" parameterType="cn.wh.vo.Role">
              insert into t_role(name) values(#{name})
          </insert>
          <!-- 删除数据 -->
          <delete id="delete" parameterType="int">
              delete from t_role where id=#{id}
          </delete>
          <!-- 更新 -->
          <update id="update" parameterType="cn.wh.vo.Role">
              update t_role set name=#{name} where id=#{id}
          </update>
          <!-- 查询所有 -->
          <select id="findAll" resultType="cn.wh.vo.Role">
              select * from t_role
          </select>
      </mapper>
    2. 工具类:
      /**
       * Mybatis的工具类
      */
      public class MybatisUtil {
          private static SqlSessionFactory sessionFactory=null;
          private static ThreadLocal<SqlSession> session = new ThreadLocal<SqlSession>();
          static{
              try {
                  Reader reader = Resources.getResourceAsReader("mybatis.cfg.xml");
                  sessionFactory = new SqlSessionFactoryBuilder().build(reader);
              } catch (IOException e) {
                  e.printStackTrace();
              }
          }
          /**
           * 获取SQLSession
           * @return
           */
          public static SqlSession getSqlSession(){
              if(session.get()==null){
                  //如果设置true,那么获得session时,告知 自动提交事务
                  session.set(sessionFactory.openSession(true));
              }
              return session.get();
          }
          /**
           * 释放资源
           */
          public static void close(){
              if(session.get()!=null){
                  session.get().close();
                  session.set(null);
              }
          }
      }
    3. 测试类:
      public class RoleDaoTest {
          private SqlSession session=null;
          @Before
          public void setUp(){
              session = MybatisUtil.getSqlSession();
          }
          @After
          public void tearDown(){
              MybatisUtil.close();
          }
          //查询所有
          @Test
          public void testFindAll(){
              List<Role> list = session.selectList("cn.wh.mapper.RoleMapper.findAll");
              for(Role role:list){
                  System.out.println(role.getId()+"----"+role.getName());
              }
          }
          //保存数据
          @Test
          public void testSave(){
              Role role = new Role();
              role.setName("黄金会员");
              int result = session.insert("cn.wh.mapper.RoleMapper.save",role);
              //session.commit();手动提交事务,如果不手动提交事务,那么在获取session时,设置自动提交事务
              if(result>0){
                  System.out.println("保存成功");
              }
          }
          //更新数据
          @Test
          public void testUpdate(){
              Role role = (Role)session.selectOne("cn.wh.mapper.RoleMapper.findById", 4);
              role.setName("砖石会员");
              int result = session.update("cn.wh.mapper.RoleMapper.update",role);
              //session.commit();手动提交事务,如果不手动提交事务,那么在获取session时,设置自动提交事务
              if(result>0){
                  System.out.println("修改成功");
              }
          }
          //删除数据
          @Test
          public void testDelete(){
              int result = session.delete("cn.wh.mapper.RoleMapper.delete",4);
              //session.commit();手动提交事务,如果不手动提交事务,那么在获取session时,设置自动提交事务
              if(result>0){
                  System.out.println("删除成功");
              }
          }
      }
  • 相关阅读:
    (23)odoo中的domain表达式
    (11)lambda表达式用法
    (22)odoo 安装旧模块报错处理
    (21)odoo中的QWeb模板引擎
    (10)列表操作
    (09)异常处理
    (08)文件与目录
    (07)内存使用和变量赋值
    (06)正则表达式
    vue router路由(三)
  • 原文地址:https://www.cnblogs.com/forever2h/p/6795302.html
Copyright © 2011-2022 走看看