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();
        }
        
    }
    逃避不一定躲得过,面对不一定最难过
  • 相关阅读:
    使用C#实现DHT磁力搜索的BT种子后端管理程序+数据库设计(开源)
    便携版WinSCP在命令行下同步文件夹
    ffmpeg (ffprobe)分析文件关键帧时间点
    sqlite删除数据或者表后,回收数据库文件大小
    ubuntu 20.04下 freeswitch 配合 fail2ban 防恶意访问
    ffmpeg使用nvenc编码的结论记录
    PC版跑跑卡丁车 故事模式 亚瑟传说章节 卡美洛庆典 2阶段 心灵之眼 攻略
    There was an error loading or playing the video
    Nvidia RTX Voice 启动报错修复方法
    火狐浏览器 关闭跨域限制
  • 原文地址:https://www.cnblogs.com/yangzhenlong/p/5205308.html
Copyright © 2011-2022 走看看