现在的位置: 首页 > 综合 > 正文

Jdbctemplate 学习

2018年04月18日 ⁄ 综合 ⁄ 共 2375字 ⁄ 字号 评论关闭

本文主要以一些例子来阐述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;

	}






抱歉!评论已关闭.