zoukankan      html  css  js  c++  java
  • Spring JDBC删除数据

    以下示例将展示如何使用Spring jdbc执行删除数据库表中的记录,这里演示如何删除指定student表中的记录。

    语法:

    String deleteQuery = "delete from Student where id = ?";
    jdbcTemplateObject.update(deleteQuery, id);
    
    Java

    在上面语法中 -

    • deleteQuery - 具有占位符的删除查询语句用来删除指定的学生信息。
    • jdbcTemplateObject - StudentJDBCTemplate 对象将 Student 对象从数据库中删除。

    创建项目

    要了解上面提到的Spring JDBC相关的概念,这里创建一个项目用来演示如何删除Student表中的数据记录。打开Eclipse IDE,并按照以下步骤创建一个名称为:DeleteQuery 的Spring应用程序项目。

    步骤说明

    1. 参考第一个Spring JDBC项目来创建一个Maven项目 - http://www.yiibai.com/springjdbc/first_application.html。
    2. 更新bean配置并运行应用程序。

    完整的项目结构如下所示 -

    文件 : pom.xml 的内容 -

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.yiibai</groupId>
        <artifactId>ReadQuery</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>jar</packaging>
        <url>http://maven.apache.org</url>
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>3.8.1</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.40</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
                <version>4.1.0.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>4.1.4.RELEASE</version>
            </dependency>
        </dependencies>
    </project>
    

    以下是数据访问对象接口文件:StudentDAO.java的代码内容:

    package com.yiibai;
    
    import java.util.List;
    import javax.sql.DataSource;
    
    import java.util.List;
    import javax.sql.DataSource;
    
    public interface StudentDAO {
        /**
         * This is the method to be used to initialize database resources ie.
         * connection.
         */
        public void setDataSource(DataSource ds);
    
        /**
         * This is the method to be used to list down all the records from the
         * Student table.
         */
        public List<Student> listStudents();
    
        /**
         * This is the method to be used to delete a record from the Student table
         * corresponding to a passed student id.
         */
        public void delete(Integer id);
    }
    
    Java

    以下是文件:Student.java的代码内容:

    package com.yiibai;
    
    public class Student {
        private Integer age;
        private String name;
        private Integer id;
    
        public void setAge(Integer age) {
            this.age = age;
        }
    
        public Integer getAge() {
            return age;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getName() {
            return name;
        }
    
        public void setId(Integer id) {
            this.id = id;
        }
    
        public Integer getId() {
            return id;
        }
    }
    
    Java

    以下是文件:StudentMapper.java的代码内容:

    package com.yiibai;
    
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import org.springframework.jdbc.core.RowMapper;
    
    public class StudentMapper implements RowMapper<Student> {
        public Student mapRow(ResultSet rs, int rowNum) throws SQLException {
            Student student = new Student();
            student.setId(rs.getInt("id"));
            student.setName(rs.getString("name"));
            student.setAge(rs.getInt("age"));
            return student;
        }
    }
    
    Java

    以下是实现类文件:StudentJDBCTemplate.java,它实现了接口StudentDAO.java
    以下是文件:StudentJDBCTemplate.java的代码内容:

    package com.yiibai;
    
    import java.util.List;
    import javax.sql.DataSource;
    import org.springframework.jdbc.core.JdbcTemplate;
    
    public class StudentJDBCTemplate implements StudentDAO {
        private DataSource dataSource;
        private JdbcTemplate jdbcTemplateObject;
    
        public void setDataSource(DataSource dataSource) {
            this.dataSource = dataSource;
            this.jdbcTemplateObject = new JdbcTemplate(dataSource);
        }
    
        public List<Student> listStudents() {
            String SQL = "select * from Student";
            List<Student> students = jdbcTemplateObject.query(SQL, new StudentMapper());
            return students;
        }
    
        public void delete(Integer id) {
            String SQL = "delete from Student where id = ?";
            jdbcTemplateObject.update(SQL, id);
            System.out.println("Deleted Record with ID = " + id);
            return;
        }
    
    }
    
    Java

    以下是程序执行入口文件:MainApp.java的代码内容:

    package com.yiibai;
    
    import java.util.List;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    import com.yiibai.StudentJDBCTemplate;
    
    public class MainApp {
        public static void main(String[] args) {
            ApplicationContext context = new ClassPathXmlApplicationContext("application-beans.xml");
    
            StudentJDBCTemplate studentJDBCTemplate = (StudentJDBCTemplate) context.getBean("studentJDBCTemplate");
    
            System.out.println("----Delete Record with ID = 2 -----");
            studentJDBCTemplate.delete(2);
    
            System.out.println("------Listing Multiple Records--------");
            List<Student> students = studentJDBCTemplate.listStudents();
            for (Student record : students) {
                System.out.print("ID : " + record.getId());
                System.out.print(", Name : " + record.getName());
                System.out.println(", Age : " + record.getAge());
            }
        }
    }
    
    Java

    以下是Bean和数据库配置文件:application-beans.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-3.0.xsd ">
    
        <!-- Initialization for data source -->
        <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/test?characterEncoding=utf8&useSSL=true" />
            <property name="username" value="root" />
            <property name="password" value="123456" />
        </bean>
    
        <!-- Definition for studentJDBCTemplate bean -->
        <bean id="studentJDBCTemplate" class="com.yiibai.StudentJDBCTemplate">
            <property name="dataSource" ref="dataSource" />
        </bean>
    
    </beans>
    
    XML

    注意: application-beans.xml 文件的位置是:{workspace}/fistapp/src/main/java 目录,如果放置错了,程序可能会因为找不到此配置文件而出错。

    完成创建源代码和bean和数据库连接信息的文件配置后,运行应用程序。这里先简单说明一下运行的步骤,在项目名称(DeleteQuery)上点击右键,在弹出的菜单中选择:【Run As】-> 【Maven test】

    在运行测试成功后,应该会输出类似以下内容(含有 BUILD SUCCESS 的信息) 。
    接下来,点击类文件:MainApp.java 选择【Run As】->【Java Application】,如果应用程序一切正常,这将打印以下消息:

    ----Delete Record with ID = 2 -----
    Deleted Record with ID = 2
    ------Listing Multiple Records--------
    ID : 1, Name : Maxsu, Age : 19
    ID : 3, Name : Allen, Age : 27
    ID : 4, Name : Maxsu, Age : 19
    ID : 5, Name : Minsu, Age : 23
    ID : 6, Name : Allen, Age : 27
    ID : 7, Name : Maxsu, Age : 19
    ID : 8, Name : Minsu, Age : 23
    ID : 9, Name : Allen, Age : 27
    
    Shell
     
  • 相关阅读:
    Python 模块 itertools
    Python 字符串的encode与decode
    python 模块 hashlib(提供多个不同的加密算法)
    暴力尝试安卓gesture.key
    hdu 1300 Pearls(DP)
    hdu 1232 畅通工程(并查集)
    hdu 1856 More is better(并查集)
    hdu 1198 Farm Irrigation(并查集)
    hdu 3635 Dragon Balls(并查集)
    hdu 3038 How Many Answers Are Wrong(并查集)
  • 原文地址:https://www.cnblogs.com/borter/p/9608420.html
Copyright © 2011-2022 走看看