• spring_150907_sqlmapclientdaosupport_getSqlMapClient


    1、新建java工程:spring_150907_sqlmapclientdaosupport_getSqlMapClient,如下图所示:

    2、工程里添加spring、hibernate、ibatis相关jar包,如下图所示:

    3、新建DogPetService接口:

    package com.spring.service;
    
    public interface DogPetService {
        public void queryAllDogPets();
    }

    4、新建DogPetService接口的实现类DogPetServicImpl:

    package com.spring.service.impl;
    
    import java.util.List;
    
    import javax.annotation.Resource;
    
    import org.springframework.stereotype.Controller;
    
    import com.spring.service.DogPetService;
    import com.spring.dao.DogPetDAO;
    import com.spring.model.DogPet;
    
    @Controller(value="DogPetService")
    public class DogPetServiceImpl implements DogPetService{
        private DogPetDAO dogPetDAO;
    
        public DogPetDAO getDogPetDAO() {
            return dogPetDAO;
        }
        
        @Resource(name="dogPetDAO")
        public void setDogPetDAO(DogPetDAO dogPetDAO) {
            this.dogPetDAO = dogPetDAO;
        }
    
        @Override
        public void queryAllDogPets() {
            List<DogPet> list = dogPetDAO.queryAllDogPets();
            if(list != null)
            {
                for(DogPet d:list)
                {
                    System.out.println(d.toString());
                }
            }
        }
    }

    5、新建DogPetDAO类:

    package com.spring.dao;
    
    import java.util.List;
    
    import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
    
    import com.spring.model.DogPet;
    
    public class DogPetDAO extends SqlMapClientDaoSupport 
    {
        
        public List<DogPet> queryAllDogPets()
        {
            List<DogPet> list = null;
            try 
            {
                list = getSqlMapClient().queryForList("c_queryDog");
            }
            catch (Exception e) 
            {
                e.printStackTrace();
            }
            return list;
        }
    
    }

    5、新建实体类DogPet:

    package com.spring.model;
    
    public class DogPet {
        
        private int id;
        private String name;
        private int age;
        private String kind;
        private String sex;
        private String health;
        
    
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        public String getKind() {
            return kind;
        }
        public void setKind(String kind) {
            this.kind = kind;
        }
        public String getSex() {
            return sex;
        }
        public void setSex(String sex) {
            this.sex = sex;
        }
        public String getHealth() {
            return health;
        }
        public void setHealth(String health) {
            this.health = health;
        }
        
        public String toString()
        {
            return id+"--"+name+"--"+kind+"--"+age+"--"+health;
        }
    }

    7、新建jdbc.properties属性文件:

    driver=oracle.jdbc.driver.OracleDriver
    url=jdbc:oracle:thin:@10.32.145.254:1521:cspperf
    user=icdwf
    password=icdwf

    8、新建beans.xml配置文件:

    <?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"
            xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
            xsi:schemaLocation="
                http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
                http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
                http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd
                http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
        <context:annotation-config/>
        
        <context:component-scan base-package="com.spring"></context:component-scan>
        
    </beans>            

    9、新建dao.xml配置文件:

    <?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"
        xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="
                http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
                http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
                http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd
                http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
                http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
    
        <!-- 利用annotation配置声明式事物管理  begin-->
        <bean
            class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
            <property name="locations">
                <value>classpath:jdbc.properties</value>
            </property>
        </bean>
    
        <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
            destroy-method="close">
            <property name="driverClassName" value="${driver}" />
            <property name="url" value="${url}" />
            <property name="username" value="${user}" />
            <property name="password" value="${password}" />
        </bean>
        
        <!--<bean id="sessionFactory"
            class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
            <property name="dataSource" ref="dataSource" />
            <property name="annotatedClasses">
                <list>
                    <value>com.spring.model.DogPet</value>
                </list>
            </property>
            <property name="hibernateProperties">
                <value>
                    hibernate.dialect=org.hibernate.dialect.MySQLDialect
              </value>
            </property>
        </bean>
    
        <bean id="txManager"
            class="org.springframework.orm.hibernate3.HibernateTransactionManager">
            <property name="sessionFactory" ref="sessionFactory" />
        </bean>
        
        
        
        -->
        
        
        <!--<tx:advice id="txAdvice" transaction-manager="txManager">
            <tx:attributes>
                <tx:method name="query*" read-only="true" />
                <tx:method name="*" />
            </tx:attributes>
        </tx:advice>
    
        <aop:config>
            <aop:pointcut id="dogPetServiceOperation"
                expression="execution(* com.spring..*(..))" />
            <aop:advisor advice-ref="txAdvice" pointcut-ref="dogPetServiceOperation" />
        </aop:config>
    
        -->
        
        <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
            <property name="configLocation" >
                <value>classpath:sqlMapConfig.xml</value>
            </property>
            <property name="dataSource" ref="dataSource"/>
        </bean>
        
        
        <!--<tx:annotation-driven transaction-manager="txManager"/>
        
        --><!-- 利用annotation配置声明式事物管理  end-->
        
        <!-- 
        1、继承HibernateDaoSupport类,第一种数据库访问方式
        
         设置HibernateDaoSupport抽象类  
        <bean id="hibernateDaoSupport"  
            class="org.springframework.orm.hibernate3.support.HibernateDaoSupport"  
            abstract="true">  
            <property name="sessionFactory" ref="sessionFactory" />  
        </bean>  
    
         dao的操作的bean   
        <bean id="dogPetDAO" class="com.spring.dao.DogPetDAO" parent="hibernateDaoSupport" /> 
    
        2、继承HibernateDaoSupport类,第二种数据库访问方式
        <bean id="dogPetDAO" class="com.spring.dao.DogPetDAO" >
            <property name="sessionFactory" ref="sessionFactory"></property>
        </bean>
        
        -->
        
        <!--
        <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">  
            <property name="sessionFactory" ref="sessionFactory" />  
        </bean>  
        
        -->
        <bean id="dogPetDAO" class="com.spring.dao.DogPetDAO">
            <property name="sqlMapClient" ref="sqlMapClient"/>
        </bean>
    
        
      
    </beans>            

    10、新建sqlMapConfig文件:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE sqlMapConfig
    PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
    "http://www.ibatis.com/dtd/sql-map-config-2.dtd">
    <sqlMapConfig>
        <!--<settings cacheModelsEnabled="true" enhancementEnabled="true"
            lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="32"
            maxSessions="10" maxTransactions="5" useStatementNamespaces="false" />
        --><!--<transactionManager type="JDBC">
            <dataSource type="SIMPLE">
                <property name="JDBC.Driver" value="oracle.jdbc.driver.OracleDriver" />
                <property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@localhost:1521:xe" />
                <property name="JDBC.Username" value="icdwf" />
                <property name="JDBC.Password" value="icdwf" />
                <property name="Pool.MaximumActiveConnections" value="10" />
                <property name="Pool.MaximumIdleConnections" value="5" />
                <property name="Pool.MaximumCheckoutTime" value="120000" />
                <property name="Pool.TimeToWait" value="500" />
                <property name="Pool.PingQuery" value="select 1 from ACCOUNT" />
                <property name="Pool.PingEnabled" value="false" />
                <property name="Pool.PingConnectionsOlderThan" value="1" />
                <property name="Pool.PingConnectionsNotUsedFor" value="1" />
            </dataSource>
        </transactionManager>
        -->
        <sqlMap resource="dogPet.xml" />
    </sqlMapConfig>

    11、新建dogPet.xml配置文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE sqlMap
    PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
    "http://www.ibatis.com/dtd/sql-map-2.dtd">
    <sqlMap namespace="Dog">
        <typeAlias alias="dog" type="com.spring.model.DogPet" />
        <select id="c_queryDog" resultClass="dog">
            <![CDATA[
                select *
                from t_dog
            ]]>            
        </select>
        <delete id="c_deleteDog" parameterClass="dog">
            <![CDATA[
                delete t_dog
                where name=#name#
                  and id = #id#
            ]]>            
        </delete>
        <delete id="c_updateDog" parameterClass="dog">
            <![CDATA[
                update t_dog
                  set name=#name#
                where id = #id#
            ]]>            
        </delete>
        <select id="c_queryDogById" parameterClass="dog"
                resultClass="dog">
            <![CDATA[
                select *
                from t_dog
                where name=#name#
                  and id = #id#
            ]]>            
        </select>
        <!--<insert id="c_insertDog" parameterClass="dog">
            INSERT INTO t_dog (
                                id,
                                name,
                                password,
                                userlevel,
                                registtime,
                                extend1,
                                extend2,
                                extend3)
            VALUES (
                        #id#,
                        #name#,
                        #password#,
                        #userLevel#,
                        #registTime#,
                        #extend1#,
                        #extend2#,
                        #extend3#
                        )
        </insert>
        
    --></sqlMap>

    12、新建test类用于测试的:

    package com.spring.test;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import com.spring.service.DogPetService;
    
    public class ServiceTest {
        
        public static void main(String[] args)
        {
            ApplicationContext ctx = new ClassPathXmlApplicationContext(new String[]{"beans.xml","dao.xml"});
            DogPetService dogPetService = (DogPetService)ctx.getBean("DogPetService");
            dogPetService.queryAllDogPets();
        }
    
    }
  • 相关阅读:
    【Oracle】子查询、伪列、分页查询、表连接
    【Oracle】dual、sysdate、systimestamp、单行(组)函数、sql执行顺序
    【Oracle】简介、简单查询、去重、排序
    【Java】注解的使用
    【Java】反射机制
    【Java】网络编程(NIO/BIO)
    【Java】枚举
    【Java】File操作
    【Java】多线程
    Hibernate 再接触 关系映射 一对一单向外键关联
  • 原文地址:https://www.cnblogs.com/yanff/p/4841973.html
Copyright © 2020-2023  润新知