16:37:19.948 [http-nio-8080-exec-9] DEBUG org.mybatis.spring.SqlSessionUtils - Creating a new SqlSession
16:37:19.959 [http-nio-8080-exec-9] DEBUG org.mybatis.spring.SqlSessionUtils - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3317ea24] was not registered for synchronization because synchronization is not active
16:37:19.971 [http-nio-8080-exec-9] DEBUG org.mybatis.spring.SqlSessionUtils - Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3317ea24]
寫完代碼后,代碼沒有報錯,但是顯示sql事務不行,雖然執行登錄時用到select陳述句時也有出現但是代碼中事務會自己處理還是運行成功,我在呼叫另一條陳述句insert陳述句時就出現上面三個句子顯示事務不同步,我的兩個sql陳述句操作是在不同的表。代碼寫的沒有什么報錯,就很無奈,不知道什么地方不行。
<select id="insertwu" resultType="Map" parameterType="Object">
INSERT INTO user_lost_pick VALUES (#{item_id},#{item_name},#{user_name},#{contact},#{item_time},#{item_location},#{item_type},#{lostpost},#{tel})
</select>
呼叫上面的sql陳述句省略了一些dao類service類
iUserService.insertwu(wu);
uj5u.com熱心網友回復:
看spring組態檔中看看事物控制的service層路徑寫錯沒uj5u.com熱心網友回復:
1 看sql相關配置有沒有錯2 將sql陳述句放到資料庫運行看有咩有問題
3 看傳值有咩有問題
有時候就是一個馬虎,可能就是相關或者資料走向上哪里出了問題導致的,不一定是sql文有問題
uj5u.com熱心網友回復:
sql陳述句嘗試了沒有問題,小程式傳過來的值在ssm后臺都拿到了而且輸出成功了,但是輸出的時候好像多了個item_id=0,不過我的資料庫也沒有item_id=0的值,有其它的item_id,應該不會影響他的插入,這是service的方法
public Map<String,Object> insertwu (Wu wu){
return iUserDao.insertwu(wu);
}
這是dao的方法
@Override
public Map<String, Object> insertwu(Wu wu) {
try {
return this.userDao.insertwu(wu);
} catch (Exception e) {
e.printStackTrace();
}
return (Map<String, Object>) wu;
}
uj5u.com熱心網友回復:

uj5u.com熱心網友回復:
insert(Wu)方法加個事務試試,錯誤提示你了,事務沒有被激活uj5u.com熱心網友回復:
把你的Mybatis的XML配置貼出來看一下 還有你的service實作的insert方法uj5u.com熱心網友回復:
spring——mybastic的xml檔案<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<!-- 掃描service包下所有使用注解的型別 -->
<context:component-scan base-package="com.chatRoot.service"/>
<!-- 配置資料庫相關引數properties的屬性:${url} -->
<context:property-placeholder location="classpath:sql/jdbc.properties"/>
<!--配置jdbcTemplate-->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- 資料庫連接池 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="https://bbs.csdn.net/topics/${jdbc.driver}"/>
<property name="jdbcUrl" value="https://bbs.csdn.net/topics/${jdbc.url}"/>
<property name="user" value="https://bbs.csdn.net/topics/${jdbc.username}"/>
<property name="password" value="https://bbs.csdn.net/topics/${jdbc.password}"/>
<property name="maxPoolSize" value="https://bbs.csdn.net/topics/${c3p0.maxPoolSize}"/>
<property name="minPoolSize" value="https://bbs.csdn.net/topics/${c3p0.minPoolSize}"/>
<property name="autoCommitOnClose" value="https://bbs.csdn.net/topics/${c3p0.autoCommitOnClose}"/>
<property name="checkoutTimeout" value="https://bbs.csdn.net/topics/${c3p0.checkoutTimeout}"/>
<property name="acquireRetryAttempts" value="https://bbs.csdn.net/topics/${c3p0.acquireRetryAttempts}"/>
</bean>
<!-- 配置SqlSessionFactory物件 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 注入資料庫連接池 -->
<property name="dataSource" ref="dataSource"/>
<!-- 掃描model包 使用別名 -->
<property name="typeAliasesPackage" value="https://bbs.csdn.net/topics/com.chatRoot.model"/>
<!-- 掃描sql組態檔:mapper需要的xml檔案 -->
<property name="mapperLocations" value="https://bbs.csdn.net/topics/classpath:mapper/*.xml"/>
</bean>
<!-- 配置掃描Dao介面包,動態實作Dao介面,注入到spring容器中 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 注入sqlSessionFactory -->
<property name="sqlSessionFactoryBeanName" value="https://bbs.csdn.net/topics/sqlSessionFactory"/>
<!-- 給出需要掃描Dao介面包 -->
<property name="basePackage" value="https://bbs.csdn.net/topics/com.chatRoot.dao"/>
</bean>
<!-- 配置事務管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!-- 注入資料庫連接池 -->
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 配置基于注解的宣告式事務 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
</beans>
uj5u.com熱心網友回復:
public Map<String,Object> insertwu (Wu wu){return iUserDao.insertwu(wu);
}
這就是我的service方法呼叫dao的方法
下面這個是dao里面的方法
@Override
public Map<String, Object> insertwu(Wu wu) {
try {
return this.userDao.insertwu(wu);
} catch (Exception e) {
e.printStackTrace();
}
return (Map<String, Object>) wu;
}
mysql資料庫里面有兩個表,其中一個表我執行select陳述句沒有問題,執行insert就不行了
uj5u.com熱心網友回復:
1、看下是否是多執行緒,如果是多執行緒,看下哪里死鎖了沒有2、看看報錯的陳述句,是否單條資料量過大
uj5u.com熱心網友回復:
我除錯過了,是只有一個執行緒uj5u.com熱心網友回復:
idea沒有什么報錯陳述句出現轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/60354.html
標籤:Web 開發
