Spring-xml(+注解)方式整合第三方的框架-mybatis

打印 上一主题 下一主题

主题 874|帖子 874|积分 2622

1)不需要自定义命名空间:MyBatis
Spring整合Mybatis的步骤如下:
  1. // 原始配置
  2. <dependency>
  3.       <groupId>mysql</groupId>
  4.       <artifactId>mysql-connector-java</artifactId>
  5.       <version>5.1.49</version>
  6. </dependency>
  7. <dependency>
  8.       <groupId>org.mybatis</groupId>
  9.       <artifactId>mybatis</artifactId>
  10.       <version>3.5.10</version>
  11. </dependency>
  12. // mybatis配置文件
  13. <?xml version="1.0" encoding="UTF-8" ?>
  14. <!DOCTYPE configuration
  15.         PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  16.         "http://mybatis.org/dtd/mybatis-3-config.dtd">
  17. <configuration>
  18.     <environments default="development">
  19.         <environment id="development">
  20.             <transactionManager type="JDBC"/>
  21.             <dataSource type="POOLED">
  22.                 <property name="driver" value="com.mysql.jdbc.Driver"/>
  23.                 <property name="url" value="jdbc:mysql://localhost:3306/dianping"/>
  24.                 <property name="username" value="root"/>
  25.                 <property name="password" value="123"/>
  26.             </dataSource>
  27.         </environment>
  28.     </environments>
  29.     <mappers>
  30.         <mapper resource="com/springdemo/service/Mapper/userMapper.xml"/>
  31.     </mappers>
  32. </configuration>
  33. // mapper配置文件
  34. <?xml version="1.0" encoding="UTF-8" ?>
  35. <!DOCTYPE mapper
  36.         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  37.         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  38. <mapper namespace="com.springdemo.service.Mapper.userMapper">
  39.     <select id="getList" resultType="com.springdemo.service.pojo.userDto">
  40.         select * from tb_user
  41.     </select>
  42. </mapper>
  43. //测试
  44. InputStream in = Resources.getResourceAsStream("MybatisConfigure.xml");
  45. SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
  46. SqlSessionFactory sqlSessionFactory = builder.build(in);
  47. SqlSession sqlSession = sqlSessionFactory.openSession();
  48. userMapper userMapper = sqlSession.getMapper(userMapper.class);
  49. List<userDto> list = userMapper.getList();
  50. for(userDto userDto:list){
  51.      System.out.println(userDto.toString());
  52. }
  53. // 输出
  54. userDto{id=1, phone='13686869696', nick_name='小鱼同学', password='', icon='/imgs/blogs/blog1.jpg'}
  55. userDto{id=2, phone='13838411438', nick_name='可可今天不吃肉', password='', icon='/imgs/icons/kkjtbcr.jpg'}
  56. userDto{id=4, phone='13456789011', nick_name='user_slxaxy2au9f3tanffaxr', password='', icon=''}
  57. userDto{id=5, phone='13456789001', nick_name='可爱多', password='', icon='/imgs/icons/user5-icon.png'}
复制代码
  导入Mybatis整个Spring的相关坐标;
  编写Mapper和Mapper.xml
  配置SqlSessionFactoryBean和MapperScannerConfigurer
  测试
  1. // Spring整合Mybatis
  2. // 主要配置SqlSessionFactory 和 MapperScannerConfigurer 生成usermapper对象交给spring管理<br>// 依赖<br>
复制代码
  1. <dependency><br>  <groupId>org.mybatis</groupId><br>  <artifactId>mybatis</artifactId><br>  <version>3.5.10</version><br></dependency><br><dependency><br>  <groupId>org.mybatis</groupId><br>  <artifactId>mybatis-spring</artifactId><br><version>2.0.6</version>
复制代码
  1. <dependency><br>  <groupId>mysql</groupId><br>  <artifactId>mysql-connector-java</artifactId><br>  <version>5.1.49</version><br></dependency><br>// 不需要mybatis配置文件和配置扫描的mapper包,直接通过spring生成bean
