mybatis杂记
mybatis学习官网:
1、如果项目中使用maven管理,又引用 了mybatis框架,
下面是mybatis官网给出的 mybatis在maven中央仓库的坐标原文
详情见连接:https://code.google.com/p/mybatis/wiki/DocMavenTutorial
MyBatis & Maven
The following is the Maven group, artifact and version for MyBatis.
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.1.1</version> </dependency>
If you are looking to try the latest and greatest you can use our snapshot repository. Just add the following to your project's pom.xml or to a profile defined in your settings.xml.
<repository> <id>mybatis-snapshot</id> <name>MyBatis Snapshot Repository</name> <url>https://oss.sonatype.org/content/repositories/snapshots</url></repository>
2、What is the difference between #{...} and ${...}?
MyBatis interprets #{...} as a parameter marker in a JDBC prepared statement. MyBatis interprets ${...} as string substitution. It is important to know the difference because parameter markers cannot be used in certain places in SQL statements. For example, you cannot use a parameter marker to specify a table name. Given the following code:
Map<String,Object> parms =newHashMap<String,Object>(); parms.put("table","foo"); parms.put("criteria",37);List<Object> rows = mapper.generalSelect(parms);
<selectid="generalSelect"parameterType="map"> select * from ${table} where col1 = #{criteria} </select>
MyBatis will generate the following prepared statement:
select*from foo where col1 =?
Important: note that use of ${...} (string substitution) presents a risk for SQL injection attacks. Also, string substitution can be problematical for complex types like dates. For these reasons, we recommend using the #{...} form whenever possible.