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.