my batis 에서 insert 반환 값 은 1 이지 만 데이터 베 이 스 는 데이터 가 없습니다.

오늘 Mybatis 프레임 워 크 를 이용 하여 데이터 베 이 스 를 삽입 할 때 여러 가지 이상 한 문제 에 부 딪 혔 습 니 다.제 가 정말 요리 닭 일 수도 있 습 니 다.기록 해 주세요.
1.데이터베이스 테이블 설정 오류 제거
사용show variables like '%autocommit%';표 자동 제출 설정 여부 보기
在这里插入图片描述
autocommt 가 on 으로 설정 되 어 있 습 니 다.문제 없습니다.
2.테스트 클래스 코드 검사
Test.java

import entity.Data;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.RowBounds;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;


import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Test {
 public static void main(String[] args) throws Exception {
  //        
  InputStream is = Resources.getResourceAsStream("MybatisDemo.xml");
  //  SqlSessionFactory  
  SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(is);
  //    (  SQL  )
  SqlSession session = ssf.openSession();

  //  id  
  Data data=session.selectOne("com.selectData",2);
  System.out.println("ID:"+data.getId()+"
"+" :"+data.getName()+"
"+" :"+data.getAge()); // List<Data> list = session.selectList("com.selectAll"); System.out.println(list); for(int i = 0; i < list.size(); i++){ System.out.println(list.get(i).toString()); } // List<Data> list1 = session.selectList("com.selectLike","t"); System.out.println(list1); for(int i = 0; i < list1.size(); i++){ System.out.println(list1.get(i).toString()); } // Map map=new HashMap<>(); map.put("start",0); map.put("length",2); List<Data> list2 = session.selectList("com.selectPage",map); System.out.println(list2); // RowBounds bunds=new RowBounds(0,1); List<Data> list3= session.selectList("com.selectPage1",null,bunds); System.out.println(list3); Data data1 = new Data(" ",24); int rows=session.insert("com.insertData", data1); System.out.println(rows); // session.close(); } }
실제로 select 만 자동 으로 제출 되 고 insert,update,delete 는 자동 으로 제출 되 지 않 기 때문에 문 제 는 코드 입 니 다.
在这里插入图片描述
수 동 제출 을 설정 하지 않 았 습 니 다.
2.두 가지 해결 방법
2.1 commit 활용
在这里插入图片描述
코드 를 한 줄 추가 한 후에 아무 소 용이 없다 는 것 을 발견 하고 문제 가 여기에 없다 는 것 을 증명 했다.실행 후 데이터베이스 에 데이터 가 없습니다.
在这里插入图片描述
실제로 commt 방법 이 효과 가 없 는 것 이 아니 라 코드 위 치 를 추가 하 는 것 이 잘못 되 었 습 니 다.session 에 해당 하 는 명령 이 있 으 면 다시 제출 해 야 합 니 다.따라서 session.comit()를 insert 명령 에 넣 은 후 다음 과 같 습 니 다.
在这里插入图片描述
데이터 베 이 스 를 성공 적 으로 삽입 하 였 습 니 다.
2.2 openSession()방법 매개 변수 문제
openSession()방법 에 인자 true 를 기록 합 니 다.
在这里插入图片描述
在这里插入图片描述
데이터 베 이 스 를 성공 적 으로 삽입 하 였 습 니 다.완벽 합 니 다!
my batis 에서 insert 반환 값 은 1 이지 만 데이터 베 이 스 는 데이터 가 없 는 이 글 을 소개 합 니 다.더 많은 my batis insert 반환 값 은 1 내용 입 니 다.이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기