分享

spring对数据库操作的常用方法

 魏祖清 2016-09-11
public class JDBCTest {

private ApplicationContext ctx = null;
private JdbcTemplate jdbcTemplate;
private CustomersDao customersDao;
{
ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
jdbcTemplate = (JdbcTemplate) ctx.getBean("jdbcTemplate");
customersDao = ctx.getBean(CustomersDao.class);
namedParameterJdbcTemplate = ctx
.getBean(NamedParameterJdbcTemplate.class);
}

// 查询表中的个数
@Test
public void testQueryForObject2() {
String sql = "SELECT count(id) FROM customers";
long count = jdbcTemplate.queryForObject(sql, Long.class);
System.out.println(count);
}

// 查询实体类的集合:注意调用的是query,而不是queryList方法
@Test
public void tstQueryForList() {
String sql = "SELECT  id,name,address,phone FROM customers WHERE id>?";
RowMapper<Customers> rowMapper = new BeanPropertyRowMapper<>(
Customers.class);
List<Customers> customers = jdbcTemplate.query(sql, rowMapper, 1);
System.out.println(customers);
}

// 从数据表获取一条记录,实际得到一个对象
// 注意不是条用queryForObject(String sql, Class<Customer> requiredType, Object...
// args)
// 需要使用.queryForObject(String sql, RowMapper<Customer> rowMapper, Object...
// args)
// 1.其中的rowMapper指定如何映射结果如何去映射结果的行,常用的实现类为BeanPropertyRowMapper
// 2.使用sql中的列名完成列和类的属性名的映射
// 3.不支持级联属性,jdbcTemplate到底是JDBC的小工具
@Test
public void testQueryForObject() {
String sql = "SELECT  id,name,address,phone FROM customers WHERE id=?";
RowMapper<Customers> rowMapper = new BeanPropertyRowMapper<>(
Customers.class);
Customers customer = jdbcTemplate.queryForObject(sql, rowMapper, 3);
System.out.println("customer" + customer);
}

// 执行批量更新:批量的insert update delete (错误)
@Test
public void testbatchUpdate() {
String sql = "INSERT INTO customers(id,name,address,phone) VALUES (?,?,?,?)";
List<Object[]> batchArgs = new ArrayList<>();
batchArgs.add(new Object[] { 1, "AA", "aa", "123164" });
batchArgs.add(new Object[] { 2, "BB", "bb", "231645" });
batchArgs.add(new Object[] { 3, "CC", "cc", "31646" });
jdbcTemplate.batchUpdate(sql, batchArgs);
}

// 执行INSERT UPDATE DELETE
@Test
public void testUpdate() {
String sql = "UPDATE customers SET name=? WHERE id=?";
jdbcTemplate.update(sql, "Kangkang1", 1);
}
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约