Spring-增删改查

Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。
◆目的:解决企业应用开发的复杂性
◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
◆范围:任何Java应用
Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。
一.架包导入
在这里插入图片描述
二.配置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"
   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">
    <!--提供注释支持-->
<context:component-scan base-package="net.zrgj"/>

<!--配置数据源-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://localhost:3306/java_day19?useSSL=true&amp;characterEncoding=utf-8"/>
    <property name="username" value="root"/>
    <property name="password" value="123456"/>
</bean>
<!--创建JDBCTemplate对象注入dataSource-->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    <property name="dataSource" ref="dataSource"/>
</bean>
</beans>

三.定义实体类(Student类)

package net.zrgj.bean;

import org.springframework.stereotype.Component;

@Component
public class Student {
private int id;
private String name;
private String sex;
private int age;

public Student() {
}

public Student(String name, String sex, int age) {
    this.name = name;
    this.sex = sex;
    this.age = age;
}

public Student(int id, String name, String sex, int age) {
    this.name = name;
    this.sex = sex;
    this.age = age;
    this.id = id;
}

@Override
public String toString() {
    return "Student{" +
            "id=" + id +
            ", name='" + name + '\'' +
            ", sex='" + sex + '\'' +
            ", age=" + age +
            '}';
}

public int getId() {
    return id;
}

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

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getSex() {
    return sex;
}

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

public int getAge() {
    return age;
}

public void setAge(int age) {
    this.age = age;
}
}

四.Dao层(IStudentDao接口)

package net.zrgj.dao;

import net.zrgj.bean.Student;

import java.util.List;

public interface IStudentDao {
//添加
boolean addStu(Student student);
//删除
boolean delStu(int stuId);
//修改
boolean updStu(Student student);
//查找单个
Student findById(int stuId);
//查找全部
List<Student> findAll();
}

五.DaoImpl(dao层实现)

package net.zrgj.dao.impl;

import net.zrgj.bean.Student;
import net.zrgj.dao.IStudentDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;

import java.util.List;
@Repository
public class StudentDaoImpl implements IStudentDao {
@Autowired
private JdbcTemplate jdbcTemplate;

public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
    this.jdbcTemplate=jdbcTemplate;
}
@Override
public boolean addStu(Student student) {
    boolean flag = false;
    String sql = "insert into tb_student values(null,?,?,?)";
    int row = jdbcTemplate.update(sql, student.getName(), student.getSex(), student.getAge());
    if (row > 0){
        flag = true;
    }
    return flag;
}

@Override
public boolean delStu(int stuId) {
    boolean flag = false;
    String sql = "delete from tb_student where id = ?";
    int row = jdbcTemplate.update(sql,stuId);
    if (row > 0){
        flag = true;
    }
    return flag;
}

@Override
public boolean updStu(Student student) {
    boolean flag = false;
    String sql = "update tb_student set name = ?,sex = ?,age = ? where id = ?";
    int row = jdbcTemplate.update(sql,new Object[]{student.getName(),student.getSex(),student.getAge(),student.getId()});
    if (row > 0){
        flag = true;
    }
    return flag;
}

@Override
public Student findById(int stuId) {
    String sql ="select * from tb_student where id = ?";
    BeanPropertyRowMapper<Student> rowMapper = new BeanPropertyRowMapper<>(Student.class);
    Student student = jdbcTemplate.queryForObject(sql,new Object[]{stuId}, rowMapper);
    return student;
}

@Override
public List<Student> findAll() {
    String sql ="select * from tb_student";
    BeanPropertyRowMapper<Student> rowMapper = new BeanPropertyRowMapper(Student.class);
    List<Student> students = jdbcTemplate.query(sql,rowMapper);
    return students;
}
}

六.测试(Test)

package test;

import net.zrgj.bean.Student;
import net.zrgj.service.impl.StudentServiceImpl;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.util.List;


public class TestSpring {
//加载配置文件applicationContext.xml
ApplicationContext ac = new     ClassPathXmlApplicationContext("/applicationContext.xml");

@Test
public void addStu() {
    //创建对象
    Student student = new Student("亚索", "男", 19);
    //获取自动创建的对象 --IOC
    StudentServiceImpl ssi = (StudentServiceImpl) ac.getBean("studentServiceImpl");

    boolean b = ssi.addStu(student);
    if (b) {
        System.out.println("添加成功");
    } else {
        System.out.println("添加失败");
    }
}

@Test
public void delStu() {
    StudentServiceImpl ssi = (StudentServiceImpl) ac.getBean("studentServiceImpl");
    boolean b = ssi.delStu(1);
    if (b) {
        System.out.println("删除成功");
    } else {
        System.out.println("删除失败");
    }
}

@Test
public void updStu() {
    Student student = new Student(2, "亚索", "男", 20);
    StudentServiceImpl ssi = (StudentServiceImpl) ac.getBean("studentServiceImpl");
    boolean b = ssi.updStu(student);
    if (b) {
        System.out.println("修改成功");
    } else {
        System.out.println("修改失败");
    }
}

@Test
public void findAll() {
    StudentServiceImpl ssi = (StudentServiceImpl) ac.getBean("studentServiceImpl");
    List<Student> students = ssi.findAll();
    for (Student student : students) {
        System.out.println("\n" + student);
    }
}
@Test
public void findById() {
    StudentServiceImpl ssi = (StudentServiceImpl) ac.getBean("studentServiceImpl");
    Student student = ssi.findById(2);
    System.out.println("\n" + student);
}
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值