標籤:類型 void throws except object contex insert ted temp
2017-11-11 21:13:13
Spring 架構中提供了對持久層支援人員的類 :
- JDBC : org.springframework.jdbc.core.support.JdbcDaoSupport
- Hibernate 3.0 : org.springframework.orm.hibernate3.support.HibernateDaoSupport
- iBatis : org.springframework.orm.ibatis.support.SqlMapClientDaoSupport
增加,刪除和修改的操作還是比較容易的,因為,並不需要有傳回值。
增加,刪除和修改的代碼:
// Userpublic class User { private Integer id; private String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "User{" + "id=" + id + ", name=‘" + name + ‘\‘‘ + ‘}‘; }}// UserDaopublic class UserDao extends JdbcDaoSupport { public void add(User user){ String sql = "insert into user values(?,?)"; getJdbcTemplate().update(sql,user.getId(),user.getName()); } public void delete(User user){ String sql = "delete from user where id=?"; getJdbcTemplate().update(sql, user.getId()); } public void update(User user){ String sql = "update user set name=? where id=?"; getJdbcTemplate().update(sql, user.getName(), user.getId()); }}// 測試@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration("classpath:config4.xml")public class Jdbc3 { @Resource(name = "userdao") private UserDao userdao; @Test public void demo(){ User user= new User(); user.setName("劉亦菲"); user.setId(001); // userdao.add(user); //user.setName("胡歌"); //userdao.update(user); userdao.delete(user); }}
尋找操作是相對比較麻煩的,因為這裡一般是有傳回值的。
針對傳回值為基本類型的,可以比較方便的進行轉換;
針對傳回值是對象的,需要自訂轉換方法;
查詢代碼:
// UserDaopublic class UserDao extends JdbcDaoSupport { public void add(User user){ String sql = "insert into user values(?,?)"; getJdbcTemplate().update(sql,user.getId(),user.getName()); } public void delete(User user){ String sql = "delete from user where id=?"; getJdbcTemplate().update(sql, user.getId()); } public void update(User user){ String sql = "update user set name=? where id=?"; getJdbcTemplate().update(sql, user.getName(), user.getId()); } public int findCount(){ String sql = "select count(*) from user"; return this.getJdbcTemplate().queryForObject(sql,Integer.class); } public String findNameByID(int id){ String sql = "select name from user where id = ?"; return getJdbcTemplate().queryForObject(sql,String.class,id); } public User findUserByID(int id){ String sql = "select * from user where id = ?"; return getJdbcTemplate().queryForObject(sql, new MyRowMap(), id); } public List<User> findAll(){ String sql = "select * from user"; return getJdbcTemplate().query(sql,new MyRowMap()); } // 匿名內部類進行自訂的類型轉換 class MyRowMap implements RowMapper<User>{ /** * * @param resultSet:結果集,裡麵包含所有的結果 * @param i:行號 * @return 將每一行的資料自行轉成需要的對象的資料類型 * @throws SQLException */ @Override public User mapRow(ResultSet resultSet, int i) throws SQLException { User user = new User(); user.setName(resultSet.getString("name")); user.setId(resultSet.getInt("id")); return user; } }}// 查詢@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration("classpath:config4.xml")public class Jdbc3 { @Resource(name = "userdao") private UserDao userdao; @Test public void demo(){ User user= new User(); user.setName("章子怡"); user.setId(002); userdao.add(user); } @Test public void demo2(){ System.out.println(userdao.findCount()); List<User> ls = userdao.findAll(); for(User user:ls){ System.out.println(user); } }}
Java Spring-JdbcTemplate增刪改查