Spring简述三——Spring和JDBCTemplate的整合&& Spring和Mybatis的整合使用

其他Spring相关文章
Spring简述一
Spring简述二

Spring提供了JavaEE的一整套解决方案(展示层 业务层 dao层)
jdbCTemplate是dao层的解决方案,mybatis也是dao层的解决方案

Spring中JDBCTemplate的使用:

创建数据源(实现datasource的接口)
创建JDBCTemplate对象通过数据源来实例化

JDBCTemplate的使用步骤:
1、引入依赖
MySQL驱动包、Spring-jdbc

MySQL的驱动包,spring-jdbc
<!--Spring 的JDBC模板操作-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>4.2.8.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>4.2.8.RELEASE</version>
    </dependency>
    <!--mysql驱动包-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.18</version>
    </dependency>

2、JDBCTemplate模板编码使用

   //数据源
        DriverManagerDataSource dataSource = new DriverManagerDataSource();


        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/test");
        dataSource.setUsername("root");
        dataSource.setPassword("123456");


        //jdbcTemplate对象
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

        //插入操作 jdbcTemplate.update
        String sql = "insert into Student(SID,Sname,Sage) values(?,?,?)";
//        jdbcTemplate.update(sql,9,"GY1313", 22);


        //修改操作 jdbcTemplate.update
        String sql1="update Student set Ssex = ? where SID = ?";
//        jdbcTemplate.update(sql1, 1, 9);


        //删除操作 jdbcTemplate.update
        String sql2 = "delete from Student where SID = ?";
//        jdbcTemplate.update(sql2, 9);


        //查询操作
        //查询单个的用户 jdbcTemplate.queryForObject
        //需要实现RowMapper接口,作用是完成数据库数据和JAVA对象的映射
        String sql4 ="select * from Student where SID = ?";
//        Student1 student1 = jdbcTemplate.queryForObject(sql4, new StudentMapper(), 8);
//        System.out.println(student1);


        //查询表中所有的结果 jdbcTemplate.query


        String sql5 = "select * from Student";
        List <Student1> student1s = jdbcTemplate.query(sql5, new StudentMapper());
        System.out.println(student1s.size());
}
}
/**
     * 手动的将数据库结果映射为JAVA的对象
     */
    static class StudentMapper implements RowMapper<Student1>{
        @Override
        /**
         * 参数:ResultSet rs,  数据库返回的结果集,注意:表示的是一行数据的结果集
         * int rowNum   表示行号
         *
         * 返回参数:Student1  表示返回的对象的类型
         */
        public Student1 mapRow(ResultSet rs, int rowNum) throws SQLException {
            //返回的对象
            Student1 student1 = new Student1();


            //将数据库获取的参数值交给student对象
            student1.setSID(rs.getInt("SID"));
            student1.setSname(rs.getString("Sname"));
            student1.setSsex(rs.getString("Ssex"));
            student1.setSage(rs.getString("Sage"));


            return student1;
        }
    }

Spring和mybatis的整合使用

整合思路:就是将mybatis中创建出来的对象交给Spring进行单例管理——sqlSessionfactory

整合步骤:
1、引入依赖

spring核心jar、驱动jar包、mybatis的jar、mybatis-spring包
spring-jdbc \spring-tx
<!--mybatis和spring整合包-->
<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis-spring</artifactId>
  <version>1.3.0</version>
</dependency>  

2、创建mybatis配置文件

  <?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>
      <!--数据源 和spring整合后交给spring管理-->
         
      <!--mapper映射  整合放在spring的配置文件中-->
      
  </configuration>

3、创建student表,创建pojo类,创建mapper.xml 创建mapper.Java
4、创建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:aop="
http://www.springframework.org/schema/aop"
         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
      
http://www.springframework.org/schema/aop
      
http://www.springframework.org/schema/aop/spring-aop.xsd">
  
      <!--配置数据源-->
      <bean id="dataSource" class="com.mchange.v2.c3p0.DriverManagerDataSource">
          <property name="driverClass" value="com.mysql.jdbc.Driver"/>
          <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test"/>
          <property name="user" value="root"/>
          <property name="password" value="123456"/>
      </bean>
      <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
          <!--注入数据源-->
          <property name="dataSource" ref="dataSource"/>
  
          <!--注入mybatis的配置xml文件-->
          <property name="configLocation" value="classpath:mybatis/spring-mybatis.xml"/>
  
          <!--注入mapper映射-->
          <property name="mapperLocations" value="classpath*:mapper/*Mapper.xml"/>
      </bean>
  
     <单个创建对象>
      <bean id="studentMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
          <!--注入接口-->
          <property name="mapperInterface" value="com.tulun.dao7.StudentMapper"/>
          <!--z注入会话工厂-->
          <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
      </bean>
      
      <!--
      批量的创建代理对象
      -->
      <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
          <property name="basePackage" value="com.tulun.dao7"/>
          <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
      </bean>
  </beans>

版权声明:本文为weixin_44836685原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。