springtemplate jdbc小例子

一百教程

sql

CREATE TABLE Student(
   ID   INT NOT NULL AUTO_INCREMENT,
   NAME VARCHAR(20) NOT NULL,
   AGE  INT NOT NULL,
   PRIMARY KEY (ID)
)


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

package com.yiibai;

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 create
    * a record in the Student table.
    */
   public void create(String name, Integer age);
   /** 
    * This is the method to be used to list down
    * a record from the Student table corresponding
    * to a passed student id.
    */
   public Student getStudent(Integer id);
   /** 
    * 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);
   /** 
    * This is the method to be used to update
    * a record into the Student table.
    */
   public void update(Integer id, Integer age);
}

以下是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;
   }
}

以下是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;
   }
}

下面是实现类文件StudentJDBCTemplate.java 定义DAO接口StudentDAO:

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 void create(String name, Integer age) {
      String SQL = "insert into Student (name, age) values (?, ?)";
      
      jdbcTemplateObject.update( SQL, name, age);
      System.out.println("Created Record Name = " + name + " Age = " + age);
      return;
   }

   public Student getStudent(Integer id) {
      String SQL = "select * from Student where id = ?";
      Student student = jdbcTemplateObject.queryForObject(SQL, 
                        new Object[]{id}, new StudentMapper());
      return student;
   }

   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;
   }

   public void update(Integer id, Integer age){
      String SQL = "update Student set age = ? where id = ?";
      jdbcTemplateObject.update(SQL, age, id);
      System.out.println("Updated Record with ID = " + id );
      return;
   }

}

以下是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("Beans.xml");

      StudentJDBCTemplate studentJDBCTemplate = 
      (StudentJDBCTemplate)context.getBean("studentJDBCTemplate");
      
      System.out.println("------Records Creation--------" );
      studentJDBCTemplate.create("Zara", 11);
      studentJDBCTemplate.create("Nuha", 2);
      studentJDBCTemplate.create("Ayan", 15);

      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());
      }

      System.out.println("----Updating Record with ID = 2 -----" );
      studentJDBCTemplate.update(2, 20);

      System.out.println("----Listing Record with ID = 2 -----" );
      Student student = studentJDBCTemplate.getStudent(2);
      System.out.print("ID : " + student.getId() );
      System.out.print(", Name : " + student.getName() );
      System.out.println(", Age : " + student.getAge());
	  
   }
}

以下是配置文件beans.xml文件:

xml version="1.0" encoding="UTF-8"?>
 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 ">

   
    id="dataSource" 
      class="org.springframework.jdbc.datasource.DriverManagerDataSource">
       name="driverClassName" value="com.mysql.jdbc.Driver"/>
       name="url" value="jdbc:mysql://localhost:3306/TEST"/>
       name="username" value="root"/>
       name="password" value="password"/>
   

   
    id="studentJDBCTemplate" 
      class="com.yiibai.StudentJDBCTemplate">
       name="dataSource"  ref="dataSource" />    
   
      

创建源代码和bean配置文件完成后,让我们运行应用程序。如果一切顺利,这将打印以下信息:

------Records Creation--------
Created Record Name = Zara Age = 11
Created Record Name = Nuha Age = 2
Created Record Name = Ayan Age = 15
------Listing Multiple Records--------
ID : 1, Name : Zara, Age : 11
ID : 2, Name : Nuha, Age : 2
ID : 3, Name : Ayan, Age : 15
----Updating Record with ID = 2 -----
Updated Record with ID = 2
----Listing Record with ID = 2 -----
ID : 2, Name : Nuha, Age : 20

你可以尝试删除操作,我在例子中没有使用过,但现在你有一个工作的应用程序基于Spring的JDBC框架,它可以扩展到根据项目要求增加复杂的功能。还有其他的方法来访问,将使用针对NamedParameterJdbcTemplate和SimpleJdbcTemplate类的数据库,所以如果你有兴趣学习这些课程,请参考Spring框架手册。








