zoukankan      html  css  js  c++  java
  • 3.mybatis注解

    在上篇2.mybatis入门实例(一) 连接数据库进行查询的基础上

    1.添加Mapper接口:UserMapper接口,并使用mybatis的注解

    import java.util.List;
    
    import org.apache.ibatis.annotations.Delete;
    import org.apache.ibatis.annotations.Insert;
    import org.apache.ibatis.annotations.Select;
    import org.apache.ibatis.annotations.Update;
    
    import com.mlxs.mybatis.test1.User;
    
    /**
     * 采用注解方式
     * @author 魅力_小生
     *
     */
    public interface UserMapper {
        @Insert("insert into users(name,age) values(#{name},#{age})")
        public int add(User user);
        
        @Delete("delete from users where id=#{id}")
        public int delete(int id);
        
        @Update("update users set name=#{name}, age=#{age} where id=#{id}")
        public int update(User user);
        
        @Select("select * from users where id=#{id}")
        public User get(int id);
        
        @Select("select * from users")
        public List<User> getAll();
    }

    封装获取session的静态类:

    public class MyBatisUtil {
        
        //创建sqlSessionFactory
        private static SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(getConfig());
        
        private static Reader getConfig(){
            //加载conf.xml文件
            try {
                return Resources.getResourceAsReader("conf.xml");
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
        
        /**
         * 单例,对外开放,获取session工厂
         * @return
         */
        public static SqlSessionFactory  getSessionFactory(){
            return sessionFactory;
        }
    }

    2.在conf.xml的mappers标签中添加上面的Mapper注解接口:

    <mapper class="com.mlxs.mybatis.test2.UserMapper" />

    3.测试

    import org.apache.ibatis.session.SqlSession;
    import org.junit.Test;
    
    import com.mlxs.mybatis.test1.User;
    import com.mlxs.mybatis.util.MyBatisUtil;
    
    public class _Test3Annotation {
        
        @Test
        public void addUser(){
            //创建session,设置事务为true
            SqlSession session = MyBatisUtil.getSessionFactory().openSession(true);
            UserMapper mapper = session.getMapper(UserMapper.class);
            int add = mapper.add(new User(0, "llp", 26));
            System.out.println("add--->"+add);
            session.close();
        }
        @Test
        public void delUser(){
            //创建session,设置事务为true
            SqlSession session = MyBatisUtil.getSessionFactory().openSession(true);
            UserMapper mapper = session.getMapper(UserMapper.class);
            int del = mapper.delete(6);
            System.out.println("del--->"+del);
            session.close();
        }
        @Test
        public void updateUser(){
            //创建session,设置事务为true
            SqlSession session = MyBatisUtil.getSessionFactory().openSession(true);
            UserMapper mapper = session.getMapper(UserMapper.class);
            int update = mapper.update(new User(7, "llp2", 27));
            System.out.println("update--->"+update);
            session.close();
        }
        @Test
        public void getUser(){
            //创建session,设置事务为true
            SqlSession session = MyBatisUtil.getSessionFactory().openSession(true);
            UserMapper mapper = session.getMapper(UserMapper.class);
            User user = mapper.get(2);
            System.out.println("user--->"+user);
            session.close();
        }
        @Test
        public void getAll(){
            //创建session,设置事务为true
            SqlSession session = MyBatisUtil.getSessionFactory().openSession(true);
            UserMapper mapper = session.getMapper(UserMapper.class);
            List<User> list = mapper.getAll();
            System.out.println("list--->"+list);
            session.close();
        }
        
    }
    逃避不一定躲得过,面对不一定最难过
  • 相关阅读:
    dubbo源码解析-spi(3)
    dubbo源码解析-spi(二)
    dubbo源码解析-spi(一)
    java-nio之zero copy深入分析
    Java SPI(Service Provider Interface)简介
    分析 Java heap dump工具之IBM HeapAnalyzer
    深入理解分布式事务
    NIO中的heap Buffer和direct Buffer区别
    Guava之Iterables使用示例
    Android开发中常见的设计模式 MD
  • 原文地址:https://www.cnblogs.com/yangzhenlong/p/5205308.html
Copyright © 2011-2022 走看看