本文主要以一些例子来阐述Jdbctemplate的用法。
Jdbctemplate的用法主要有以下几种:
- execute:主要执行一些DDL语句(常见的DDL语句主要包括CREATE DATABASE,CREATE TABLE,ALTER TABLE ,DROP TABLE,CREATE VIEW,ALTER VIEW ,DROP VIEW等)
- update:update主要用于增、删、改,batchUpdate用于批量update操作。
- query:用于查询。
以下为Jdbctemplate的代码
1.使用execute方法来执行sql语句
public void exexute() { jdbcTemplate.execute("CREATE TABLE USER_TEST (ID VARCHAR(25) , NAME VARCHAR(25) , PASSWORD VARCHAR(25) )"); }
2.使用update来执行增,删,改。
2.1 插入语句
这里用了两种方式来进行插入操作
public void insert(User user) { String sql = "INSERT INTO TEST_1 (ID,NAME,PASSWORD) VALUES('DDD',?,?)"; Object[] params = new Object[] { user.getName(), user.getPassword() }; jdbcTemplate.update(sql, params); }
public void update() { String sql = "insert into TEST_1 (ID,NAME,PASSWORD) values (?,?,?)"; jdbcTemplate.update(sql, new PreparedStatementSetter() { public void setValues(PreparedStatement p) throws SQLException { p.setString(1, "bbb"); p.setString(2, "admin"); p.setString(3, "password"); } }); }
2.2 批量插入
public void batchUpdateLink(List<User> list) { final List<User> l = list; String sql = "update TEST_1 set PASSWORD =? where ID =?"; jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement p, int i) throws SQLException { String id = l.get(i).getId(); String password = l.get(i).getPassword(); p.setString(2, id); p.setString(1, password); } @Override // 这个方法设定更新记录数,通常List里面存放的都是我们要更新的,所以返回list.size(); public int getBatchSize() { return l.size(); } }); }
3.通过query来进行查询
@SuppressWarnings("unchecked") public void querySql(String sql) { List<User> list = (List<User>) jdbcTemplate.query(sql, new ResultSetExtractor() { @Override public Object extractData(ResultSet rs) throws SQLException, DataAccessException { ResultSetMetaData meta = rs.getMetaData(); int cc = meta.getColumnCount(); List<User> users = new ArrayList<User>(); while (rs.next()) { User user = new User(); user.setId(rs.getString(1)); user.setName(rs.getString(2)); user.setPassword(rs.getString("password")); // user.setPassword(rs.getString(3)); users.add(user); for (int i = 3; i <= cc; i++) { String kpiName = meta.getColumnName(i); System.out.println(kpiName); } } return users; } }); System.out.println(list.size()); }
<span style="white-space:pre"> </span>public User selectById(String id) { String sql = "select * from test_1 where id=?"; final User u = new User(); final Object[] params = new Object[] { id }; jdbcTemplate.query(sql, params, new RowCallbackHandler() { public void processRow(ResultSet rs) throws SQLException { u.setId(rs.getString("ID")); u.setName(rs.getString("NAME")); u.setPassword(rs.getString("PASSWORD")); } }); return u; }