当前位置: 首页 > news >正文

不用服务器做视频网站手机淘宝网页

不用服务器做视频网站,手机淘宝网页,甘肃建设项目公示网站,机械网站建设使用 SqlSession 在 MyBatis 中,你可以使用 SqlSessionFactory 来创建 SqlSession。 一旦你获得一个 session 之后,你可以使用它来执行映射了的语句,提交或回滚连接,最后,当不再需要它的时候,你可以关闭 s…

使用 SqlSession

在 MyBatis 中,你可以使用 SqlSessionFactory 来创建 SqlSession
一旦你获得一个 session 之后,你可以使用它来执行映射了的语句,提交或回滚连接,最后,当不再需要它的时候,你可以关闭 session。
使用 MyBatis-Spring 之后,你不再需要直接使用 SqlSessionFactory 了,因为你的 bean 可以被注入一个线程安全的 SqlSession,它能基于 Spring 的事务配置来自动提交、回滚、关闭 session。

SqlSessionTemplate

SqlSessionTemplate 是 MyBatis-Spring 的核心。作为 SqlSession 的一个实现,这意味着可以使用它无缝代替你代码中已经在使用的 SqlSession
SqlSessionTemplate 是线程安全的,可以被多个 DAO 或映射器所共享使用。

当调用 SQL 方法时(包括由 getMapper() 方法返回的映射器中的方法),SqlSessionTemplate 将会保证使用的 SqlSession 与当前 Spring 的事务相关。
此外,它管理 session 的生命周期,包含必要的关闭、提交或回滚操作。另外,它也负责将 MyBatis 的异常翻译成 Spring 中的 DataAccessExceptions

由于模板可以参与到 Spring 的事务管理中,并且由于其是线程安全的,可以供多个映射器类使用,你应该总是SqlSessionTemplate 来替换 MyBatis 默认的 DefaultSqlSession 实现。在同一应用程序中的不同类之间混杂使用可能会引起数据一致性的问题。

可以使用 SqlSessionFactory 作为构造方法的参数来创建 SqlSessionTemplate 对象。

<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"><constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
@Configuration
public class MyBatisConfig {@Beanpublic SqlSessionTemplate sqlSession() throws Exception {return new SqlSessionTemplate(sqlSessionFactory());}
}

现在,这个 bean 就可以直接注入到你的 DAO bean 中了。你需要在你的 bean 中添加一个 SqlSession 属性,就像下面这样:

public class UserDaoImpl implements UserDao {private SqlSession sqlSession;public void setSqlSession(SqlSession sqlSession) {this.sqlSession = sqlSession;}public User getUser(String userId) {return sqlSession.selectOne("org.mybatis.spring.sample.mapper.UserMapper.getUser", userId);}
}

按下面这样,注入 SqlSessionTemplate

<bean id="userDao" class="org.mybatis.spring.sample.dao.UserDaoImpl"><property name="sqlSession" ref="sqlSession" />
</bean>

SqlSessionTemplate 还有一个接收 ExecutorType 参数的构造方法。这允许你使用如下 Spring 配置来批量创建对象,例如批量创建一些 SqlSession:

<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"><constructor-arg index="0" ref="sqlSessionFactory" /><constructor-arg index="1" value="BATCH" />
</bean>
@Configuration
public class MyBatisConfig {@Beanpublic SqlSessionTemplate sqlSession() throws Exception {return new SqlSessionTemplate(sqlSessionFactory(), ExecutorType.BATCH);}
}

现在所有的映射语句可以进行批量操作了,可以在 DAO 中编写如下的代码

public class UserService {private final SqlSession sqlSession;public UserService(SqlSession sqlSession) {this.sqlSession = sqlSession;}public void insertUsers(List<User> users) {for (User user : users) {sqlSession.insert("org.mybatis.spring.sample.mapper.UserMapper.insertUser", user);}}
}

注意,只需要在希望语句执行的方法与 SqlSessionTemplate 中的默认设置不同时使用这种配置。

这种配置的弊端在于,当调用这个方法时,不能存在使用不同 ExecutorType 的进行中的事务。要么确保对不同 ExecutorTypeSqlSessionTemplate 的调用处在不同的事务中,要么完全不使用事务。

SqlSessionDaoSupport

SqlSessionDaoSupport 是一个抽象的支持类,用来为你提供 SqlSession。调用 getSqlSession() 方法你会得到一个 SqlSessionTemplate,之后可以用于执行 SQL 方法,就像下面这样:

public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao {public User getUser(String userId) {return getSqlSession().selectOne("org.mybatis.spring.sample.mapper.UserMapper.getUser", userId);}
}

在这个类里面,通常更倾向于使用 MapperFactoryBean,因为它不需要额外的代码。但是,如果你需要在 DAO 中做其它非 MyBatis 的工作或需要一个非抽象的实现类,那么这个类就很有用了。

SqlSessionDaoSupport 需要通过属性设置一个 sqlSessionFactorySqlSessionTemplate。如果两个属性都被设置了,那么 SqlSessionFactory 将被忽略。

假设类 UserMapperImplSqlSessionDaoSupport 的子类,可以编写如下的 Spring 配置来执行设置:

<bean id="userDao" class="org.mybatis.spring.sample.dao.UserDaoImpl"><property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
http://www.yayakq.cn/news/111072/

相关文章:

  • 网站目录命名盐城市网站
  • 浙江建设局图审网站中关村网站建设公司
  • 群团组织网站建设中山网站建设哪家强
  • 江西做网站的公司绍兴市交通建设有限公司网站
  • 祁东网站设计公司网站开发程序员工资
  • 免费自助建站哪个好环保网站建设多少钱
  • 满城住房和城乡建设局网站国家高新技术企业认定有什么用
  • 传动设备 技术支持 东莞网站建设无锡网站建设收费
  • 浙江龙元建设集团 网站全网营销实战培训
  • 好的国外设计网站推荐企业外部网站建设
  • 北滘网站建设微网站和网站的区别
  • 成都网站备案查询一个人免费观看视频播放
  • 昆山苏州网站建设设计与绘制一个网站首页
  • 关于手表网站建设策划书有哪个网站可以做链接
  • 网站上传在空间哪里网站开发都需要学什么
  • 炒股网站怎么做企业网站制作的市场
  • mvc中手把手做网站企业网盘价格
  • 贵州营销型网站8一9岁的手工
  • 网站导航的展开与收缩怎么做的常见行业门户网站
  • 腾云网站建设球队世界排名榜
  • 做门户网站用什么模板pluto wordpress
  • 龙华营销型网站设计公司起名生成器
  • 深圳网站策划三视觉设计网站
  • 网站建设实施计划书wordpress添加搜索插件
  • 网站建设公司(推荐乐云践新)wordpress删除底部
  • 建站网站方法企业网站搜索引擎推广方法包括
  • 江门有什么网站推广sql数据库的网站迁移
  • 青岛网站建设软件哈尔滨网站基础优化
  • 网站建设应具备的技能商城分销系统
  • h5网站网站设计师简介