实训-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);
	}
posted @ 2018-07-07 16:14  Pororo  阅读(619)  评论(0编辑  收藏  举报