实训-mybatis-经验总结2

Posted czy16

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实训-mybatis-经验总结2相关的知识,希望对你有一定的参考价值。

今天上课一点小收益,今天和昨天的mybatis最大改变就是,昨天写完dao接口 还要继续写dao的实现类。而今天 只要有写dao接口即可,让mybatis帮我们自动制造出dao的实现类

另外补充一点小知识

<?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="com.icss.dao.CustomerDao"> 
  
  <!-- 这个resultType 决定了 你执行session.selectOne("id:XX",2) 的返回值 -->

<!-- 注意 下 面的 resultType 正常来说肯定要写带完整包名的,com.icss.entity.Customer  -->
<!-- 能这样写的原因 是因为在总XML文件中设置了一样东西 -->
   <select id="getCustomerById" parameterType="int"  resultType="Customer">

     select * from customer where id=#{id}
   </select>

技术分享图片


另外,假如想要在总XML 通过配置文件来 设 连接数据库的信息 可以这样

技术分享图片

resource 后面的地址 是相对路径 ,因为jdbc.properties和mybatis-config.xml都属于同级目录,所以我就直接写jdbc.properties

技术分享图片


今天由于在实验室电脑和自己宿舍电脑 转来转去的,遇到个问题

就是实验室里是有tomcat的servlet-api.jar 和jsp.jar包,而将整个项目拷会自己电脑时,就会没有依赖。如何解决呢,很简单

右键项目属性--java -build Path

技术分享图片

技术分享图片

技术分享图片

下面是 ,今天和昨天,mabatis最大的不同,今天更为方便

package com.icss.dao;

import java.util.Map;

import com.icss.entity.Customer;

/**
 * 
 * @author czy
 * 
 *
 */
public interface CustomerDao {
    /**
     * 
     * @param id
     * @return
     * 根据id查找一个用户
     */
     public Customer getCustomerById(int id);
   
     
     /**
      * 
      * @param phone
      * @return
      * 根据电话号码找一个用户
      */
     public Customer getCustomerByPhone(String phone);
    
    /**
     * 
     * @param map
     * @return
     * 
     * 根据 多个条件进行查找: 用户名和密码
     * 因为那边<select id="getCustomerByPhonePwd" parameterType="map" resultType="Customer">  所以形参类型也要设为Map
     */
     public Customer  getCustomerByPhonePwd(Map map);
    
     /**
      * 
      * @param cus
      * @return
      * 插入一个客户
      */
     public  int  insertCustomer(Customer cus);
    
     /***
      * 
      * @param cus
      * @return
      * 修改一个用户信息
      */
     public int updateCustomer(Customer cus);
     
     /**
      * 
      * @param id
      * @return
      * 根据id删除一个用户
      */
     public  int deleteById(int id);
    
}

@Test
    public void testGetCustomerById() {
       // 
        SqlSession  sqlsession=SQLSessionUtil.getSqlSession();
        /**
         * 以前写完dao层接口,还要在daoImp类 里 实现接口的每一个方法,每个实现方法给他
         * sqlsession=SQLSessionUtil.getSqlSession(); 
         * sqlsession.selectOne("ID-XX",2);
         * 
         * 而现在的话,让mybatis框架自动帮我们生成dao接口的实现类。
         * 我们只需先写一个dao接口 ,方法名字和XML 的SQL各标签id 同样
         * 再通过getMapper(Class) 来帮我们自动生成此接口的实现类
         * 接口名字  dao= sqlsession.getMapper(接口名字.class);
         *  这样 sqlsession.getMapper(CustomerDao.class) 就会给我们返回一个dao接口的实现类
         */
        
        /**
         * 省去了再dao实现类 方法里写那些
         * sqlsession=SQLSessionUtil.getSqlSession(); 
         * sqlsession.selectOne("ID-XX",2);
         * sqlsession.selectList("ID-XX2",map);
         * sqlsession.Update("ID-XX3",user);
         * 下面这句话 就是 帮我们把dao实现类弄好了
         */
        CustomerDao  dao= sqlsession.getMapper(CustomerDao.class);
        
        Customer  cus= dao.getCustomerById(1);
        System.out.println(cus);
    }

以上是关于实训-mybatis-经验总结2的主要内容,如果未能解决你的问题,请参考以下文章

实训--经验总结5

软件构造实训经验总结

电商项目经验总结-2

软工实训--学习回顾2

javaweb实训第六天下午——Mybatis基础

MyBatis开发经验总结