마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 데이터베이스 질문합니다.

0 추천

현재 에디트 텍스트로 값을 받아 디비에 넣는걸 구현하고 있는데요

 

 private void insertData(String title, String number, String service){
		  
	        db.beginTransaction();
	 
	        try{
	        	
	            String sql = "insert into test_table (title,number,service) values ('"+ title +"','"+number+"','"+ service +"');";
	           
	            db.execSQL(sql);
//이후로 진행이 안됨
	            
	            db.setTransactionSuccessful();
	            
	        }catch(Exception e){
	            e.printStackTrace();
	        }finally{
	            db.endTransaction();
	        }
	 
	    }

 

db.execSQL(sql);

이 문장 이후로 프린트문찍어보니까 나타나지를 않습니다.

 

이 코드가 값 하나만 받아서 할 때는 잘 돌아갔는데 3개로 고쳐서해보니까 이렇게 되고 있습니다.

 

어디가 문제인건지 모르겠어요.ㅠ 뭘 의심해봐야할까요

브루스웨인 (8,580 포인트) 님이 2015년 7월 23일 질문
insert문 한번하는데 트랜잭션은 뭐하러쓰는거죠?;;
insert문을 여러번 쓴다고하면
insertData()를 부르는 곳에서 트랜잭션을 걸어야겠죠
에러 로그캣을 올려줘야 정확히 알죠
지금 다시 해보는데 잘 되고 있네요 ;;

아 블로그 에 있던 코드를 그대로 가져와서 쓰고 있어서요.
http://yoo454.tistory.com/9
여길 참고 하고 있습니다.

위의 코드는 insertData() 메소드로 b_save 버튼이 눌렷을 경우 EditText의 텍스트를 가져와 작동하는 메소드 입니다.

트랜잭션 이유는 아래와 같이 되어있었습니다.
database.beginTransaction()을 선언합니다. 트랜잭션은  트랜잭션을 선언하고 종료하기 전까지 코드 안에서 문제가 생길경우 해당 코드가 실행되었던 액션 자체를 무효화 시키는 코드인대
익명님께서 말씀하신 건, 어짜피 INSERT 한번하는건데 오류가 발생한다면 INSERT구문에서 오류가 발생할 것이고, 그러면 데이터가 추가되지 않고 오류가 발생하는 것인데 1개의 명령어를 처리하는데 트랜잭션으로 처리할 필요가 없다는 의미입니다.

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...