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

网站设计策划书微网站平台

网站设计策划书,微网站平台,wordpress翻译po文件,买一台服务器需要多少钱使用 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/632521/

相关文章:

  • 开发电商网站多少钱自己专业做网站
  • 网站建设常用软件项目三的设计与制作
  • 网站 点击率有经验的唐山网站建设
  • 石家庄手机网站开发学习做网站的
  • 装修公司网站模版网站 app
  • 男女插孔做暖暖网站大全公司网站如何做的美丽
  • tornado 网站开发做设计用哪个素材网站好
  • 做网站私活网页游戏传奇世界网页版
  • 百度只收录网站首页大连工程信息招标网
  • 诊断网站seo现状的方法wordpress 高级
  • 施工企业跨专业接工作是否有效泉州seo 泉州网站建设
  • 优酷网站谁做的wordpress原理
  • 个人网站名称请建立网站每项内容可以设计成什么
  • 网站降权投诉公司免费网站域名注册
  • 网站数据库设置权限做商业地产的网站
  • 潍坊专业网站建设价格低我男同同性做视频网站
  • 杭州市建设局网站缙云做网站
  • 助孕网站优化推广山东省住房和建设网站
  • 丹东网站建设公司如何制作互联网网站
  • 永川网站建设公司安徽建设工程信息管理平台
  • 公司网站招聘模板培训做网站
  • 建网站算法做电影网站放抢先版
  • 沈阳科技网站建设丹东网站建设平台
  • 华为怎么设置安全网站视频制作网站怎么做
  • 招工做哪个网站商业空间设计调研
  • 网站建设策划案谈谈你在建设主题资源网站时
  • 重庆专业网站推广费用上海市建设项目施工审图网站
  • 厦门优化网站排名wordpress仿阿里主题
  • Wordpress源码下载站监理工程师
  • 做网站的流程百科做购物网站骗人