mybaits

Mybaits课堂练习

a 夏天 提交于 2019-12-01 22:00:58
<?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.kgc.dao.UserMapper"> <select id="count" resultType="int"> select count(1) from smbms_user </select> <select id="userlist" resultType="User"> select * from smbms_user </select> <select id="getUserListByNullParam" resultType="User"> select * from smbms_user </select> <!-- 查询供应商记录数--> <select id="result" resultType="int"> select count(1) as count from smbms_provider; </select> <!-- 查询供应商列表 接口--> <select id="getProviderList"

mybaits 动态SQL语句

纵饮孤独 提交于 2019-12-01 12:29:52
-------------------------动态查询--------------------------------------- <select id="findAll" parameterType="map" resultMap="studentMap"> select * from students <where> <if test="pid!=null"> and students_id = #{pid} </if> <if test="pname!=null"> and students_name = #{pname} </if> <if test="psal!=null"> and students_sal = #{psal} </if> </where> </select> public List<Student> findAll(Integer id,String name,Double sal) throws Exception{ SqlSession sqlSession = null; try{ sqlSession = MybatisUtil.getSqlSession(); Map<String,Object> map = new LinkedHashMap<String,Object>(); map.put("pid",id); map.put(

mybaits学习

巧了我就是萌 提交于 2019-12-01 09:32:24
学习了简单的mybatis的配置 Bean层: 这个都会很简单 一个完整的Bean 需要getter和setter方法还需要一个空的构造方法和一个满的构造方法。 Dao层: 创建一个接口就ok了 package dao; import bean.User; import java.util.List; public interface IUserDao { /** * 查询 * @return */ List<User> findAll(); } 关键是xml的配置文件: SqlMapConfig.xml的配置,配置数据库和映射dao层 <?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> <!-- 这里写配置内容 配置环境--> <environments default="mysql"> <!-- 配置mysql的环境 --> <environment id="mysql"> <!-- 配置事务的类型 --> <transactionManager type="JDBC"><

dubbo + spring + mybaits 的pom文件列一

匆匆过客 提交于 2019-11-27 17:59:14
<?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <artifactId>yonglun-loan-framework</artifactId> <name>yonglun-loan-framework</name> <url> http://maven.apache.org </url> <parent> <groupId>yonglun</groupId> <version>0.0.1-SNAPSHOT</version> <artifactId>yonglun-loan-all</artifactId> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring.version

Mybaits 源码解析 (九)----- 一级缓存和二级缓存源码分析

爷,独闯天下 提交于 2019-11-27 02:59:51
像Mybatis、Hibernate这样的ORM框架,封装了JDBC的大部分操作,极大的简化了我们对数据库的操作。 在实际项目中,我们发现在一个事务中查询同样的语句两次的时候,第二次没有进行数据库查询,直接返回了结果,实际这种情况我们就可以称为缓存。 Mybatis的缓存级别 一级缓存 MyBatis的一级查询缓存(也叫作本地缓存)是基于org.apache.ibatis.cache.impl.PerpetualCache 类的 HashMap本地缓存,其作用域是SqlSession,myBatis 默认一级查询缓存是开启状态,且不能关闭。 在同一个SqlSession中两次执行相同的 sql查询语句,第一次执行完毕后,会将查询结果写入到缓存中,第二次会从缓存中直接获取数据,而不再到数据库中进行查询,这样就减少了数据库的访问,从而提高查询效率。 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Session,PerpetualCache 对象是在SqlSession中的Executor的localcache属性当中存放,当 Session flush 或 close 之后,该Session中的所有 Cache 就将清空。 二级缓存 二级缓存与一级缓存其机制相同,默认也是采用 PerpetualCache,HashMap存储,不同在于其存储作用域为

mybaits注解开发动态sql异常:Cause: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 758; 元素内容必须由格式

半腔热情 提交于 2019-11-26 13:57:23
报错信息: Could not find value method on SQL annotation. Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 50; 元素内容必须由格式正确的字符数据或标记组成。 "<script>"+ "select user_id,IFNULL(`level`,0) as level from users where currencyId=# {currencyId} and \n" + " snapshot_time>='#{startTime} " "and snapshot_time<=#{endTime} " + " and user_id in" +"<foreach collection='userIds' item='item' open='(' separator=',' close=')'>" + " #{item} " + "</foreach>"+ "</script>" 我们看sql语句发现没有任何问题,原因mybatis把他认为是一个xml格式。xml中不能包含 <(小于号

【每日学习Mybatis中基础】trim标签使用

一世执手 提交于 2019-11-26 12:23:29
1、trim基础 trim标签的四个属性 prefix(前缀),prefixOverrides(去掉第一个and或者是or),suffix(后缀),suffixOverrides(去掉最后一个) 1.1、prefix,suffix 表示在trim标签包裹的部分的前面或者后面 添加 内容( 注意 :是没有prefixOverrides,suffixOverrides的情况下) 1.2、如果有prefixOverrides,suffixOverrides 表示**覆盖**Overrides中的内容。 1.3、如果只有prefixOverrides,suffixOverrides 表示删除。   select * from table_name   <trim prefix="WHERE" prefixoverride="AND |OR">     <if test="column_1 != null and column_1.length()>0"> AND column_1=#{column_1}</if>     <if test="column_2 != null and column_2.length()>0"> AND column_2=#{column_2}</if>   </trim> 打印的SQL为:select * from table_name where