复制代码
  1.   <bean id="userDao" ><br>        <property name="usermapper" ref="userMapper"></property><br>    </bean><br>    <bean id="dataSource" ><br>        <property name="driverClassName" value="com.mysql.jdbc.Driver"></property><br>        <property name="url" value="jdbc:mysql://localhost:3306/dianping"></property><br>        <property name="username" value="root"></property><br>        <property name="password" value="123"></property><br>    </bean><br>    <strong><bean ></strong><br><strong>        <property name="dataSource" ref="dataSource"></property></strong><br><strong>    </bean></strong><br><strong>    <bean ></strong><br><strong>        <property name="basePackage" value="com.springdemo.service.Mapper"></property></strong><br><strong>    </bean></strong>
复制代码
  1. // 测试在userdao中注入usermapper对象 操作数据库输出<br>
复制代码
  1. public class userDaoImpl implements userDao{<br>    private userMapper usermapper;// 类中定义依赖对象<br>    public void setUsermapper(userMapper usermapper) {// 配置设置方式,Spring将对象作为参数传给this对象<br>        this.usermapper = usermapper;<br>    }<br>    @Override<br>    public void show(){<br>        List<userDto> list = usermapper.getList();<br>        for(userDto userDto:list){<br>            System.out.println(userDto.toString());<br>        }<br>    }<br>}<br>// 结果
复制代码
userDto{id=1, phone='13686869696', nick_name='小鱼同学', password='', icon='/imgs/blogs/blog1.jpg'}
userDto{id=2, phone='13838411438', nick_name='可可今天不吃肉', password='', icon='/imgs/icons/kkjtbcr.jpg'}
userDto{id=4, phone='13456789011', nick_name='user_slxaxy2au9f3tanffaxr', password='', icon=''}
userDto{id=5, phone='13456789001', nick_name='可爱多', password='', icon='/imgs/icons/user5-icon.png'}
  1.  
复制代码
 
2)需要引入第三方框架命名空间ubbo 自定义命名空间 暂时先搁置
3.利用注解方式整合mybatis:标签替换为注解,配置文件替换为配置类
  1. public class MybatisComponent {
  2.     @Bean("dataSource")
  3.     public DruidDataSource DataSource(){
  4.         DruidDataSource dataSource = new DruidDataSource();
  5.         dataSource.setDriverClassName("com.mysql.jdbc.Driver");
  6.         dataSource.setUrl("jdbc:mysql://localhost:3306/dianping");
  7.         dataSource.setUsername("root");
  8.         dataSource.setPassword("123");
  9.         return dataSource;
  10.     }
  11.     @Bean
  12.     public SqlSessionFactoryBean SqlSessionFactoryBean(@Autowired DruidDataSource dataSource){
  13.         SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
  14.         sqlSessionFactoryBean.setDataSource(dataSource);
  15.         return sqlSessionFactoryBean;
  16.     }
  17. }
  18. @Configuration  // 标注当前类是一个配置类(代替配置文件) + @Component
  19. //<context:component-scan base-package="com.springdemo.service"></context:component-scan>
  20. @ComponentScan(basePackages = "com.springdemo.service") //basePackages 数组
  21. //<context:property-placeholder location="classpath:test.properties"></context:property-placeholder>
  22. @PropertySource(value = {"classpath:test.properties"}) // key-value 配置文件 数组
  23. @MapperScan(value = {"com.springdemo.service.Mapper"})
  24. @Import(MybatisComponent.class) // 将MybatisComponent类收纳到SpringConfig下,不需要配置@Component注解
  25. public class SpringConfig {
  26. }
  27. @Mapper
  28. public interface userMapper {
  29.     List<userDto> getList();
  30. }<br><br>// 测试<br>
复制代码
  1. ApplicationContext applicationContext = new AnnotationConfigApplicationContext(SpringConfig.class);<br>userDao usedao = (userDao) applicationContext.getBean(userDao.class);<br>System.out.println(usedao);<br>usedao.show();<br><br>// 结果
复制代码
userDto{id=1, phone='13686869696', nick_name='小鱼同学', password='', icon='/imgs/blogs/blog1.jpg'}
userDto{id=2, phone='13838411438', nick_name='可可今天不吃肉', password='', icon='/imgs/icons/kkjtbcr.jpg'}
userDto{id=4, phone='13456789011', nick_name='user_slxaxy2au9f3tanffaxr', password='', icon=''}
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

千千梦丶琪

金牌会员
这个人很懒什么都没写!

标签云

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