本次博客主要介绍mybatis的环境搭建及如何和搭配spring使用,关于动态sql的部分可能会放在后面找一个专题来写。建议要有一定的ibatis的基础
1maven组织结构所需要的jar包
02 |
<groupId>org.mybatis</groupId> |
03 |
<artifactId>mybatis</artifactId> |
04 |
<version>3.2.0</version> |
05 |
<classifier>sources</classifier> |
08 |
<groupId>org.mybatis</groupId> |
09 |
<artifactId>mybatis</artifactId> |
10 |
<version>3.2.0</version> |
14 |
<groupId>log4j</groupId> |
15 |
<artifactId>log4j</artifactId> |
16 |
<version>1.2.15</version> |
19 |
<groupId>mysql</groupId> |
20 |
<artifactId>mysql-connector-java</artifactId> |
21 |
<version>5.1.16</version> |
2 mybatis的配置文件
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}" /> |
15 |
<mapper resource="org/mybatis/example/BlogMapper.xml" /> |
其中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} |
其中几个主要的元素有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(); |
07 |
Blog blog = (Blog) session.selectOne("org.mybatis.example.BlogMapper.selectBlog", 1); |
08 |
System.out.println("blog.name="+blog.getName()); |
java的中调用如上面的代码,首先获取到mybatis的配置文件,然后获取到其中的sqlsessionfactory,通过sqlsessionfactory获取到sqlsession,接下来用sqlsession来执行查询语句。www.bbbkp123.info, www.fp1111.info, www.fp1234.info, www.fpfuzhou.com
另外mybatis和spring也有很好的结合,如果在mybatis中使用spring的话,需要在maven中额外的引入jar包
02 |
<groupId>org.mybatis</groupId> |
03 |
<artifactId>mybatis-spring</artifactId> |
04 |
<version>1.1.1</version> |
05 |
<classifier>sources</classifier> |
08 |
<groupId>org.mybatis</groupId> |
09 |
<artifactId>mybatis-spring</artifactId> |
10 |
<version>1.1.1</version> |
spring的配置文件如下:
02 |
<context:property-placeholder location="classpath:mysql.properties" /> |
04 |
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> |
05 |
<property name="driverClassName" value="${driver}" /> |
06 |
<property name="url" value="${url1}" /> |
09 |
<bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> |
10 |
<property name="dataSource" ref="dataSource" /> |
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" /> |
这里配置了数据源,事务管理器和mybatis的sqlsessionfactory
接下来是如何配置mapper文件
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中的实现方法
3 |
public interface StudentMapper { |
4 |
public StudentEntity getStudent(String studentID); |
具体是测试实现方法如下
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()); |
首先获得spring的配置文件,然后拿到mapper类,并表用mapper类的对应方法
总结一下。本文主要介绍了mybatis的使用及如何和spring配合使用。关于mybasit的底层实现和动态sql我准备以后单独在准备一个博客来写。
http://my.oschina.net/u/947963/blog