1.您可以使用JdbcTemplate的execute()方法執(zhí)行SQL DDL語句,例如:
jdbcTemplate.execute("CREATE TABLE USER (user_id integer, name varchar(100))");
使用JdbcTemplate進(jìn)行查詢時(shí),可以使用queryForXXX()等方法,例如使用queryForInt()方法傳回user表格中的數(shù)據(jù)數(shù)目: jdbcTemplate.quertForInt("select count(*) from user"); 也可以使用queryForObject()傳回一個(gè)查詢后的對(duì)象,例如傳回一個(gè)String對(duì)象:
String name=(String)jdbcTemplate.queryForObject(
"selcet name from user where id=?",
new Object[]{id},
java.lang.String.class);
)
單獨(dú)查詢某個(gè)數(shù)據(jù)并賦值給特定對(duì)象時(shí):

public BaseObj getBaseObj(final int ID)
{

String sql = "select * from " + DB_TABLE_NAME + " where NewsId=" + ID;

BaseObj obj =(BaseObj) getJdbcTemplate().query(sql,new ResultSetExtractor()
{

public Object extractData(ResultSet rs) throws SQLException,DataAccessException
{

if (rs.next())
{
NewsObj news = new NewsObj();
news.setID(rs.getInt("NewsID"));
news.setTitle(rs.getString("NewsTitle"));
news.setBigClass(rs.getInt("BigClassId"));
news.setNewsContent(rs.getString("NewsContent"));
news.setNewsKey(rs.getString("NewsKey"));
news.setNewsAuthor(rs.getString("NewsAuthor"));
news.setImg(rs.getBoolean("isImg"));
news.setNewsFrom(rs.getString("NewsFrom"));
return news;
}
return null;
}
});
return obj;

}
上面兩個(gè)例子都是傳回單獨(dú)一筆數(shù)據(jù),如果要傳回多筆數(shù)據(jù),則可以使用queryForList()方法,例如:
List rows=jdbcTemplate().queryForList("select * from user where id="+id.intValue()); 傳回的list中包括的是map對(duì)象,每個(gè)map對(duì)象代表查詢結(jié)果中的一筆數(shù)據(jù),每筆數(shù)據(jù)包括多個(gè)字段,要取得字段中的值,就要使用字段名作為key,例如:
Iterator it=rows.iterator();
while(it.hasNext()){
Map result=(Map)it.next();
System.out.println(userMap.get("id"));
System.out.println(userMap.get("name"));
System.out.println(userMap.get("age"));
}
在查詢的同時(shí),你可以在返回結(jié)果之前先進(jìn)行一些處理,這就要實(shí)現(xiàn)RowCallbackHandler接口
public User find(Integer id){
final User user=new User();
jdbcTemplate.query("select * from user where id=?",new Object[]{id},
new RowCallBackHandler(){
public void proccessRow(ResultSet rs){
user.setId(new Integer(rs.getInt("id")));
uset.setName(rs.getString("name"));
}
});
return user;
}
如果一次要返回多個(gè)查詢結(jié)果對(duì)象,則可以實(shí)現(xiàn)RowMapper接口
public class UserRowMapper implements RowMapper{
public Object MapRow(ResultSet rsmint rowNum) throws SQLException{
User user=new User();
user.setId(new Integer(rs.getInt("id")));
user.setName(rs.getString("name"));
return user;
}
}
使用RowMapper查詢單筆數(shù)據(jù)
public User find(Integer id){
User user=(User)jdbcTemplate.queryForObject("select * from user where id=?",new Object[]{id},
new UserRowMapper());
return user;
}
使用RowMapper查詢多筆數(shù)據(jù)

class UserRowMapper implements RowMapper
{

public Object mapRow(ResultSet rs,int index) throws SQLException


{
User u = new User();
u.setId(rs.getString(”ID”));
u.setName(rs.getString(”Name”));
u.setPassword(rs.getString(”Password”));
return u;

}

}

public List select(String where)


{

List list;
String sql = “select * from admin “+where;
list = jdbcTemplate.query(sql,new RowMapperResultReader(new UserRowMapper()));
return list;

}


傳回的users對(duì)象中,包括了從數(shù)據(jù)庫查詢出來的結(jié)果,并已經(jīng)封裝成uer對(duì)象
還可以參閱下面鏈接:
jdbctemplate 語句