您好我希望使用以下字段从MySQL数据库填充Client对象:
Id;ApellidoPaterno;ApellidoMaterno;Nombre; Telefono; and Username
。
以下是我使用的create table命令:
'Cliente',
'CREATE TABLE `cliente` (
`ClientId` int(11) NOT NULL,
`ApellidoPaterno` varchar(255) NOT NULL,
`ApellidoMaterno` varchar(255) DEFAULT NULL,
`Nombre` varchar(255) DEFAULT NULL,
`Telefono` mediumtext,
`Username` varchar(255) NOT NULL,
PRIMARY KEY (`ClientId`)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8'
我的Connection类:
package me.jmll.utm.config;
import java.sql.*;
public class Conexion{
public Connection getConexion(){
Connection con = null;
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/miscelanialabety","root","Patito01");
return con;
}
catch(Exception e){
try {throw e;}
catch (Exception e1) { e1.printStackTrace();}}
return con;
}
}
我的getClientes()方法:
@Override
public List<Cliente> getClientes() {
String sql = "SELECT * FROM Cliente";
try {
conexion = new Conexion().getConexion();
PreparedStatement ps = conexion.prepareStatement(sql);
Cliente cliente = null;
List<Cliente> listaClientes = new ArrayList<Cliente>();
ResultSet rs = ps.executeQuery();
while (rs.next()) {
cliente = new Cliente(
rs.getInt(1),
rs.getString("ApellidoPaterno"),
rs.getString("ApellidoMaterno"),
rs.getString("Nombre"),
rs.getLong("Telefono"),
rs.getString("Username")
);
listaClientes.add(cliente);
}
rs.close();
ps.close();
return listaClientes;
} catch (SQLException e) {
throw new RuntimeException(e);
} finally {
if (conexion != null) {
try { conexion.close();}
catch (SQLException e) {}
}
}
}
在rs.getInt(1)
行,我已尝试rs.getInt("ClientId")
,但无效,我已尝试指定要在查询中返回的确切字段。
结果列表包含从db请求的所有字段,除了&#34; ClientId&#34;,这是最重要的!我哪里错了?
编辑注释:表格中的数据如下:
ID AppelidoPaterno AppelidoMaterno Telefono Username
1 Osorio Marquez Rafael 2227355623 RafaelOsorioMarquez
2 Hernandez Carrillo Rodrigo 2227128907 RodrigoHernandezCarrillo
3 Fernandez Hernandez Juan 2226770934 JuanFernandezHernandez
4 Gomez Trujillo Diego 2220200435 DiegoGomezTrujillo
5 Figueroa Lopez Roberto 2221106286 RobertoFigueroaLopez
6 Almeyda Martinez Luis 2224376232 LuisAlmeydaMartinez
7 Lozano Jimenez Cesar 2222338905 CesarLozanoJimenez
8 Reyes Franco Julio 2225205878 JulioReyesFranco
9 Peralta Perez Carlos 2224783388 CarlosPeraltaPerez
15 Osorio Carrillo Gabriela 9981159756 GabrielaOsorioCarrillo
Edit2:Cliente class:
package me.jmll.utm.model;
public class Cliente
{
int Id;
String ApellidoPaterno;
String ApellidoMaterno;
String Nombre;
long Telefono;
String Username;
//getter and setter methods
public Cliente(int Id, String ApellidoPaterno,String ApellidoMaterno,
String Nombre,long Telefono) {
this.ApellidoPaterno = ApellidoPaterno;
this.ApellidoMaterno = ApellidoMaterno;
this.Nombre = Nombre;
this.Telefono = Telefono;
}
public Cliente(int Id, String ApellidoPaterno,String ApellidoMaterno,
String Nombre,long Telefono, String Username) {
this.ApellidoPaterno = ApellidoPaterno;
this.ApellidoMaterno = ApellidoMaterno;
this.Nombre = Nombre;
this.Telefono = Telefono;
this.Username = Username;
}
public Cliente() {
// TODO Auto-generated constructor stub
}
public void setId(int id) {
this.Id = id;
}
public int getId() {
return Id;
}
public void setApellidoPaterno(String apellidoPaterno) {
this.ApellidoPaterno = apellidoPaterno;
}
public String getApellidoPaterno() {
return ApellidoPaterno;
}
public void setApellidoMaterno(String apellidoMaterno) {
this.ApellidoMaterno = apellidoMaterno;
}
public String getApellidoMaterno() {
return ApellidoMaterno;
}
public void setNombre(String nombre) {
this.Nombre = nombre;
}
public String getNombre() {
return Nombre;
}
public void setTelefono(long telefono) {
this.Telefono = telefono;
}
public long getTelefono() {
return Telefono;
}
public String getUsername() {
return Username;
}
public void setUsername(String username) {
this.Username = username;
}
}
答案 0 :(得分:1)
在您的Cliente
类构造函数中,您错过了设置id
字段,因此请将其设置为this.id =id
,如下面的代码所示:
public class Cliente {
public Cliente(int Id, String ApellidoPaterno,String ApellidoMaterno,
String Nombre,long Telefono) {
this.Id = Id; //this is missed out
//set other fields as is
}
public Cliente(int Id, String ApellidoPaterno,String ApellidoMaterno,
String Nombre,long Telefono, String Username) {
this.Id = Id; //this is missed out
//set other fields as is
}
//add other code
}