pom文件:



    4.0.0
    com.smart
    luntanssm
    1.0
    论坛ssh框架改成ssm框架

    
        
        
            junit
            junit
            4.12
            test
        

        
            org.projectlombok
            lombok
            1.16.16
        

        
        
            javax.servlet
            servlet-api
            ${servlet.version}
            provided
        

        
            javax.servlet.jsp
            jsp-api
            2.2
            provided
        
        
            javax.servlet
            jstl
            1.2
        

        
        
            org.mybatis
            mybatis
            3.4.4
        
        
            mysql
            mysql-connector-java
            5.1.41
        
        
            org.mybatis
            mybatis-spring
            1.3.1
        

        
        
            mysql
            mysql-connector-java
            ${mysql.version}
        

        
        
            org.springframework
            spring-orm
            ${spring.version}
        
        
            org.springframework
            spring-tx
            ${spring.version}
        
        
            org.springframework
            spring-test
            ${spring.version}
        
        
            org.springframework
            spring-webmvc
            ${spring.version}
        
        
            org.springframework
            spring-context
            ${spring.version}
        
        
            org.springframework
            spring-context-support
            ${spring.version}
        
        
            org.springframework
            spring-beans
            ${spring.version}
        
        
            org.springframework
            spring-jdbc
            ${spring.version}
        


        
        
            commons-lang
            commons-lang
            2.2
        
        
            commons-fileupload
            commons-fileupload
            1.3.1
        
        
            commons-dbcp
            commons-dbcp
            ${commons-dbcp.version}
        
        
            commons-beanutils
            commons-beanutils
            1.9.1
        

        
        
            javax.persistence
            persistence-api
            1.0
        
        
            org.hibernate
            hibernate-core
            4.2.0.Final
        
        
            org.hibernate
            hibernate-ehcache
            4.2.0.Final
        
        
            org.hibernate.javax.persistence
            hibernate-jpa-2.0-api
            1.0.1.Final
        

        
            org.slf4j
            slf4j-api
            ${slf4j.version}
        
        
            org.slf4j
            slf4j-log4j12
            ${slf4j.version}
        

        
            org.mockito
            mockito-all
            ${mockito.version}
        
        
            org.testng
            testng
            6.8.7
            test
        

        
            org.unitils
            unitils-core
            ${unitils.version}
        
        
            org.unitils
            unitils-testng
            ${unitils.version}
        
        
            org.unitils
            unitils-spring
            ${unitils.version}
        
        
            org.unitils
            unitils-orm
            ${unitils.version}
        
        
            org.unitils
            unitils-database
            ${unitils.version}
        
        
            org.unitils
            unitils-dbmaintainer
            ${unitils.version}
        
        
            org.unitils
            unitils-dbunit
            ${unitils.version}
            
                
                    org.dbunit
                    dbunit
                
            
        

        
        
            org.aspectj
            aspectjrt
            ${aspectj.version}
        
        
            org.aspectj
            aspectjweaver
            ${aspectj.version}
        

        
            aopalliance
            aopalliance
            ${aopalliance.version}
        

        
            org.apache.poi
            poi
            3.9
        


        
            javassist
            javassist
            3.6.0.GA
        

        
            org.seleniumhq.selenium
            selenium-chrome-driver
            ${selenium.version}
        
        
            org.seleniumhq.selenium
            selenium-firefox-driver
            ${selenium.version}
        
        
            com.opera
            operadriver
            0.8.1
        
        
            org.dbunit
            dbunit
            ${dbunit.version}
            
                
                    org.slf4j
                    slf4j-log4j12
                
            
        

        
            org.seleniumhq.selenium
            selenium-api
            ${selenium.version}
        
        
            org.seleniumhq.selenium
            selenium-htmlunit-driver
            ${selenium.version}
        

        
            org.hamcrest
            hamcrest-all
            ${hamcrest.version}
        



    



    
        ${project.artifactId}
        src/test/java
        src/main/java
        
        
            
                src/main/java
                
                    **/*.xml
                    **/*.properties
                
            
            
                src/main/resources
                
                    **/*.xml
                    **/*.properties
                
            
        
        
			
				org.apache.maven.plugins
				maven-surefire-plugin
				2.7.2
				
					once
					10
					-Dfile.encoding=UTF-8
				
			

            
            
                org.mortbay.jetty
                maven-jetty-plugin
                6.1.25
                
                    
                        
                            80
                            60000
                        
                    
                    /forum
                    0
                
            
        
    

    
        UTF-8
        4.2.2.RELEASE
        1.7.5
        1.8.1
        1.0
        5.1.29
        3.0-alpha-1
        1.4
        8.1.8.v20121106
        1.6.8
        4.2.0.Final
        1.10.19
        3.4.2
        2.41.0
        2.5.1
        1.3
    

注意:pom一定要正确,否则会出很多问题!浪费很多时间!

你可能感兴趣的:(java学习)