2014-09-12 1 views
0

나는 데 사용자 클래스가있는 성공적으로 로그인 한 어떤 응답 후 나는 위의 몇 가지 세부 사항을 입력 할 필요가빈에서 데이터를 Spring MVC로 데이터베이스에 삽입하는 방법은 무엇입니까?

@Table(name="user"); 
@Column(name="userid") 
public String getUserId() { 
    return userId; 
} 

public void setUserId(String userId) { 
    this.userId = userId; 
}//setter and getter for username,password and mobile no. 

내가 가입 페이지가 있어요

user.java 같은 사용자 데이터를 포함 메신저 점점이 다시 사용자 개체에 저장하지만 지금은 database.this에 삽입 할 나의

userdao.java입니다

package com.xyz.dao; 

import com.xyz.model.User; 

public class UserDao { 
    public interface UserDAO { 
     public void insert(User user); 
    } 
} 

는 이것은 내

나는 봄-security.xml을 사용하고 로그인 페이지에서 인증거야으로
import com.xyz.dao.UserDao.UserDAO; 
import com.xyz.model.User; 

public class UserJdbcImpl implements UserDAO { 
    private static final String DB_DRIVER = "com.mysql.jdbc.Driver"; 
    private static final String DB_CONNECTION = "jdbc:mysql://localhost:3306/user"; 
    private static final String DB_USER = "root"; 
    private static final String DB_PASSWORD = "root"; 
    private DataSource dataSource; 

    public void setDataSource(DataSource dataSource) { 
     this.dataSource = dataSource; 
    } 

    public void insert(User user) { 
     Connection conn = null; 
     PreparedStatement preparedStatement = null; 
     String sql = "INSERT INTO user " + 
       "(userMobile,userEmail) VALUES (?, ?)"; 

     try { 
      conn = getDBConnection(); 
      preparedStatement = conn.prepareStatement(sql); 
      //conn = dataSource.getConnection(); 
      System.out.println("connecting.."); 
      PreparedStatement ps = conn.prepareStatement(sql); 

      ps.setString(1, user.getUserMobile()); 
      ps.setString(2, user.getUserEmail()); 

      ps.executeUpdate(); 
      ps.close(); 

     } catch (SQLException e) { 
      throw new RuntimeException(e); 

     } finally { 
      if (conn != null) { 
       try { 
        conn.close(); 
       } catch (SQLException e) { 
        System.out.println("connection failed"); 
       } 
      } 
     } 
    } 

    private static Connection getDBConnection() { 

     Connection conn = null; 

     try { 
      Class.forName(DB_DRIVER); 
     } catch (ClassNotFoundException e) { 
      System.out.println(e.getMessage()); 
     } 

     try { 
      conn = DriverManager.getConnection(DB_CONNECTION, DB_USER,DB_PASSWORD); 
      return conn; 
     } catch (SQLException e) { 
      System.out.println(e.getMessage()); 
     } 

     return conn; 
    } 
} 

이것은 실행 한 후 내 스프링 db.xml

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 

    <bean id="dataSource" 
     class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 

     <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
     <property name="url" value="jdbc:mysql://localhost:3306/user" /> 
     <property name="username" value="root" /> 
     <property name="password" value="root" /> 
    </bean> 
</beans> 

입니다 데이터가 데이터베이스에 삽입되지 않습니다. 내가 뭘 잘못하고 있는거야?

+0

왜 스프링 데이터를 사용하지 않는 것이 좋을까요? – chrylis

+0

@chrylis 오류를 찾을 수 없습니다 .. 봄 데이터 만 삽입하는 중 – ghhhhhhhh

+0

기본 키가 무엇입니까? 그것을위한 세대 전략은 무엇입니까? – zerocool

답변

0

내가보기에 거래가 커밋되거나 열리지 않습니다. 아마도 mysql의 자동 커밋이 기본적으로 켜져있다. 코드에서 트랜잭션 시작/커밋/롤백을 처리하거나 자동 커밋을 설정하십시오. 좋은 이유가 있고 그 의미를 이해하지 않는 한 자동 확언을 제안하지 않습니다.

관련 문제