设为首页 收藏本站
查看: 1365|回复: 0

[经验分享] Spring MyBatis PostgreSQL 整合

[复制链接]

尚未签到

发表于 2016-11-21 08:53:26 | 显示全部楼层 |阅读模式
  Spring MyBatis整合,首先来看Spring配置文件,
  Spring配置文件如下:



<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd
    ">
    <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource">
       <property name="driverClassName" value="org.postgresql.Driver">
       </property>
       <property name="url"
           value="jdbc:postgresql:testdb">
       </property>
       <property name="username" value="postgres"></property>
       <property name="password" value="nirvana7"></property>
    </bean>
   <!---->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
       <property name="dataSource" ref="myDataSource"/>
       <property name="configLocation" value="bin/resource/mybatis-config.xml"/>
    </bean>
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
       <property name="basePackage" value="Mapper"/>
    </bean>
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
       <property name="dataSource" ref="myDataSource"/>
    </bean>
</beans>
  跟MyBatis直接连接数据库不一样的地方,
  在SqlSessionFactory的生成方式上,
  MyBatis直接连接的时候,是通过SqlSessionFactoryBuilder读取MyBatis配置文件生成。
  Spring整合MyBatis的时候,是通过Spring配置文件片段生成的。



    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
       <property name="dataSource" ref="myDataSource"/>
       <property name="configLocation" value="bin/resource/mybatis-config.xml"/>
    </bean>
  配置源和事务处理方式的指定也由Spring配置文件完成了。
  当然MyBatis配置文件还是有用处的,比如typeAlias和Setting等的设置还是要通过它来完成的。
  

  这里没有指定MyBatis的Sql映射器配置文件,因为我这里指定了MyBatis配置文件,在MyBatis配置文件当中,指定了Sql映射器配置文件。
  如果没有配置MyBatis配置文件的话,且Sql映射器配置文件与相应的接口同名,且在同一路径下,那么可以不配置该选项。
  如果配置的话,需要在sqlSessionFactory里进行配置,例:



<property name="mapperLocations" value="src/UserMapper.xml"/>
  还需要注册映射接口的。
  有两种方式,我用的是扫描法,如下:



    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
       <property name="basePackage" value="Mapper"/>
    </bean>
  还有一种方式是



<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
       <property name="mapperInterface" value="com.deppon.pda.v2.mapper.User.UserMapper"/>
       <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
  这样就整合完成了,原来使用的MyBatis配置文件和Sql映射文件都可以不用改变。
  调用代码为,



package test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import bean.User;
import Mapper.UserMapper;
import dao.UserDao;
public class UserTest {
    public static void main(String[] args){   
        ApplicationContext aContext =new ClassPathXmlApplicationContext("applicationContext.xml");
        UserMapper userMapper = aContext.getBean(UserMapper.class);
        User user = userMapper.getUser("fff");
        System.out.println(user.getAge());
    }   
}
  当然了,数据库里面要插入一条fff的记录。
  全部代码上传上去,一些包需要自己下载。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-303208-1-1.html 上篇帖子: postgresql之vacuum 下篇帖子: PostgreSQL+PostGIS的使用(转载)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表