`
Inmethetiger
  • 浏览: 108467 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring jdbc之最简单的增删改查

阅读更多

首发地址: http://inmethetiger.iteye.com/blog/1686468

参考于:http://jinnianshilongnian.iteye.com/blog/1423897

 

JdbcTemplate提供以下几类方法:

1:execute方法:可以用于执行任何SQL语句,主要是ddl语句(create,drop ,alter,truncate)

2:update方法和batchUpdate方法:用户新增,修改,删除,批处理

3:query和queryForXXX:用于执行查询语句

4:call方法:用于回调。

以下实例包含了一个简单的增删改查实例:

 

import java.sql.ResultSet;
import java.sql.SQLException;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowCallbackHandler;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

public class JdbcTemlateTest {
	private static JdbcTemplate jdbcTemplate;
	private Log log = LogFactory.getLog(JdbcTemlateTest.class);

	@BeforeClass
	public static void setUpClass() {
		String url = "jdbc:hsqldb:mem:test";
		String username = "sa";
		String password = "";
		DriverManagerDataSource dataSource = new DriverManagerDataSource(url,
				username, password);
		dataSource.setDriverClassName("org.hsqldb.jdbcDriver");
		jdbcTemplate = new JdbcTemplate(dataSource);
	}

	@Test
	public void test() {
		// 1.声明SQL
		String sql = "select * from INFORMATION_SCHEMA.SYSTEM_TABLES";
		jdbcTemplate.query(sql, new RowCallbackHandler() {
			@Override
			public void processRow(ResultSet rs) throws SQLException {
				// 2.处理结果集
				String value = rs.getString("TABLE_NAME");
				System.out.println("Column TABLENAME:" + value);
			}
		});
	}

	// 创建表结构
	@Before
	public void before() {
		String createTableSql = "create memory table test"
				+ "(id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, "
				+ "name varchar(100))";
		jdbcTemplate.update(createTableSql);
	}

	@After
	public void tearDown() {
		String dropTableSql = "drop table test";
		jdbcTemplate.execute(dropTableSql);
	}

	/*
	 * 1:新增测试
	 */
	@Test
	public void insert() {
		jdbcTemplate.update("insert into test(name) values ('name1')");
		jdbcTemplate.update("insert into test(name) values ('name2')");
		Assert.assertEquals(2,
				jdbcTemplate.queryForInt("select count(*) from test"));
	}

	/*
	 * 2:删除测试
	 */
	@Test
	public void delete() {
		// 先插入两条记录
		jdbcTemplate.update("insert into test(name) values ('name1')");
		jdbcTemplate.update("insert into test(name) values ('name2')");
		// 删除第一条记录
		jdbcTemplate.update("delete from test where name=?",
				new Object[] { "name1" });
		Assert.assertEquals(1,
				jdbcTemplate.queryForInt("select count(*) from test"));
	}

	/*
	 * 3:更新测试
	 */
	@Test
	public void update() {
		// 先插入两条记录
		jdbcTemplate.update("insert into test(name) values ('name1')");
		jdbcTemplate.update("insert into test(name) values ('name2')");

		// 更新第二条数据
		jdbcTemplate.update("update test set name='nameChange' where name=?",
				new Object[] { "name2" });

		Assert.assertEquals(
				1,
				jdbcTemplate
						.queryForInt("select count(*) from test where name='nameChange'"));
	}

	/*
	 * 4:选择测试
	 */
	@Test
	public void select() {
		jdbcTemplate.update("insert into test(name) values ('name1')");
		jdbcTemplate.update("insert into test(name) values ('name2')");
		jdbcTemplate.query("select * from test", new RowCallbackHandler() {
			@Override
			public void processRow(ResultSet rs) throws SQLException {
				log.info("====id:" + rs.getInt("id"));
				log.info(",name:" + rs.getString("name"));
			}
		});
	}
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics