配置文件: <!-- 1. 数据源 : DriverManagerDataSource --> <context:component-scan base-package="com.springmvc.dao" /> <bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybaitis"/> <property name="username" value="root"/> <property name="password" value="root"/> </bean> <!-- 2. mybatis的SqlSession的工厂: SqlSessionFactoryBean dataSource / typeAliasesPackage --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="datasource"/> <property name="typeAliasesPackage" value="com.springmvc.mybaitsmodel"/> </bean> <bean id="session" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg index="0" ref="sqlSessionFactory" /> <!-- <constructor-arg index="1" value="BATCH" />如果想要进行批量操作可加入这个属性 --> </bean> <!-- 3. mybatis自动扫描加载Sql映射文件 : MapperScannerConfigurer sqlSessionFactory / basePackage --> <bean id="config" class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.springmvc.mybaitsmodel"/> <property name="sqlSessionFactory" ref="sqlSessionFactory"/> </bean> <!-- 4. 事务管理 : DataSourceTransactionManager --> <bean id="manager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="datasource"/> </bean> <!-- 5. 使用声明式事务 --> <tx:annotation-driven transaction-manager="manager" /> DAO: public class UserDaoImpl implements UserDao { @Autowired private SqlSession session; public SqlSession getSession() { return session; } public void setSession(SqlSession session) { System.out.println("runing......"); this.session = session; } ..... ......后面执行的 想通过注入的方式直接获取session,然后直接调用其中的select等相应的方法,但是注入失败,没有在执行set方法,就大神解答! |
|
错误贴出~~~
|
|
没注入进去,所以引用的时候会报空指针异常 |
|
10分 |
@Autowired不是方法注入没有执行set方法是正常的,楼主只要调用你dao的getSession()看看不为null就成功了
|
30分 |
改用@Resource(“sqlSession”)
private SqlSession session; 看行不行 |