mybatis杂想

sessionmybatis的实现就是对原有的一部分内容进行替换和简化.

首先原有的basedao结构可以被配置文件进行替换掉,配置文件中可以对数据库的连接进行直接的配置.

mybatis中对dao层的实现进行了简化,以往的dao层实现都是通过继承这个借口,进行方法的实现, 现在对于虚拟方法的实现由XML文件进行,XML文件通过命名空间namespace的方法与dao文件建立联系,通过取值dao文件的方法名进行实现,同时, XML文件中可以实现更加方便的SQL编写OGNL语句的书写,通过该语句可以实现更为灵活的SQL连接.

mybatis最后的使用则是:

     // 测试之前的初始化

     @Before

     public void init() throws IOException {

          // 获取mybatis-config.xml 的输入流

          InputStream is =  Resources.getResourceAsStream("mybatis-config.xml");

          // 创建sqlSessionFactory 对象 完成配置文件的读取

          SqlSessionFactory factory = new  SqlSessionFactoryBuilder().build(is);

          // 创建sqlsession

          session = factory.openSession();

     }

 

在获取了足够的配置文件和前置条件之后,通过 session进行操作:

     // 使用selectOne() 方法进行

     @Test

     public void testGetTotalCount() throws IOException {

          // 参数是mapper 的 namespace + select 的 id

          int count =  session.selectOne("dao.UserMapper.getTotalCount");

          System.out.println("人数是:" + count);

     }

     // 通过getMapper() 方法进行

     @Test

     public void testFindAll() throws IOException {

          UserMapper userdao =  session.getMapper(UserMapper.class);

          // service 调用dao

          List<User> count = userdao.findAll();

          for (User user : count) {

              System.out.println(user.getUserName());

          }

     }

 

spring对mybatis的整合:

首先对mybatis中的配置文件进行整合,将mybatis的配置文件合并到自己的spring-mybatis.XML文件中

    <bean  class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

          <property name="localhost"  value="classpath:db.properties"></property>

     </bean>

 

    <bean id="dataSource"  class="org.apache.commons.dbcp.BasicDataSource"

        destroy-method="close">

        <property name="driverClassName"  value="com.mysql.jdbc.Driver" />

       <property name="url">

             <value><![CDATA[jdbc:mysql://localhost:3306/smbms?useUnicode=true&characterEncoding=utf-8]]></value>

        </property>

        <!-- property name="url"  value="jdbc:mysql://127.0.0.1:3306/smbms?

                         useUnicode=true&amp;characterEncoding=utf-8" /> -->

        <property name="username" value="root" />

        <property name="password" value="root" />

    </bean>

 

    <!-- 配置SqlSessionFactoryBean -->

    <bean id="sqlSessionFactory"  class="org.mybatis.spring.SqlSessionFactoryBean">

        <!-- 引用数据源组件 -->

        <property name="dataSource" ref="dataSource" />

        <!-- 引用MyBatis配置文件中的配置 -->

        <property name="configLocation"  value="classpath:mybatis-config.xml" />

         <!-- 配置关联值实体类文件 -->

        <property name="typeAliasesPackage"  value="cn.bdqn.entity"></property>

        <!-- 配置SQL映射文件信息 -->

        <property name="mapperLocations">

            <list>

                <value>classpath:cn/bdqn/dao/*.xml</value>

            </list>

        </property>

    </bean>

 

这样的话mybatis的配置文件就被spring的配置文件合并了:

连接数据库的关键数据存储在相关的配置文件中db.properties

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/smbms?useUnicode=true&characterEncoding=utf-8

username=root

password=root

通过以下语句读取配置文件中的数据:

     <bean  class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

          <property name="localhost"  value="classpath:db.properties"></property>

     </bean>

进行数据库的连接:

    <bean id="dataSource"  class="org.apache.commons.dbcp.BasicDataSource"

        destroy-method="close">

       <property name="driverClassName"  value="com.mysql.jdbc.Driver" />

       <property name="url">

             <value><![CDATA[jdbc:mysql://localhost:3306/smbms?useUnicode=true&characterEncoding=utf-8]]></value>

        </property>

        <!-- property name="url"  value="jdbc:mysql://127.0.0.1:3306/smbms?

                         useUnicode=true&amp;characterEncoding=utf-8" /> -->

        <property name="username" value="root" />

        <property name="password" value="root" />

    </bean>

替代mybatis文件关联dao层文件:

<property name="typeAliasesPackage"  value="cn.bdqn.entity"></property>

最后将mybatis实际运用时的需要建立的sqlsession工厂函数直接在配置中进行了明确:

    <!-- 配置SqlSessionFactoryBean -->

    <bean id="sqlSessionFactory"  class="org.mybatis.spring.SqlSessionFactoryBean">

        <!-- 引用数据源组件 -->

        <property name="dataSource" ref="dataSource" />

        <!-- 引用MyBatis配置文件中的配置 -->

        <property name="configLocation"  value="classpath:mybatis-config.xml" />

         <!-- 配置关联值实体类文件 -->

        <property name="typeAliasesPackage"  value="cn.bdqn.entity"></property>

        <!-- 配置SQL映射文件信息 -->

        <property name="mapperLocations">

            <list>

                <value>classpath:cn/bdqn/dao/*.xml</value>

            </list>

        </property>

    </bean>

spring中最终就是将mybatis全部吸收了,没有了配置文件,没有了执行时需要进行的sqlsession创建,只保留了最为精华的mapper.xml文件,方法的使用则通过注解的方式进行.

在获取了足够的配置文件和前置条件之后,通过 session进行操作:

     // 使用selectOne() 方法进行

     @Test

     public void testGetTotalCount() throws IOException {

          // 参数是mapper 的 namespace + select 的 id

          int count =  session.selectOne("dao.UserMapper.getTotalCount");

          System.out.println("人数是:" + count);

     }

     // 通过getMapper() 方法进行

     @Test

     public void testFindAll() throws IOException {

          UserMapper userdao =  session.getMapper(UserMapper.class);

          // service 调用dao

          List<User> count = userdao.findAll();

          for (User user : count) {

              System.out.println(user.getUserName());

          }

     }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值