mybatis的环境搭建及如何和搭配spring使用

本次博客主要介绍mybatis的环境搭建及如何和搭配spring使用,关于动态sql的部分可能会放在后面找一个专题来写。建议要有一定的ibatis的基础

1maven组织结构所需要的jar包

 

01 <dependency>
02             <groupId>org.mybatis</groupId>
03             <artifactId>mybatis</artifactId>
04             <version>3.2.0</version>
05             <classifier>sources</classifier>
06         </dependency>
07         <dependency>
08             <groupId>org.mybatis</groupId>
09             <artifactId>mybatis</artifactId>
10             <version>3.2.0</version>
11         </dependency>
12  
13         <dependency>
14             <groupId>log4j</groupId>
15             <artifactId>log4j</artifactId>
16             <version>1.2.15</version>
17         </dependency>
18         <dependency>
19             <groupId>mysql</groupId>
20             <artifactId>mysql-connector-java</artifactId>
21             <version>5.1.16</version>
22         </dependency>

2 mybatis的配置文件

 

 

01 <configuration>
02        <properties resource="mysql.properties"></properties>
03     <environments default="development">
04         <environment id="development">
05             <transactionManager type="JDBC" />
06             <dataSource type="POOLED">
07                 <property name="driver" value="${driver}" />
08                 <property name="url" value="${url}" />
09                 <property name="username" value="${username}" />
10                 <property name="password" value="${password}" />
11             </dataSource>
12         </environment>
13     </environments>
14     <mappers>
15         <mapper resource="org/mybatis/example/BlogMapper.xml" />
16     </mappers>
17 </configuration>

其中configuration是根节点,其中properties节点引用了配置文件,setting节点用来做一些性能配置,environment节点用来配置数据库的环境,其中每一个环境对应了一个sqlsessionfactory,mapper节点主要对应着项目的mybatis的mapper文件

 

enviroments可以配置事务管理器,主要有两种类型,一种是JDBC,另一种是managed,www.1111kp.info, www.6699ysk.info, www.aaafaipiao.com, 

datasource用来配置数据源,其有三种类型,unpooled(每次查询都打开关闭连接),pooled(连接池),JNDI。

接下来是mybatis的mapper文件

 

1 <mapper namespace="org.mybatis.example.BlogMapper">
2   <select id="selectBlog" parameterType="int" resultType="org.mybatis.example.Blog">
3     select * from Blog where id = #{id}
4   </select>
5 </mapper>

其中几个主要的元素有select,update,delete,insert,sql,cache,resultmap

 

 

01 public static void main(String[] args) throws IOException {
02         String resource = "org/mybatis/example/mybatis-config.xml";
03         InputStream inputStream = Resources.getResourceAsStream(resource);
04         SqlSessionFactory sqlSessionFactory = newSqlSessionFactoryBuilder().build(inputStream);
05         SqlSession session = sqlSessionFactory.openSession();
06         try {
07           Blog blog = (Blog) session.selectOne("org.mybatis.example.BlogMapper.selectBlog"1);
08           System.out.println("blog.name="+blog.getName());
09         finally {
10           session.close();
11         }
12     }

java的中调用如上面的代码,首先获取到mybatis的配置文件,然后获取到其中的sqlsessionfactory,通过sqlsessionfactory获取到sqlsession,接下来用sqlsession来执行查询语句。www.bbbkp123.info, www.fp1111.info, www.fp1234.info, www.fpfuzhou.com

 

另外mybatis和spring也有很好的结合,如果在mybatis中使用spring的话,需要在maven中额外的引入jar包

 

01 <dependency>
02             <groupId>org.mybatis</groupId>
03             <artifactId>mybatis-spring</artifactId>
04             <version>1.1.1</version>
05             <classifier>sources</classifier>
06         </dependency>
07         <dependency>
08             <groupId>org.mybatis</groupId>
09             <artifactId>mybatis-spring</artifactId>
10             <version>1.1.1</version>
11         </dependency>

 

spring的配置文件如下:

 

01 <!-- 导入属性配置文件 -->
02     <context:property-placeholder location="classpath:mysql.properties" />
03  
04     <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
05         <property name="driverClassName" value="${driver}" />
06         <property name="url" value="${url1}" />
07     </bean>
08  
09     <bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
10         <property name="dataSource" ref="dataSource" />
11     </bean>
12  
13     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
14         <property name="configLocation" value="classpath:org/mybatisspring/test/mybatis-config.xml" />
15         <property name="dataSource" ref="dataSource" />
16     </bean>

这里配置了数据源,事务管理器和mybatis的sqlsessionfactory

 

接下来是如何配置mapper文件

 

1 <!--<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">-->
2         <!--<property name="annotationClass" value="org.springframework.stereotype.Repository"/>-->
3         <!--<property name="basePackage" value="org.mybatisspring.test"/>-->
4         <!--<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>-->
5     <!--</bean>-->
6  
7     <bean id="studentMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
8         <property name="mapperInterface" value="org.mybatisspring.test.StudentMapper" />
9         <property name="sqlSessionFactory" ref="sqlSessionFactory" />

采用第二种的配置方法的话,可以把mapper文件映射成一个java接口。接口中定义了mapper中的实现方法

 

 

1 @Repository
2 @Transactional
3 public interface StudentMapper {
4     public StudentEntity getStudent(String studentID);
5 }

具体是测试实现方法如下

 

 

1 public static void main(String args[]){
2         ApplicationContext ac=new FileSystemXmlApplicationContext("applicationcontext.xml");
3         StudentMapper studentMapper=  ac.getBean(StudentMapper.class);
4         StudentEntity entity = studentMapper.getStudent("123123");
5         System.out.println("name:" + entity.getStudentName());
6     }

首先获得spring的配置文件,然后拿到mapper类,并表用mapper类的对应方法

 

总结一下。本文主要介绍了mybatis的使用及如何和spring配合使用。关于mybasit的底层实现和动态sql我准备以后单独在准备一个博客来写。

 

 

 

http://my.oschina.net/u/947963/blog

 

 

posted on 2013-03-05 22:09  show_time  阅读(516)  评论(0编辑  收藏  举报