javaEE框架的session获取

1、Mybatis的SQLSession获取MapperDao,有两种

1.1、独立框架使用

全局配置文件(SqlMapConfig.xml)+SqlSession获取方式+MapperDao

SqlSession获取语句

String config="SqlMapConfig.xml";
Reader reader=Resources.getResourceAsReader(config);
SqlSessionFactoryBuilder sfb=new SqlSessionFactoryBuilder();
SqlSessionFactory factory=sfb.build(reader);
SqlSession session=factory.openSession();

//获取映射Dao
//<mappers>:<mapper>:'resource'表示mappers元素下mapper元素下属性resource-->
SqlMapConfig.xml--><mappers>:<mapper>:'resource'-->CostMapperDao;
//取得session之后:
EmpMapDao empDao=session.getMapper(EmpMapDao.class);

  

SqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE configuration PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN" 
	"http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
<configuration>
	<environments default="environment">
		<environment id="environment">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver" />
				<property name="url"
					value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8" />
				<property name="username" value="root" />
				<property name="password" value="123456" />
			</dataSource>
		</environment>
		<!-- Oracle数据库 -->
		<!-- <environment id="environment">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" 
					value="oracle.jdbc.OracleDriver" />
				<property name="url"
					value="jdbc:oracle:thin:@192.168.0.23:1521:tarena10g"/>
				<property name="username" value="demo" />
				<property name="password" value="demo" />
			</dataSource>
		</environment> -->
	</environments>
	<!-- 加载SQL语句的xml文件 -->
	<mappers>
		<mapper resource="com/jams/ibatis/entity/CostSQL.xml" />
		<mapper resource="com/jams/ibatis/entity/UserSql.xml" />
		<mapper resource="com/jams/ibatis/entity/EmpSql.xml" />
	</mappers>
</configuration> 

 

1.2、与springmvc框架集成获取

spring配置文件+MapperDao(不需要Mybatis的全局配置文件了)

applicationContext.xml

<!-- SqlSessionFactory -->
<!-- dbcp -->
<bean id="dbcp" class="org.apache.commons.dbcp.BasicDataSource">
	<property name="username" value="root"/>
	<property name="password" value="123456"/>
	<property name="url" value="jdbc:mysql://localhost:3306/mynote?useUnicode=true&characterEncoding=utf8"/>
	<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
</bean>
<bean id="ssf" class="org.mybatis.spring.SqlSessionFactoryBean">
	<!-- 参数1dbcp -->
	<property name="dataSource" ref="dbcp"/>
	<!-- 参数2mapper文件位置 -->
	<property name="mapperLocations" value="classpath:com/jams/note/mapper/*.xml"/>
</bean>
		
<!-- mapperScanner,扫描MapperDao,实例Dao只需要@Resource注入,按照第一位小写就可以使用 -->
<bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
	<!-- 基础包 -->
	<property name="basePackage" value="com.jams.note.dao"/>
	<!-- SqlSessionFactory -->
	<!-- <property name="sqlSessionFactory" ref="ssf"/> -->
	<!-- 限制访问 -->
	<!-- <property name="annotationClass" value=""/> -->
</bean>

获取MapperDao的实例

bookDao=ac.getBean("noteBookMapperDao", NoteBookMapperDao.class);
或
@Resource
private NoteBookMapperDao noteBookMapperDao;
method{
    //noteBookMapperDao....
}

  

2、Hibernate框架获取Session

2.1、框架单独使用

String config="hibernate.cfg.xml";
Configuration conf=new Configuration();
conf.configure();
//获取sessionFactory
sf=conf.buildSessionFactory();
//获取session
Session session=sf.openSession();

3、spring获取session

3、1在web.xml配置(我也不清楚是否必须)

<listener>
        <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
 </listener>

3、2在需要的地方添加

@Resource
private HttpSession session;

  

原文地址:https://www.cnblogs.com/jamsbwo/p/4893339.html