Spring中JDBC Template的应用举例

来源:互联网 发布:月光倾城 老狼 知乎 编辑:程序博客网 时间:2024/06/10 21:33
package hysteria.contact.dao.impl;    import java.sql.ResultSet;  import java.sql.SQLException;  import java.sql.Types;  import java.util.List;    import org.springframework.jdbc.core.JdbcTemplate;  import org.springframework.jdbc.core.RowMapper;    import hysteria.contact.dao.ItemDAO;  import hysteria.contact.domain.Item;    public class ItemDAOImpl implements ItemDAO {   private JdbcTemplate jdbcTemplate;     public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {    this.jdbcTemplate = jdbcTemplate;   }     public Item insert(Item item) {    String sql = "INSERT INTO items(user_id,name,phone,email) VALUES(?,?,?,?)";    Object[] params = new Object[]{item.getUserId(),item.getName(),item.getPhone(),item.getEmail()};    int[] types = new int[]{Types.INTEGER,Types.VARCHAR,Types.CHAR,Types.VARCHAR};    jdbcTemplate.update(sql,params,types);    return item;   }     public Item update(Item item) {    String sql = "UPDATE items SET name = ?, phone = ?, email = ? WHERE id = ?";    Object[] params = new Object[] {item.getName(),item.getPhone(),item.getEmail(),item.getId()};    int[] types = new int[] {Types.VARCHAR,Types.CHAR,Types.VARCHAR,Types.VARCHAR,Types.INTEGER};    jdbcTemplate.update(sql,params,types);      return item;   }     public void delete(Item item) {    String sql = "DELETE FROM items WHERE id = ?";    Object[] params = new Object[] {item.getId()};    int[] types = new int[]{Types.INTEGER};    jdbcTemplate.update(sql,params,types);   }     public Item findById(int id) {    String sql = "SELECT * FROM items WHERE id = ?";    Object[] params = new Object[] {id};    int[] types = new int[] {Types.INTEGER};    List items = jdbcTemplate.query(sql,params,types,new ItemMapper());    if(items.isEmpty()){     return null;    }    return (Item)items.get(0);   }     public List<Item> findAll() {    String sql = "SELECT * FROM items";    return jdbcTemplate.query(sql,new ItemMapper());   }       public List<Item> findAllByUser(int user_id) {    String sql = "SELECT * FROM items WHERE user_id = ?";    Object[] params = new Object[]{user_id};    int[] types = new int[]{Types.INTEGER};    List items = jdbcTemplate.query(sql,params,types,new ItemMapper());    return items;   }     protected class ItemMapper implements RowMapper {      public Object mapRow(ResultSet rs, int rowNum) throws SQLException {     Item item = new Item();     item.setId(rs.getInt("id"));     item.setUserId(rs.getInt("user_id"));     item.setName(rs.getString("name"));     item.setPhone(rs.getString("phone"));     item.setEmail(rs.getString("email"));       returen item;}}}

原创粉丝点击