獲取jdbctemplate的一種方法

木坦坦發表於2016-08-01
package cn.outofmemory.snippets.enterprise;

import java.sql.Types;
import java.util.Date;

import javax.sql.DataSource;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

public class InsertRecordInDatabaseWithJdbcTemplate {

    private static final String driverClassName = "com.mysql.jdbc.Driver";
    private static final String url = "jdbc:mysql://localhost/companydb";
    private static final String dbUsername = "jcg";
    private static final String dbPassword = "jcg";

    private static final String insertSql =
        "INSERT INTO employee (" +
        "   name, " +
        "   surname, " +
        "   title, " +
        "   created) " +
        "VALUES (?, ?, ?, ?)";

    private static DataSource dataSource;

    public static void main(String[] args) throws Exception {

        dataSource = getDataSource();

        saveRecord("John", "Black", "Software developer", new Date());
        saveRecord("Tom", "Green", "Project Manager", new Date());

    }

    public static void saveRecord(String name, String surname, String title, Date created) {

        JdbcTemplate template = new JdbcTemplate(dataSource);

        // define query arguments
        Object[] params = new Object[] { name, surname, title, new Date() };

        // define SQL types of the arguments
        int[] types = new int[] { Types.VARCHAR, Types.VARCHAR, Types.VARCHAR, Types.TIMESTAMP };

        // execute insert query to insert the data
        // return number of row / rows processed by the executed query
        int row = template.update(insertSql, params, types);
        System.out.println(row + " row inserted.");

    }

    public static DriverManagerDataSource getDataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName(driverClassName);
        dataSource.setUrl(url);
        dataSource.setUsername(dbUsername);
        dataSource.setPassword(dbPassword);
        return dataSource;
    }

}
CREATE TABLE `companydb`.`employee` (
  `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(45) NOT NULL,
  `surname` VARCHAR(45) NOT NULL,
  `title` VARCHAR(45) NOT NULL,
  `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
);

輸出:

1 row inserted.
1 row inserted.

相關文章