mybatis demo

基于mybatis的应用都是以一个  SqlSessionFactory 为中心的。

sqlSessionFactory的实例可以通过一个sqlSessionFactoryBuilder获取,sqlSessionFactoryBuilder可以通过mybatis的配置文件或者一个之前定义的configuration来生成sqlSessionfactory.

通过mybatis配置文件获取:

mybatis简单的配置文件:(此时,该xml建议放在项目根目录下面)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <properties resource="db.properties"/>
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${user}"/>
        <property name="password" value="${passwd}"/>
      </dataSource>
    </environment>
  </environments>
   <mappers>
    <mapper resource="mapper/userMapper.xml"/>
  </mappers>
</configuration>
View Code

获取SqlSessionFactory:

1         String source = "mybatis.xml";
2         InputStream is = null;
3         try {
4             is = Resources.getResourceAsStream(source);
5         } catch (IOException e) {
6             // TODO Auto-generated catch block
7             e.printStackTrace();
8         }
9         SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
View Code

不使用配置文件创建sqlSessionFactory:

DataSource dataSource = BlogDataSourceFactory.getBlogDataSource();
TransactionFactory transactionFactory = new JdbcTransactionFactory();
Environment environment = new Environment("development", transactionFactory, dataSource);
Configuration configuration = new Configuration(environment);
configuration.addMapper(BlogMapper.class);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
View Code

 

既然有了sqlSessionFactory那么就可以通过,sqlSessionFactory获取sqlSession然后执行sql了。

mybatsi映射sql语句有三种方法,一种是通过xml配置sql语句,二种是通过定义接口,然后在接口上注解sql语句,第三种是即定义接口但不实用注解又使用xml配置文件。

第一种方法只要是通过mybatis的配置文件获取的sqlSessionFactory直接获取sqlsession执行即可,

第二种方法只要是按照不使用配置文件创建的sqlSessionFactory直接获取sqlSession执行 即可。

第三种方式可以使用配置文件获取的sqlSessionFactory,但是要先注册定义的接口,

factory.getConfiguration().addMapper(UserMapper.class);

这样在获取sqlsession执行即可

 

posted on 2017-02-09 23:19  monkeydai  阅读(127)  评论(0)    收藏  举报

导航