Spring—信息全查、白盒测试

博客概要

     本博文,简单使用spring框架,实现对于学生表的全查操作,重点在于归纳整理springpath.xml配置文件的配置步骤。

spring实现全查步骤

1.创建项目

     点击创建普通web项目,并进行相关文件路径的选择。

2.创建代码目录结构

     1.bean——实体层
     2.dao——数据持久层
     3.service——服务层
     4.test——白盒测试
     5.springpath.xml——spring配置文件
     6.web目录——放置jsp前台页面、lib架包

**3.配置springpath.xml文件

     spring框架的一大作用就是,将之前的new对象的操作,放在了springpath.xml这个配置文件中自动处理,省了事。
     xml文件中的每一个元素都是bean,spring配置文件的配置分为5大步:

1.注解扫描
扫描spring包中的注解,由注解生成dao和service
2.创建dao对象
可以在任何加载springpath.xml的地方使用
3.创建service对象
可以在任何加载springpath.xml的地方使用
4.配置数据源
提供数据库连接,包括数据库驱动的注册,数据库地址的获取,以及数据库用户名、密码的获取
5.创建JdbcTemplate对象
自动注入dataSource对象

具体代码:


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- xml每个元素都是bean(豆子)->beans(豆腐块),xml是将之前的new对象,放在配置文件中自动处理 -->

    <!-- 1.注解扫描:扫描spring包中的注解(由注解生成dao层和service层),连接xml和dao -->
    <context:component-scan base-package="com.itwanli" />

    <!-- 2.创建dao层对象(可以在任何加载springpath.xml的地方使用),搞出来bean -->
    <bean id="studentDao" class="com.wcw.controller.dao.impl.StudentDaoImpl" />
    <!-- 3.创建service层对象(可以在任何加载springpath.xml的地方使用) -->
    <bean id="studentService" class="com.wcw.controller.service.impl.StudentServiceImpl" />

    <!-- 4.配置数据源,提供数据库连接:data数据源,目的是为了连接数据库,class——来自、地址 -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <!-- 驱动 -->
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <!-- 数据库地址,&amp;——相当于取地址符 -->
        <property name="url" value="jdbc:mysql://127.0.0.1:3306/db_java1ssm?useSSL=true&amp;characterEncoding=utf8" />
        <!-- 数据库用户名 -->
        <property name="username" value="root" />
        <!-- 数据库密码 -->
        <property name="password" value="123456" />
    </bean>

    <!-- 5.创建JdbcTemplate对象,自动注入dataSource对象-->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource" />
    </bean>

</beans>

4.编撰主体代码

4.1Bean

     创建Student实体类
具体代码:

package spring.itwanli.bean;

public class Student {
    private int sid;
    private String sname;
    private String sage;

    @Override
    public String toString() {
        return "Student{" +
                "sid=" + sid +
                ", sname='" + sname + '\'' +
                ", sage=" + sage +
                '}';
    }

    public Student() {
    }

    public Student(int sid, String sname, String sage) {
        this.sid = sid;
        this.sname = sname;
        this.sage = sage;
    }

    public Student(String sname, String sage) {
        this.sname = sname;
        this.sage = sage;
    }

    public int getSid() {
        return sid;
    }

    public void setSid(int sid) {
        this.sid = sid;
    }

    public String getSname() {
        return sname;
    }

    public void setSname(String sname) {
        this.sname = sname;
    }

    public String getSage() {
        return sage;
    }

    public void setSage(String sage) {
        this.sage = sage;
    }
}

4.2Dao+DaoImpl

     创建Student数据持久层以及其实现层
具体代码:


//dao
    /**
     * 全查
     * @return
     */
    List<Student> findAll();
    
//impl
    /**
     * 自动注入
     * 创建JdbcTemplate对象
     * 设置set函数
     */
    @Autowired
    private JdbcTemplate jdbcTemplate;

    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

    /**
     *全查
     * 反射机制和泛型
     * (javase高级 DOM4J)
     */
    @Override
    public List<Student> findAll() {

        String sql = "select * from tb_student";
        /**
         * 反射机制
         * 反射spring的对象
         * Student.class -- 类加载器
         */
        BeanPropertyRowMapper<Student> selAll = new BeanPropertyRowMapper<>(Student.class);//反射机制
        //query -- 多个对象
        List<Student> stus = jdbcTemplate.query(sql, selAll);

        return stus;
    }
4.3Service+ServiceImpl

     创建Student服务层以及其实现层
具体代码:

//service
    /**
     * 全查
     * @return
     */
    List<Student> findAll();
    
//impl
    /**
     * 面向切面编程:切面(接口)
     * @Autowired:自动注入
     */
    @Autowired
    private StudentDao studentDao;

    public void setStudentDao(StudentDao studentDao) {
        this.studentDao = studentDao;
    }

    /**
     * 全查
     * @return
     */
    @Override
    public List<Student> findAll() {
        return this.studentDao.findAll();
    }

5.白盒测试

     使用JUnit4
具体代码


    /**
     * main在不起作用,此处用JUnit
     *  @Before:代表做操作之前的准备工作
     * */
    //1.加载配置文件xml
    private ApplicationContext ac;
    @Before
    public void into(){
        ac = new ClassPathXmlApplicationContext("springpath.xml");
    }

    /**
     * 全查
     */
    @Test
    public void TestByAll(){
        StudentService ss =(StudentService) ac.getBean("studentService");
        List<Student> stus = ss.findAll();
        for (Student stu:stus){
            if (stu!=null){
                System.out.println(stu);
            }
        }
    }

运行结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值