程序员社区

【Spring学习及总结21】JDBCTemplate操作数据库

在这里插入图片描述
要操作的数据库:
在这里插入图片描述
1.使用JDBCTemplate首先需要导入数据库连接池的jar包和驱动jar包:
在这里插入图片描述
2.在配置文件中配置数据源

<!--配置数据源-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <property name="user" value="root"/>
    <property name="password" value="123"/>
    <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/jdbc_template"/>
    <property name="driverClass" value="com.mysql.jdbc.Driver"/>
</bean>
<!--Spring提供了一个类JDBCTemplate,用它来操作数据库-->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    <constructor-arg name="dataSource" ref="dataSource"/>
</bean>

3.导入操作数据库模块所需要的包:
在这里插入图片描述
4.将emp_id=5的记录的salary字段更新为1300

@Test
    public void test2() throws SQLException {
        String sql="update employee set salary=? where emp_id=?";
        int update = jdbcTemplate.update(sql, 1300, 5);
        System.out.println("更新员工:"+update);
    }

5.批量插入

//批量插入
@Test
public void test3() throws SQLException {
   String sql = "insert into employee(emp_name,salary) values(?,?)";
    List<Object[]> batchArgs = new ArrayList<Object[]>();
    batchArgs.add(new Object[]{"张三",1998});
    batchArgs.add(new Object[]{"李四",1234});
    batchArgs.add(new Object[]{"王五",1234});
    batchArgs.add(new Object[]{"赵六",1234});
    int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs);
}

6.查询emp_id=5的数据记录,并封装为java对象返回

首先要写一个实体类:以便封装javaBean对象

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Employee {
    private Integer empId;
    private String empName;
    private Double salary;
}

javaBean需要和数据库中字段名一致,否则无法封装对象,因此在写sql语句时需要对数据库中的字段重命名。
使用BeanPropertyRowMapper()方法将查询的记录封装为对象

  //javaBean需要和数据库中字段名一致,否则无法封装对象
    @Test
    public void test4() throws SQLException {
        String sql = "select emp_id empid ,emp_name empName,salary " +
              "from employee where emp_id=?";
        Employee employee =
              jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<Employee>(Employee.class), 5);
        System.out.println(employee);
    }

7.查询salary>4000的数据记录,并将其封装为一个List集合

    @Test
    public void test5() throws SQLException {
        String sql = "select emp_id empid ,emp_name empName,salary " +
                "from employee where salary>?";
        List<Employee> query =
                jdbcTemplate.query(sql, new BeanPropertyRowMapper<Employee>(Employee.class), 4000);
    }

8.查询最大的salary
无论是返回单个对象还是单个数据都是用方法queryForObject

 @Test
    public void test6() throws SQLException {
        String sql = "select max(salary) from employee";
        jdbcTemplate.queryForObject(sql,Double.class);
    }

赞(0) 打赏
未经允许不得转载:IDEA激活码 » 【Spring学习及总结21】JDBCTemplate操作数据库

相关推荐

  • 暂无文章

一个分享Java & Python知识的社区