1

我已经有一个登录示例,其中有一个 sql 表。这是我的用户表,它获取有关用户的一般信息。现在我想在我的数据库中插入另一个表 - details ,然后将这两个连接在一起。我已经为我的详细信息表创建了一个不同的 POJO 类以及我已经为用户表创建的一个。

package com.shreya.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import com.shreya.model.User;
import com.shreya.util.DbUtil;

public class UserDao {

private Connection connection;

public UserDao() {
    connection = DbUtil.getConnection();
}

public void addUser(User user) {
    try {
        PreparedStatement preparedStatement = connection
                .prepareStatement("insert into     users(firstname,lastname,dob,email)       values (?, ?, ?, ? )");
        // Parameters start with 1
        preparedStatement.setString(1, user.getFirstName());
        preparedStatement.setString(2, user.getLastName());
        preparedStatement.setDate(3, new java.sql.Date(user.getDob().getTime()));
        preparedStatement.setString(4, user.getEmail());
        preparedStatement.executeUpdate();

    } catch (SQLException e) {
        e.printStackTrace();
    }
}

public void deleteUser(int userId) {
    try {
        PreparedStatement preparedStatement = connection
                .prepareStatement("delete from users where userid=?");
        // Parameters start with 1
        preparedStatement.setInt(1, userId);
        preparedStatement.executeUpdate();

    } catch (SQLException e) {
        e.printStackTrace();
    }
}

public void updateUser(User user) {
    try {
        PreparedStatement preparedStatement = connection
                .prepareStatement("update users set firstname=?, lastname=?, dob=?, email=?" +
                        "where userid=?");
        // Parameters start with 1
        preparedStatement.setString(1, user.getFirstName());
        preparedStatement.setString(2, user.getLastName());
        preparedStatement.setDate(3, new java.sql.Date(user.getDob().getTime()));
        preparedStatement.setString(4, user.getEmail());
        preparedStatement.setInt(5, user.getUserid());
        preparedStatement.executeUpdate();

    } catch (SQLException e) {
        e.printStackTrace();
    }
}

public List<User> getAllUsers() {
    List<User> users = new ArrayList<User>();
    try {
        Statement statement = connection.createStatement();
        ResultSet rs = statement.executeQuery("select * from users");
        while (rs.next()) {
            User user = new User();
            user.setUserid(rs.getInt("userid"));
            user.setFirstName(rs.getString("firstname"));
            user.setLastName(rs.getString("lastname"));
            user.setDob(rs.getDate("dob"));
            user.setEmail(rs.getString("email"));
            users.add(user);
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }

    return users;
}

public User getUserById(int userId) {
    User user = new User();
    try {
        PreparedStatement preparedStatement = connection.
                prepareStatement("select * from users where userid=?");
        preparedStatement.setInt(1, userId);
        ResultSet rs = preparedStatement.executeQuery();

        if (rs.next()) {
            user.setUserid(rs.getInt("userid"));
            user.setFirstName(rs.getString("firstname"));
            user.setLastName(rs.getString("lastname"));
            user.setDob(rs.getDate("dob"));
            user.setEmail(rs.getString("email"));
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }

    return user;
}

}

这是我为连通性写的。我尝试为详细信息表添加相同的内容。但它只是不工作。帮助将不胜感激。

4

0 回答 0