spring jdbcTemplate类的基本配置及常规用法

时间:2020-09-24 23:25:37 类型:JAVA
字号:    

spring jdbcTemplate类的基本配置及常规用法

1, 引入对应jar包 如下:

    111.jpg

2, applicationContext.xml配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!-- 配置数据源 -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <!--数据库驱动-->
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <!--连接数据库的url-->
        <property name= "url" value="jdbc:mysql://localhost/zhuangzi" />
        <!--连接数据库的用户名-->
        <property name="username" value="root" />
        <!--连接数据库的密码-->
        <property name="password" value="root" />
    </bean>
    <!--配置JDBC模板-->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <!--默认必须使用数据源-->
        <property name="dataSource" ref="dataSource"/>
    </bean>
    <!--使用context命名空间,通知spring扫描指定目录,进行注解的解析-->
<!--    <context:component-scan base-package="com.ioc"/>-->
</beans>

3, 基础实体类Student

package com.ioc;

public class Student {
    private int id;
    private String names;
    private String sex;
    private String blood;
    private String hobby;
    private String intro;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getNames() {
        return names;
    }

    public void setNames(String names) {
        this.names = names;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getBlood() {
        return blood;
    }

    public void setBlood(String blood) {
        this.blood = blood;
    }

    public String getHobby() {
        return hobby;
    }

    public void setHobby(String hobby) {
        this.hobby = hobby;
    }

    public String getIntro() {
        return intro;
    }

    public void setIntro(String intro) {
        this.intro = intro;
    }
}

4. jdbcTemplate的常规用法:

public class JdbcTemplateTest {
    @Test
    public void test(){
        // 定义Spring配置文件路径
        String xmlPath = "applicationContext.xml";
        // 初始化Spring容器,加载配置文件,并对bean进行实例化
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext(
                xmlPath);
        // 获得personAction实例
        JdbcTemplate jdbcTemplate = (JdbcTemplate) applicationContext
                .getBean("jdbcTemplate");

        //修改信息
        String sql = "update student set names = ? where id = ?";
        int a1 = jdbcTemplate.update(sql, "庄子",3);
        System.out.println("修改成功");

        //删除信息
        String sql1 = "delete from student  where id = ?";
        int a = jdbcTemplate.update(sql1, 7);
        System.out.println("删除成功");

        //添加信息
        String sql2 = "insert into student(names,sex,blood,hobby,intro,time)values(" +
                "?,?,?,?,?,?)";
        int a2 = jdbcTemplate.update(sql2,"庄子同学","男","A","聊天","聊天不错",123456789);
        System.out.println("添加" + a2 + "条记录");

        //查询一个值
        String sql3 = "select names from student where id = ?";
        String s = jdbcTemplate.queryForObject(sql3, String.class, 3);
        System.out.println(s);

        //查询一条信息
        String sql4= "select * from student where id = ?";
        Map<String,Object> map = jdbcTemplate.queryForMap(sql4, 3);
        System.out.println(map.get("names"));

        //查询多条信息
        String sql5= "select * from student";
        List<Map<String,Object>> maps = jdbcTemplate.queryForList(sql5);
        for(Map m : maps){
            System.out.println("姓名:" + m.get("names") + "性别" + m.get("sex"));
        }


        //查询一条信息并映射到指定的类的实例中
        //RowMapper:行的映射
        //Spring 提供了一个便利的RowMapper实现-----BeanPropertyRowMapper
        //它可自动将一行数据映射到指定类的实例中 它首先将这个类实例化,然后通过名称匹配的方式,映射到属性中去。
        String sql6 = "select names,sex,blood from student where id = ?";
        RowMapper<Student> rowMapper = new BeanPropertyRowMapper<Student>(Student.class);
        Student student = jdbcTemplate.queryForObject(sql6, rowMapper,5);//最后一个参数为id值
        System.out.println(student.getNames());

        /*
         *查询实体类的集合
         */

        String sql7 = "select names,sex,blood from student where id > ?";
        RowMapper<Student> rowMappers = new BeanPropertyRowMapper<Student>(Student.class);
        List<Student> students = jdbcTemplate.query(sql7, rowMappers,5);//最后一个参数为id值

        for(Student stu : students){
            System.out.println(stu.getNames());
        }
    }
}

5, 注解使用方法:

@Resource
private JdbcTemplate jdbcTemplate;


<