spring之操作数据库之使用NamedParameterJdbcTemplate(具名参数
发布时间:2020-12-15 01:13:09 所属栏目:大数据 来源:网络整理
导读:接上一节:https://www.cnblogs.com/xiximayou/p/12167150.html。 在applicationContext.xml中配置namedParameterJdbcTemplate。 !-- 配置 NamedParameterJdbcTemplate,该对象可以使用具名参数,其没有无参数的构造器,所以必须为其构造器指定参数 -- bean id
接上一节:https://www.cnblogs.com/xiximayou/p/12167150.html。 在applicationContext.xml中配置namedParameterJdbcTemplate。 <!-- 配置 NamedParameterJdbcTemplate,该对象可以使用具名参数,其没有无参数的构造器,所以必须为其构造器指定参数 --> <bean id="namedParameterJdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate"> constructor-arg ref="dataSource"></constructor-arg> </bean> 在JDBCTest.java中进行测试: private ApplicationContext ctx = null; private JdbcTemplate jdbcTemplate; EmployeeDao employeeDao; DepartmentDao departmentDao; NamedParameterJdbcTemplate namedParameterJdbcTemplate; { ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); jdbcTemplate = (JdbcTemplate) ctx.getBean("jdbcTemplate"); employeeDao = ctx.getBean(EmployeeDao.class); departmentDao = ctx.getBean(DepartmentDao.); namedParameterJdbcTemplate = ctx.getBean(NamedParameterJdbcTemplate.); } /** * 可以为参数起名字. * 1. 好处: 若有多个参数,则不用再去对应位置,直接对应参数名,便于维护 * 2. 缺点: 较为麻烦. */ @Test public void testNamedParameterJdbcTemplate(){ String sql = "INSERT INTO employees(last_name,email,dept_id) VALUES(:ln,:email,:deptid)"; Map<String,Object> paramMap = new HashMap<>(); paramMap.put("ln","FF"); paramMap.put("email","ff@atguigu.com"); paramMap.put("deptid",2); namedParameterJdbcTemplate.update(sql,paramMap); } * 使用具名参数时,可以使用 update(String sql,SqlParameterSource paramSource) 方法进行更新操作 * 1. SQL 语句中的参数名和类的属性一致! * 2. 使用 SqlParameterSource 的 BeanPropertySqlParameterSource 实现类作为参数. testNamedParameterJdbcTemplate2(){ String sql = "INSERT INTO employees(last_name,dept_id) " + "VALUES(:lastName,:dpetId)"; Employee employee = new Employee(); employee.setLastName("XYZ"); employee.setEmail("xyz@sina.com"); employee.setDpetId(3); SqlParameterSource paramSource = BeanPropertySqlParameterSource(employee); namedParameterJdbcTemplate.update(sql,paramSource); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |