jdbcTemplate 例子

public class JdbcTemplateTest {

	static JdbcTemplate jdbc = new JdbcTemplate(JdbcUtils.getDataSource());

	public static void main(String[] args) {
	}

	static int addUser(final User user) {
		
		//更灵活的使用connection
		jdbc.execute(new ConnectionCallback() {

			public Object doInConnection(Connection con) throws SQLException,
					DataAccessException {
				String sql = "insert into user(name,birthday, money) values (?,?,?) ";
				PreparedStatement ps = con.prepareStatement(sql,
						Statement.RETURN_GENERATED_KEYS);
				ps.setString(1, user.getName());
				ps.setDate(2, new java.sql.Date(user.getBirthday().getTime()));
				ps.setFloat(3, user.getMoney());
				ps.executeUpdate();

				ResultSet rs = ps.getGeneratedKeys();
				if (rs.next())
					user.setId(rs.getInt(1));
				return null;
			}
		});
		return 0;
	}

	static Map getData(int id) {
		String sql = "select id as userId, name, money, birthday  from user where id="
				+ id;
		return jdbc.queryForMap(sql);
	}

	static String getUserName(int id) {
		String sql = "select name from user where id=" + id;
		Object name = jdbc.queryForObject(sql, String.class);
		return (String) name;
	}

	static int getUserCount() {
		String sql = "select count(*) from user";
		return jdbc.queryForInt(sql);
	}

	static List findUsers(int id) {
		String sql = "select id, name, money, birthday  from user where id<?";
		Object[] args = new Object[] { id };
		int[] argTypes = new int[] { Types.INTEGER };
		List users = jdbc.query(sql, args, argTypes, new BeanPropertyRowMapper(
				User.class));
		return users;
	}

	static User findUser(String name) {
		String sql = "select id, name, money, birthday  from user where name=?";
		Object[] args = new Object[] { name };
		Object user = jdbc.queryForObject(sql, args, new BeanPropertyRowMapper(
				User.class));
		return (User) user;
	}

	static User findUser1(String name) {
		String sql = "select id, name, money, birthday  from user where name=?";
		Object[] args = new Object[] { name };
		Object user = jdbc.queryForObject(sql, args, new RowMapper() {

			public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
				User user = new User();
				user.setId(rs.getInt("id"));
				user.setName(rs.getString("name"));
				user.setMoney(rs.getFloat("money"));
				user.setBirthday(rs.getDate("birthday"));
				return user;
			}
		});
		return (User) user;
	}
}

 

public class JdbcTemplateTest {

	public static JdbcTemplate jdbcTemplet = new JdbcTemplate(JdbcUtils
			.getDataSource());

	public static void main(String[] args) {
	}

	// 查询返回对象类型
	public static User getUser(String name) {
		String sql = "select id,name,password from user where name=?";
		Object[] args = new Object[] { name };
		Object user = jdbcTemplet.queryForObject(sql, args,
				new BeanPropertyRowMapper(User.class));
		return (User) user;
	}

	// 查询返回List类型
	@SuppressWarnings("unchecked")
	public static List<User> queryUserForList() {
		String sql = "select id,name,password from user";
		return jdbcTemplet.query(sql, new BeanPropertyRowMapper(User.class));
	}

	// 插入
	public static void insert() {
		String sql = "insert into user(name,password) values(?,?)";
		jdbcTemplet.update(sql, new Object[] { "wanger", "123456" });
	}

	// 删除
	public static void delete(int id) {
		String sql = "delete from user where id=?";
		jdbcTemplet.update(sql, new Object[] { 4 });
	}

	// 更新
	public static void update(User user) {
		String sql = "update user set name=?,password=? where id=?";
		Object[] args = new Object[] { "张三", "000000", 1 };
		int[] argTypes = new int[] { Types.VARCHAR, Types.VARCHAR,
				Types.INTEGER };
		jdbcTemplet.update(sql, args, argTypes);
	}

	// 插入日期类型
	public static void insert2() {
		String sql = "insert into date_table(time) values(?)";
		Date date = new Date();
		Object[] args = new Object[] { date };
//		int[] argTypes = new int[] { Types.TIMESTAMP };
//		jdbcTemplet.update(sql, args, argTypes);
		jdbcTemplet.update(sql, args);
	}
}

 

你可能感兴趣的:(sql,jdbc)