zoukankan      html  css  js  c++  java
  • 使用SqlSessionTemplate实现数据库的操作

    EmployeeMapper.xml
    <?xml version="1.0" encoding="UTF-8"?>  
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"    
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    
    <mapper namespace="cn.bdqn.dao.EmployeeMapper">
        
        <select id="getEmployeeList" resultType="Employee">
            select * from Employee
        </select>
        <insert id="addEmployee" parameterType="Employee">
            insert into employee (sn,name,gender) values (#{sn},#{name},#{gender})
        </insert>
        <update id="modifyEmployee" parameterType="Employee">
            update employee 
            <set>
                <if test="sn != null"> sn = #{sn},</if>
                <if test="name != null"> name = #{name},</if>
                <if test="gender != null"> gender = #{gender}</if>
            </set>
            where id = #{id}
        </update>
        <delete id="deleteEmployee" parameterType="Employee">
            delete from employee where id = #{id}
        </delete>
    </mapper>

    Employee.java

    public class Employee {
        private Integer id;
        private String sn;
        private String name;
        private String gender;
        public Integer getId() {
            return id;
        }
        public void setId(Integer id) {
            this.id = id;
        }
        public String getSn() {
            return sn;
        }
        public void setSn(String sn) {
            this.sn = sn;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getGender() {
            return gender;
        }
        public void setGender(String gender) {
            this.gender = gender;
        }
        
    }

    测试类

    public class EmployeeDaoTest {
        
        
        private SqlSessionTemplate sqlSessionTemplate;
        
        protected ApplicationContext ctx = null;
        private EmployeeDaoTest test;
        
        private Logger logger = Logger.getLogger(EmployeeDaoTest.class);
        
        @Before
        public void setUp() throws Exception{
            ctx = new ClassPathXmlApplicationContext("applicationContext-mybatis.xml");
            test = (EmployeeDaoTest)ctx.getBean("employeeDaoTest");
        }
        
        @Test
        public void getEmployeeListTest() {
            List<Employee>  list = test.sqlSessionTemplate.selectList("cn.bdqn.dao.EmployeeMapper.getEmployeeList");
            logger.debug("testGetEmployeeList---> " + list.size());    
        }
        
        @Test
        public void addEmployeeTest(){
            Employee employee = new Employee();
            employee.setSn("CESHI");
            employee.setName("测试");
            employee.setGender("男");
            int flag = test.sqlSessionTemplate.insert("cn.bdqn.dao.EmployeeMapper.addEmployee", employee);
            Assert.assertEquals(1, flag);
        }
        
        @Test
        public void modifyEmployeeTest(){
            Employee employee = new Employee();
            employee.setId(8);
            employee.setSn("CESHI888");
            employee.setName("测试888");
            employee.setGender("男");
            int flag = test.sqlSessionTemplate.update("cn.bdqn.dao.EmployeeMapper.modifyEmployee", employee);
            Assert.assertEquals(1, flag);
        }
        
        @Test
        public void deleteEmployeeTest(){
            Employee employee = new Employee();
            employee.setId(8);
            int flag = test.sqlSessionTemplate.delete("cn.bdqn.dao.EmployeeMapper.deleteEmployee", employee);
            Assert.assertEquals(1, flag);
        }
        public SqlSessionTemplate getSqlSessionTemplate() {
            return sqlSessionTemplate;
        }
    
        public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {
            this.sqlSessionTemplate = sqlSessionTemplate;
        }
    
    
    }

    mybatis-config.xml

    <?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>
           <typeAliases>  
               <!--这里给实体类取别名,方便在mapper配置文件中使用-->  
              <package name="cn.bdqn.pojo"/>
           </typeAliases>  
    </configuration>

    applicationContext-mybatis.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:aop="http://www.springframework.org/schema/aop"
         xmlns:tx="http://www.springframework.org/schema/tx"
         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/tx
         http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
         http://www.springframework.org/schema/aop 
         http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
         http://www.springframework.org/schema/context
         http://www.springframework.org/schema/context/spring-context-3.0.xsd">     
                
           <!-- Properties文件读取配置,base的properties -->  
           <context:property-placeholder location="classpath:jdbc.properties"/>   
           
           <!-- JNDI获取数据源(使用dbcp连接池) -->    
           <!-- 因为我们使用的这个数据源是采用 dbcp连接池,对于连接池来说,整个应用中只有一个,
                                  所以作用域需要设置成单例 因为获取数据源是非常消耗性能,所以我们也要采用单例模式-->
          <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" 
          scope="singleton">
               <property name="driverClassName" value="${driverClassName}" />  
               <property name="url" value="${url}" />  
               <property name="username" value="${username}" />  
               <property name="password" value="${password}" />  
          </bean>
           
           <!-- 事务配置  在需要事务管理的地方加@Transactional 注解或者AOP进行事务处理-->
           <bean id="transactionManager" 
             class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource" />
           </bean>
            
           <!-- 配置mybitas SqlSessionFactoryBean  -->
           <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
               <property name="dataSource" ref="dataSource" />  
               <property name="configLocation" value="classpath:mybatis-config.xml" />  
               <property name="mapperLocations" value="classpath:cn/bdqn/dao/*.xml"/> 
           </bean>  
           
           
           <!-- 配置SqlSessionTemplate -->
            <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
                <!-- spring使用构造的方法进行注入 -->
                <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory" />
            </bean>
            
                   
            <!-- 把sqlSessionTemplate注入测试类 -->
            <bean id="employeeDaoTest" class="cn.bdqn.test.EmployeeDaoTest">
                <property name="sqlSessionTemplate" ref="sqlSessionTemplate"/>  
            </bean>
            
    
    </beans>

    加个日志文件和数据文件就好了。

  • 相关阅读:
    mysql修改数据表名
    HDU 5742 It's All In The Mind (贪心)
    HDU 5752 Sqrt Bo (数论)
    HDU 5753 Permutation Bo (推导 or 打表找规律)
    HDU 5762 Teacher Bo (暴力)
    HDU 5754 Life Winner Bo (博弈)
    CodeForces 455C Civilization (并查集+树的直径)
    CodeForces 455B A Lot of Games (博弈论)
    CodeForces 455A Boredom (DP)
    HDU 4861 Couple doubi (数论 or 打表找规律)
  • 原文地址:https://www.cnblogs.com/xuerong/p/5000456.html
Copyright © 2011-2022 走看看