ibatis 批量添加数据
ibatis批量添加数据
自己项目中用到的。
public void insertCiyt(final List<City> cityList) { // TODO Auto-generated method stub System.out.println("批量添加开始"); SqlMapClientCallback callback = new SqlMapClientCallback() { public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException { int counter =1; executor.startBatch(); for (City dto : cityList) { //需要插入的语句 executor.insert("inserSql", dto); counter++; if (counter % 4000 == 0) { executor.executeBatch(); executor.startBatch(); } } executor.executeBatch(); return null;//这里的返回值会被下面的Object接收到 } }; //num 接受的是每次批量处理多少条数据 Object num = this.getSqlMapClientTemplate().execute(callback); }
下面配置文件里面的
<sqlMap namespace="City"> <typeAlias alias="city" type="com.xxx.City" /> <resultMap class="city" id="cityMap"> <result property="cid" column="cid" /> <result property="name" column="name" /> </resultMap> <insert id="insertSql" parameterClass="city"> <![CDATA[insert into u_city_copy(`cid`,`name`) values(#cid#,#name#);]]> </insert> </sqlMap>
另一种方法也可以:
@Override public void mergerLeagueRelation(final List<LeagueRelation> leagueRelation) { this.getSqlMapClientTemplate().execute(new SqlMapClientCallback(){ public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException { executor.startBatch(); int counter = 0; for (LeagueRelation temp : leagueRelation) { executor.insert("mergerLeagueRelation",temp); counter ++ ; if(counter%10000==0){ executor.executeBatch(); executor.startBatch(); } } executor.executeBatch(); return null; } }); }
相关推荐
yangkang 2020-11-09
lbyd0 2020-11-17
sushuanglei 2020-11-12
85477104 2020-11-17
KANSYOUKYOU 2020-11-16
wushengyong 2020-10-28
lizhengjava 2020-11-13
星月情缘 2020-11-13
huangxiaoyun00 2020-11-13
luyong0 2020-11-08
腾讯soso团队 2020-11-06
Apsaravod 2020-11-05
PeterChangyb 2020-11-05
gaobudong 2020-11-04
wwwjun 2020-11-02
gyunwh 2020-11-02
EchoYY 2020-10-31
dingyahui 2020-10-30