1. Adicione um método para converter mapa para userInfo em UserInfo.java
public static userInfo toObject (map map) {userInfo userInfo = new userInfo (); userInfo.setId ((inteiro) map.get (id)); userInfo.setUnMeName ((string) map.get) (uname); userinfo.setUnumber (integger) (string) (string) (string) (unsame); userIrinfo.EstUnumber (integger) (string) (string)) map.get (unumber)); userInfo.setureGisterTime ((date) map.get (uregister_time)); retorna userInfo;} public static list ToObject (list> lists) {list userInfONFO = ARRAYLIST (); para (map map) {userinfo userInfo = userInFo.TeRinFo.ToOb (MAPEMOB) {userinfo; {userInfos.add (userInfo);}} retorna userInfos;}Implementação da camada DAO:
list public findall () {string sql = selecione * de user_info; List <map <string, object >> lists = jdbctemplate.QueryForList (sq); return userInfo.toObject (listas); }Resumo: Este método pode ser implementado, mas a velocidade é muito lenta.
2. Use jdbcTemplate.query(sql,RowMapper) para implementar:
Implementação da camada DAO
jdbctemplate.Query (SQL, novo Rowmapper <UserInfo> () {@Override public userInfo Maprow (ResultSet RS, int rOWNUM) lança SqLexception {userinfo userinfo = new Userinfo (); userinfo.setuname (rs.getString (") UserInfo.SetUnMber (Rs.GetInt ("UNUMBRO");Resumo: Não pode ser reutilizado em outros métodos de consulta.
3. Use Rowmapper para implementar o método da interface e substituir o método Maprow:
classe pública userInfo implementa Rowmapper, serializável {@Override public userInfo maprow (ResultSet rs, int rownum) lança sqlexception {userinfo userInfo = new userInfo (); userInfo.setId (rs.getInt (id)); userInfo.setUname (rs.getString (uname)); userInfo.setUnumber (rs.getInt (não numérico)); userInfo.setUnumber (rs.getInt (não numérico)); userInfo.SetureGisterTime (rs.getdate (uregister_time)); return userInfo; }}Implementação da camada DAO:
public userInfo getById (ID inteiro) {string sql = selecione * de user_info onde id =?; UserInfo userInfo = jdbcTemplate.QueryForObject (SQL, new Userinfo (), novo objeto [] {id}); return userInfo; } list public findall () {string sql = selecione * de user_info; Lista userInfos = jdbctemplate.Query (SQL, new UserInfo ()); return userInfos; }4. Use a camada DAO
jdbcTemplate.Query (sql.toString (), new BeanPropertyRowmapper <VeriSinfo> (qsfymxb.class));
Spring fornece uma implementação conveniente de Rowmapper ---- BeanPropertyRowmapper
Ele pode mapear automaticamente uma linha de dados para a instância da classe especificada. Primeiro instancia a classe e depois a mapeia para o atributo, combinando o nome.
Por exemplo: o nome do atributo (vehicleno) corresponde ao mesmo nome da coluna ou da coluna de mesmo nome (veículo_NO) com uma coluna sublinhada (veículo_no). Se uma propriedade não corresponde, o valor da propriedade é nulo
O exposto acima é todo o conteúdo deste artigo sobre o uso da consulta JDBCTemplate para retornar um exemplo de código de coleta de objetos personalizado. Espero que seja útil para todos. Amigos interessados podem continuar se referindo a outros tópicos relacionados neste site. Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!