mybatis CRUD 실현

21565 단어 #ssm 프레임 워 크
mybatis CRUD 실현
1. 단일 데이터 조회
    @Test
    public void testFindById(){
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();

        SqlSessionFactory sqlSessionFactory = builder.build(AppTest.class.getClassLoader().getResourceAsStream("SqlMapConfig.xml"));

        SqlSession sqlSession = sqlSessionFactory.openSession();

        User u = sqlSession.selectOne("user.findById", 2);

        System.out.println(u);


    }
}
    <select id="findById" parameterType="int" resultType="com.shenhao.domain.User">
        select * from user where id=#{id}
    </select>

2. 간단 한 like 검색
    @Test
    public void testFindByLike(){
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();

        SqlSessionFactory sqlSessionFactory = builder.build(AppTest.class.getClassLoader().getResourceAsStream("SqlMapConfig.xml"));

        SqlSession sqlSession = sqlSessionFactory.openSession();

        List<User> list = sqlSession.selectList("user.findByLike", "% %");

        System.out.println(list);


    }
    <select id="findByLike" parameterType="String" resultType="com.shenhao.domain.User">
        select * from user where username like #{username}
    </select>

3. $와 \ # 의 차이 점 \ # {}:
\ # {} 은 Prepared Statement 의 자리 표시 자 와 같 습 니까?,들 어 오 는 문자열 데이터 에 작은 따옴표 한 쌍 을 자동 으로 추가 하여 Sql 주입 을 피 할 수 있 습 니 다.
예 를 들 어 select * from user where username = \ # {username}, 들 어 오 는 username 은 작은 장 입 니 다. 그러면 마지막 으로 인쇄 된 것 은 select * from user where username = '작은 장' 입 니 다.
\ # {} 간단 한 형식 값 이나 Pojo 속성 값 을 받 을 수 있 습 니 다.parameterType 이 하나의 간단 한 형식 값 을 전송 하면 \ # {} 괄호 에 임의의 이름 이 있 을 수 있 습 니 다.
${} 에 대하 여:
${} 들 어 오 는 데 이 터 를 Sql 에 직접 표시 합 니 다. 간단 한 연결 일 뿐 입 니 다.예 를 들 어 order by ${id}, 들 어 오 는 값 이 id 라면 Sql 을 order by id 로 해석 합 니 다.
위의 예 에서 ${} 을 사용 하면 select * from user where username = 소장 이 됩 니 다.
$는 간단 한 형식 값 이나 Pojo 속성 값 을 받 을 수 있 습 니 다. parameterType 이 하나의 간단 한 형식 값 을 전송 하면 ${} 괄호 에 'value' 라 는 문자열 만 있 을 수 있 습 니 다.
요약: $방식 은 일반적으로 데이터베이스 대상 에 전 송 됩 니 다. 예 를 들 어 표 이름, orderby 필드 는 일반적으로 \ # 을 사용 할 수 있 으 면 $를 사용 하지 마 십시오.
4. 저장 작업
    @Test
    public void testSave(){
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();

        SqlSessionFactory sqlSessionFactory = builder.build(AppTest.class.getClassLoader().getResourceAsStream("SqlMapConfig.xml"));

        SqlSession sqlSession = sqlSessionFactory.openSession();

        User user = new User();
        user.setUsername("  ");
        user.setSex("1");
        user.setBirthday(new Date());
        user.setAddress("  ");

        sqlSession.insert("user.save",user);

        sqlSession.commit();

        sqlSession.close();


    }
    <insert id="save" parameterType="com.shenhao.domain.User">
        
        insert into user VALUES (null,#{username},#{sex},#{birthday},#{address})
    </insert>

5. 성장 id 가 져 오 는 값 저장
    <insert id="save" parameterType="com.shenhao.domain.User">
        <selectKey resultType="int" keyProperty="id" order="AFTER">
            select last_insert_id()
        </selectKey>
        insert into user VALUES (null,#{username},#{sex},#{birthday},#{address})
    </insert>

6. 조작 수정
 @Test
    public void testUpdate(){
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();

        SqlSessionFactory sqlSessionFactory = builder.build(AppTest.class.getClassLoader().getResourceAsStream("SqlMapConfig.xml"));

        SqlSession sqlSession = sqlSessionFactory.openSession();

        User user = new User();
        user.setUsername("  ");
        user.setId(28);

        sqlSession.update("user.updateUsernameById",user);

        sqlSession.commit();

        sqlSession.close();


    }
    <update id="updateUsernameById" parameterType="com.shenhao.domain.User">
        update user set username=#{username} where id=#{id}
    </update>

7. 삭제 작업
    @Test
    public void testDelete(){
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();

        SqlSessionFactory sqlSessionFactory = builder.build(AppTest.class.getClassLoader().getResourceAsStream("SqlMapConfig.xml"));

        SqlSession sqlSession = sqlSessionFactory.openSession();


        sqlSession.delete("user.delById",27);

        sqlSession.commit();

        sqlSession.close();


    }
    <delete id="delById" parameterType="int">
        delete from user where id=#{id}
    </delete>

좋은 웹페이지 즐겨찾기