数据源,我把defaultAutoCommit设成了false
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
。
<property name="defaultAutoCommit" value="false"></property>
</bean><bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation">
<value>classpath:SqlMapConfig.xml</value>
</property>
<property name="dataSource">
<ref local="dataSource" />
</property>
</bean>类里面,是继承SqlMapClientDaoSupport 这个。
public class UserDao extends SqlMapClientDaoSupport implements IUserDao {
public void save(){
SqlMapClient sqlMap=getSqlMapClientTemplate().getSqlMapClient();sqlMap.startTransaction();
sqlMap.startBatch();for(int i = 0 ;i<list.size();i++){
getSqlMapClientTemplate().insert("User.save",userphone.get(i).toString());
if((i+1)%200==0){
sqlMap.executeBatch();
sqlMap.startBatch();
}
}sqlMap.executeBatch();
sqlMap.startBatch();
sqlMap.commitTransaction();
sqlMap.endTransaction();
}这样写的,批处理根本没有一点效果啊怎么办呢。
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
。
<property name="defaultAutoCommit" value="false"></property>
</bean><bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation">
<value>classpath:SqlMapConfig.xml</value>
</property>
<property name="dataSource">
<ref local="dataSource" />
</property>
</bean>类里面,是继承SqlMapClientDaoSupport 这个。
public class UserDao extends SqlMapClientDaoSupport implements IUserDao {
public void save(){
SqlMapClient sqlMap=getSqlMapClientTemplate().getSqlMapClient();sqlMap.startTransaction();
sqlMap.startBatch();for(int i = 0 ;i<list.size();i++){
getSqlMapClientTemplate().insert("User.save",userphone.get(i).toString());
if((i+1)%200==0){
sqlMap.executeBatch();
sqlMap.startBatch();
}
}sqlMap.executeBatch();
sqlMap.startBatch();
sqlMap.commitTransaction();
sqlMap.endTransaction();
}这样写的,批处理根本没有一点效果啊怎么办呢。
解决方案 »
- struts2默认拦截器作用?什么时候拦截
- Connection reset by peer: socket write error怎么解决?急急
- mysql 数据库写入和读取的问题 ?
- 有人能讲下jsp里 用hidden传一个string数组到另外一个页面怎么传吗?
- failed to install tomcat5 service
- 关于split
- 如何把 int math=Integer.parseInt(rs1.getString("math")) ,由 int 型改成 float 型的数据?
- 关于CSS式样的问题。
- 在JSP的领地里,怎么才能用最短的时间获得更多得知识~!!
- 权限控制中角色冲突问题
- 高分 天气预报 术语
- 如何用JSP实现通过WEB上传和下载文件?
if (list==null){return;}
SqlMapClientCallback callback = new SqlMapClientCallback() {
public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException {
executor.startBatch();
for (T member : list) {
executor.insert(sqlmapNamespace + "." + SQLID_INSERT, member);
}
executor.executeBatch();
return null;
}
};
this.getSqlMapClientTemplate().execute(callback);
}
SqlMapClientCallback callback = new SqlMapClientCallback() {
public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException {
executor.startBatch();
for (T member : list) {
executor.insert(sqlmapNamespace + "." + SQLID_INSERT, member);
}
executor.executeBatch();
return null;
}
};
连接确实是我配错了,不管连接的事情。
还有一个问题 是 这个能有返回值吗、、十分感谢!
<![CDATA[
create table #tempuserphone (userphone varchar(50))
]]>
</statement>初始化出错应该怎么写??然后getSqlMapClientTemplate() 用什么方法来调用再次感谢。。谢谢。
create table ##temptablename (userphone varchar(50))
这样是可以的。
执行出来的语句是create table #temptablename (userphone varchar(50))不过sql server #temptablename 是局部临时表,全局的 "##temptablename"怎么建呢??还有然后getSqlMapClientTemplate() 用什么方法来调用我随便用了一个insert不知statement create 或者 drop 应该用什么来调。。谢谢