在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Java/ Spring JDBC入門(mén)程序
Spring JDBC調(diào)用存儲(chǔ)函數(shù)
Spring JDBC NamedParameterJdbcTemplate類(lèi)示例
Spring JDBC SimpleJdbcCall類(lèi)示例
Spring JDBC PreparedStatementSetter接口示例
Spring JDBC環(huán)境設(shè)置
Spring JDBC多批次操作
Spring JDBC SimpleJdbcInsert類(lèi)示例
Spring JDBC RowMapper接口示例
Spring JDBC對(duì)象批量操作
Spring JDBC ResultSetExtractor接口示例
Spring JDBC配置數(shù)據(jù)源
Spring JDBC處理CLOB類(lèi)型字段
Spring JDBC刪除數(shù)據(jù)
Spring JDBC更新數(shù)據(jù)
Spring JDBC SqlUpdate類(lèi)示例
Spring JDBC SqlQuery類(lèi)示例
Spring JDBC插入數(shù)據(jù)
Spring JDBC StoredProcedure類(lèi)示例
Spring JDBC JdbcTemplate類(lèi)示例
Spring JDBC入門(mén)程序
Spring JDBC調(diào)用存儲(chǔ)過(guò)程
Spring JDBC查詢(xún)數(shù)據(jù)
Spring JDBC批量操作
Spring JDBC處理BLOB類(lèi)型字段
Spring JDBC教程

Spring JDBC入門(mén)程序

要了解JdbcTemplate類(lèi)與Spring JDBC框架相關(guān)的概念,下面通過(guò)編寫(xiě)一個(gè)簡(jiǎn)單的例子演示如何使用Spring JDBC框架,在這個(gè)示例中,將在以student表上實(shí)現(xiàn)插入數(shù)據(jù)和讀取數(shù)據(jù)的操作。

CREATE TABLE student(
   id   INT NOT NULL AUTO_INCREMENT,
   name VARCHAR(20) NOT NULL,
   age  INT NOT NULL,
   PRIMARY KEY (id)
);

創(chuàng)建項(xiàng)目

首先打開(kāi)Eclipse,創(chuàng)建一個(gè)Maven項(xiàng)目,選擇:File -> New -> Other… ,然后選擇:Maven Project 如下所示 -

下一步(Next>),如下所示 -

填入項(xiàng)目的一些必要信息,如項(xiàng)目名稱(chēng),包的名稱(chēng)等。

注意:第一個(gè)選項(xiàng)“Create a simple project(skip archetype selection)”選中。

這樣就創(chuàng)建好了一個(gè)名稱(chēng)為:firstapp 的java應(yīng)用程序項(xiàng)目(在artifactId中指定)。更新pom.xml以包含Spring-JDBC依賴(lài)關(guān)系。添加以下幾個(gè)類(lèi):Student.java,StudentMapper.java,MainApp.java,StudentDAO.javaStudentJDBCTemplate.java等文件,完整的項(xiàng)目結(jié)構(gòu)如下所示 -

文件 : pom.xml 的內(nèi)容 -

<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>fistapp</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>Student</name>
    <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>

以下是數(shù)據(jù)訪(fǎng)問(wèn)對(duì)象接口文件:StudentDAO.java的代碼內(nèi)容:

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

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

以下是文件:Student.java的代碼內(nèi)容:

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的代碼內(nèi)容:

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的代碼內(nèi)容:

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 List<Student> listStudents() {
        String SQL = "select * from Student";
        List<Student> students = jdbcTemplateObject.query(SQL, new StudentMapper());
        return students;
    }

    public Student getStudent(Integer id) {
        // TODO Auto-generated method stub
        return null;
    }
}

以下是程序執(zhí)行入口文件:MainApp.java的代碼內(nèi)容:

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("------Records Creation--------" );
      studentJDBCTemplate.create("Maxsu", 19);
      studentJDBCTemplate.create("Minsu", 23);
      studentJDBCTemplate.create("Allen", 27);

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

以下是Bean和數(shù)據(jù)庫(kù)配置文件:application-beans.xml的代碼內(nèi)容:

<?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" />
        <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>

注意: application-beans.xml 文件的位置是:{workspace}/fistapp/src/main/java 目錄,如果放置錯(cuò)了,程序可能會(huì)因?yàn)檎也坏酱伺渲梦募鲥e(cuò)。

完成創(chuàng)建源代碼和bean和數(shù)據(jù)庫(kù)連接信息的文件配置后,運(yùn)行應(yīng)用程序。這里先簡(jiǎn)單說(shuō)明一下運(yùn)行的步驟,在項(xiàng)目名稱(chēng)(firstapp)上點(diǎn)擊右鍵,在彈出的菜單中選擇:【Run As】-> 【Maven test】,如下 -

在運(yùn)行測(cè)試成功后,應(yīng)該會(huì)輸出類(lèi)似以下內(nèi)容(含有 BUILD SUCCESS 的信息) -

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Student 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ fistapp ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ fistapp ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ fistapp ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ fistapp ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ fistapp ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.904 s
[INFO] Finished at: 2017-06-08T23:36:31+08:00
[INFO] Final Memory: 11M/114M
[INFO] ------------------------------------------------------------------------

接下來(lái),點(diǎn)擊類(lèi)文件:MainApp.java 選擇【Run As】->【Java Application】,如果應(yīng)用程序一切正常,這將打印以下消息: