/*
* Copyright 2008-2009 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.test.hasor.db._01_simple;
import net.hasor.core.AppContext;
import net.hasor.core.Hasor;
import net.hasor.data.jdbc.core.JdbcTemplate;
import net.hasor.plugins.junit.HasorUnit;
import net.test.hasor.db._02_datasource.warp.SingleDataSourceWarp;
import org.junit.Test;
import java.sql.SQLException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
/***
* 批量Insert语句执行
* @version : 2014-1-13
* @author 赵永春(zyc@hasor.net)
*/
public class InsertJDBCTest {
//
@Test
public void simpleInsertJDBCTest() throws SQLException {
System.out.println("--->>simple_InsertJDBCTest<<--");
//
AppContext app = Hasor.createAppContext("jdbc-config.xml", new SingleDataSourceWarp());
JdbcTemplate jdbc = app.getInstance(JdbcTemplate.class);
//
String quertCount = "select count(*) from TB_User where userUUID='deb4f4c8-5ba1-4f76-8b4a-c2be028bf57b'";
String insertData = "insert into TB_User values('deb4f4c8-5ba1-4f76-8b4a-c2be028bf57b','安妮.贝隆','belon','123','belon@hasor.net','2011-06-08 20:08:08');";
String deleteData = "delete from TB_User where userUUID='deb4f4c8-5ba1-4f76-8b4a-c2be028bf57b'";
//
int count = jdbc.queryForInt(quertCount);
if (count > 0) {
System.out.println("记录已经存在,删除该记录重新录入。");
jdbc.update(deleteData);
}
//
jdbc.update(insertData);//执行插入语句
count = jdbc.queryForInt(quertCount);
System.out.println("插入结果:" + count);
}
//
@Test
public void batchInsertJDBCTest() throws SQLException {
System.out.println("--->>baseInsertJDBCTest<<--");
//
AppContext app = Hasor.createAppContext("jdbc-config.xml", new SingleDataSourceWarp());
JdbcTemplate jdbc = app.getInstance(JdbcTemplate.class);
//
String batchInsert = "insert into TB_User values(:ID,:Name,:Account,:Pwd,:Email,:RegTime);";
//
showUserCount(jdbc);//显示当前用户总数
int count = 10;
Map<String, Object>[] batchValues = new Map[count];
for (int i = 0; i < count; i++) {
batchValues[i] = new HashMap<String, Object>();
batchValues[i].put("ID", UUID.randomUUID().toString());
batchValues[i].put("Name", String.format("默认用户_%s", i));
batchValues[i].put("Account", String.format("acc_%s", i));
batchValues[i].put("Pwd", String.format("pwd_%s", i));
batchValues[i].put("Email", String.format("autoUser_%s@hasor.net", i));
batchValues[i].put("RegTime", new Date());
}
jdbc.batchUpdate(batchInsert, batchValues);//批量执行执行插入语句
HasorUnit.printMapList(jdbc.queryForList("select * from TB_User"));
//
showUserCount(jdbc);//显示当前用户总数
}
private void showUserCount(JdbcTemplate jdbc) throws SQLException {
System.out.println(">>>>> userCount :" + jdbc.queryForInt("select count(*) from TB_User"));
}
}