大三东软暑期实训-mybatis篇

  • mybatis的使用需要两个依赖(mybatis框架底层依赖jdbc),一个是mybatis的框架包,另一个是jdbc的驱动包,其中jdbc的驱动包与数据库的版本有关,mysl数据库为8.多的就要8.多的。直接搜mysql,选第一个
  • jdbc比mybatis安全,因为它是原生的
  • mybatis特性,实现ORM(对象关系大三东软暑期实训-mybatis篇
  • 传多个参数不封装成对象 int deleteInfoByNameAndDept(@param("empName"),@param("deptName")String ,deptName),@param(“deptName”)括号中的名字一定要和.xml文件中#{}中的名字一样。
  • 查询多个对象,返回的不应该是集合,应该是集合里面的对象,也就是满足ORM中的对象。
  • log4j配置文件一定要在resources下,并且名字不能变,log4j.properties
  • 别名配置将来在spring中配置
  • $取字符串值不加单引号
  • where标签不传值可能会出错
  • 数据库表字段名与实体类属性名不一致时,根据条件和需要可以采用三种方法:别名、resultmap,自动映射的resultmap(配置mapUnderscoreToCamelCase为true,默认就为true)
  • 注意<sql><include>的配合使用
  • 注意<where>的拼接
  • 注意<collection>的使用,collection有array、list等
<select id="batcharray"  			resultType="User"> 		select * from user  		where id in <!-- foreach用来做批量处理数据 			collection的值是固定的,array表示数组 			item是临时获取到的数据,相当于for循环的i 			open以什么方式开始 			close以什么方式结束 			separator是指在进行SQL拼接时用什么分隔符,但是SQL中只认识逗号(,,,,,) 		 --> 		<foreach collection="array" 					item="i" 					open="(" 					close=")" 					separator=","> 					 			#{i} 		</foreach> 	</select>  
  • 取代<collection>的是传数组,遍历数组,foreach中执行sql
  • list.add(4)<=>Integer.ValueOf(4)
  • <collection>为map时,collection和key要保持一致:
<!--  			当collection接收map的数据格式时, 			collection值就是map封装的key 			 		item表示集合中每一个元素进行迭代时的别名, 			index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置, 			open表示该语句以什么开始, 			separator表示在每次进行迭代之间以什么符号作为分隔 符, 			close表示以什么结束。  		--> 		<select id="foreachmap" resultType="User"> 			select * from user where id in 			<foreach collection="key"  				 open="("  				 close=")"  				 separator=","  				 item="i"> 				#{i} 			</foreach> 		</select> 
	public void foreachMap(){ 		//创建会话 		SqlSession session =  				ssf.openSession(); 		 		 		//定位SQL并执行 		Map map = new HashMap(); 		map.put("key",new int[]{23,24,25}); 		 		//第一个参数用来定位SQL 		//第二个参数用来给SQL传参,map类型 		List<User> list =  				session.selectList( 					"DynamicSqlMapper.foreachmap",  					map); 		 		//遍历list 		for (User user : list) { 			System.out.println(user); 		} 		 		//释放资源 		session.close(); 		 		 	} 	  
  • <update><insert>没有resultType,默认int
版权声明:玥玥 发表于 2021-06-06 18:10:26。
转载请注明:大三东软暑期实训-mybatis篇 | 女黑客导航