mybatis-的使用(使用配置文件)
简介: MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。 MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plan Old Java Objects,普
简介: MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。 MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plan Old Java Objects,普通的 Java对象)映射成数据库中的记录。使用步骤:
1、首先,导入包: 导入mybatis和其三方的jar包,还有 数据库的 驱动包;
2、然后,写mybatis。xml配置文件: @、在类根目录创建mybatis.xml文件,里面的内容是这样子滴:
(里面需要更改的就是,连接的数据库要素,还有最后的sql映射的配置文件,下一点就说明)
<code class="xml"><?xml version="1.0" encoding="UTF-8" ?><code class="xml"><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"<code class="xml">"http://mybatis.org/dtd/mybatis-3-config.dtd"><code class="xml"><configuration><code class="xml"> <code class="xml"><!-- 这个是po类的设置 这样不必在sql中写po类的全限定名 --> <code class="xml"> <typeAliases> <typeAlias alias="Photo" type="com.bjsxt.po.Photo"/> </typeAliases> <code class="xml"> <code class="xml"> <environments default="development"><code class="xml"> <environment id="development"><code class="xml"> <transactionManager type="JDBC" /><code class="xml"> <dataSource type="POOLED"><code class="xml"> <property name="driver" value="com.mysql.jdbc.Driver" /><code class="xml"> <property name="url" value="jdbc:mysql://localhost/photo" /><code class="xml"> <property name="username" value="root" /><code class="xml"> <property name="password" value="xiaohang" /><code class="xml"> </dataSource><code class="xml"> </environment><code class="xml"> </environments><code class="xml"> <mappers><code class="xml"> <!-- sql 映射文件 这个是对应的配置文件 这个配置文件和dao里面的接口类联系 --><code class="xml"> <mapper resource="com/smallang/dao/PhotoDao.xml" /><code class="xml"> </mappers><code class="xml"></configuration></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code>
<code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml">3、接着,创建dao和对应xml sql映射文件:
<code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><strong>@、</strong> 创建一个接口,里面就是一个或多个方法:比如像这样:
<code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml">(这个里面就是各种方法,sql语句是放在映射的xml文件里面的,当然这个参数和返回类型是会面)
<code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml">public interface PhotoDao {<code class="xml"> public void savePhoto(Photo photo);<code class="xml"> public Photo getPhotoById(int id); <code class="xml"> public Photo findPhotoByName(String name,int uid); <code class="xml">// public Photo findPhotoByName2(Map<String, Object> v); <code class="xml"> public Photo findPhotoByName2(Photo photo); <code class="xml"> public List<Photo> findPhotos();<code class="xml">} </code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code>
<code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><strong>@、</strong> 创建于类名相同的xml,像这样PhotoDao.xml 里面的配置是这样的:
<code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><?xml version="1.0" encoding="UTF-8" ?><code class="xml"><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"<code class="xml">"http://mybatis.org/dtd/mybatis-3-mapper.dtd"><code class="xml"><mapper namespace="com.bjsxt.dao.PhotoDao"><code class="xml"> <!-- Id :dao中的方法名字 parameterType:方法中传参的类型 --><code class="xml"> <insert id="savePhoto" parameterType="Photo"> <!-- name 代表方法中第一个参数的name属性值 --><code class="xml"> insert into t_photo (name,uploadDate) values (#{name},#{uploadDate})<code class="xml"> </insert><code class="xml"> <!-- java中基本数据类型和string 都不需指定类型 parameterType="int" 不要--><code class="xml"> <select id="getPhotoById" resultType="Photo"> <!-- dsfsfs 代表方法中第一个参数的值 --><code class="xml"> select * from t_photo where id=#{dsfsfs}<code class="xml"> </select><code class="xml"> <code class="xml"> <!-- #{和方法中参数的名字无关} {表示第n个参数的值或者其属性的值,或者其key的值}--><code class="xml"> <select id="findPhotoByName" resultType="Photo"> <!-- {}可以使用下标表示n --><code class="xml"> select * from t_photo where name=#{0} and uid=#{1}<code class="xml"> </select> <code class="xml"> <code class="xml"> <select id="findPhotoByName2" resultType="Photo"> <!-- {}: map中的key --><code class="xml"> select * from t_photo where name=#{name} and uid=#{uid}<code class="xml"> </select><code class="xml"> <code class="xml"> <!-- resultType表示sql语句执行之后返回的数据类型 --><code class="xml"> <select id="findPhotos" resultType="Photo"><code class="xml"> select * from t_photo<code class="xml"> </select><code class="xml"></mapper></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code>
<code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml">(解释上面的东东: 绿色:id= 对应的方法名;
<code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml">蓝色:parameterType 参数的类型 特殊类必学写
<code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml">黄色:sql 的 语句 (里面的#{参数类属性名} 或 #{0,1.。。}下标 来使用参数的数据)
<code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml">粉色:resultType = 返回类型 )
<code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml">然后这里有一个多表查询,返回list<map>d 数据;像这样
<code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><select id="findPhotoName" resultType="map"><code class="xml"> select p.name as pn,a.name as an from t_photo as p join t_album a on p.aid=a.id<code class="xml"> </select><code class="xml">public List<Photo> findPhotos();</code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code>
<code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml">还有<strong>高级的动态SQL(DynamicSQL)的使用</strong>,也是在这个,xml里面: 这些的东东; 例子: <u><em>Foreach的:</em></u> foreach元素的属性主要有item,index,collection,open,separator,close。item表示集合中每一个元素进行迭代时的别名,index指定一个名字,用于表示在迭代过程中,每次迭代到的位置,open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔符,close表示以什么结束,在使用foreach的时候最关键的也是最容易出错的就是collection属性,该属性是必须指定的,但是在不同情况下,该属性的值是不一样的,主要有一下3种情况:
<code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml">如果传入的是单参数且参数类型是一个List的时候,collection属性值为list
<code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml">如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array
<code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml">如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了,当然单参数也可以封装成map,实际上如果你在传入参数的时候,在MyBatis里面也是会把它封装成一个Map的,map的key就是参数名,所以这个时候collection属性值就是传入的List或array对象在自己封装的map里面的key
<code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml">public List<Album> findAlbum(List<Integer> ids); <code class="xml">//list<?> 接口里面的 因为查找包含条件不同,所以需要动态 <code class="xml"> <select id="findAlbum" resultType="Album"><code class="xml"> select * from t_album where id in <code class="xml"> <foreach collection="list" item="id" open="(" close=")" separator=","><code class="xml"> #{id}<code class="xml"> </foreach> <code class="xml"> </select></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code>
<code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml">If 的例子就不用了; where的例子有一个:
<code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"> <select id="findAlbum2" resultType="Album"><!-- 整数不能当成int,而是Integer --><code class="xml"> select * from t_album <code class="xml"> <where><code class="xml"> <if test="name!=null"><code class="xml"> name=#{name} <code class="xml"> </if><code class="xml"> <if test="name !=null and uid!=null"><code class="xml"> and <code class="xml"> </if><code class="xml"> <if test="uid!=null"><code class="xml"> uid=#{uid}<code class="xml"> </if><code class="xml"> </where><code class="xml"> </select><code class="xml">就是如果where 后面有东东的话 就会输出where + 后面的东东 否则 就不输出</code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code>
<code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml">choose choose元素的作用就相当于JAVA中的switch语句,基本上跟JSTL中的choose的作用和用法是一样的,通常都是与when和otherwise搭配的。看如下一个例子:
<code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"> <select id="dynamicChooseTest" parameterType="Blog" resultType="Blog"><code class="xml"> select * from t_blog where 1 = 1 <code class="xml"> <choose><code class="xml"> <when test="title != null"><code class="xml"> and title = #{title}<code class="xml"> </when><code class="xml"> <when test="content != null"><code class="xml"> and content = #{content}<code class="xml"> </when><code class="xml"> <otherwise><code class="xml"> and owner = "owner1"<code class="xml"> </otherwise><code class="xml"> </choose><code class="xml"> </select></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code>
<code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml">trim: trim元素的主要功能是可以在自己包含的内容前加上某些前缀,也可以在其后加上某些后缀,与之对应的属性是prefix和suffix;可以把包含内容的首部某些内容覆盖,即忽略,也可以把尾部的某些内容覆盖,对应的属性是prefixOverrides和suffixOverrides;正因为trim有这样的功能,所以我们也可以非常简单的利用trim来代替where元素的功能,示例代码如下:
<code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"> <select id="dynamicTrimTest" parameterType="Blog" resultType="Blog"><code class="xml"> select * from t_blog <code class="xml"> <trim prefix="where" prefixOverrides="and |or"><code class="xml"> <if test="title != null"><code class="xml"> title = #{title}<code class="xml"> </if><code class="xml"> <if test="content != null"><code class="xml"> and content = #{content}<code class="xml"> </if><code class="xml"> <if test="owner != null"><code class="xml"> or owner = #{owner}<code class="xml"> </if><code class="xml"> </trim><code class="xml"> </select></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code>
<code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml">set: set元素主要是用在更新操作的时候,它的主要功能和where元素其实是差不多的,主要是在包含的语句前输出一个set,然后如果包含的语句是以逗号结束的话将会把该逗号忽略,如果set包含的内容为空的话则会出错。有了set元素我们就可以动态的更新那些修改了的字段。(如果set中一个条件都不满足,即set中包含的内容为空的时候就会报错。)<br>
这个的例子不copy了,感觉没什么用的;
<code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code class="xml"><code cl>

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

CrystalDiskMark是一款适用于硬盘的小型HDD基准测试工具,可以快速测量顺序和随机读/写速度。接下来就让小编为大家介绍一下CrystalDiskMark,以及crystaldiskmark如何使用吧~一、CrystalDiskMark介绍CrystalDiskMark是一款广泛使用的磁盘性能测试工具,用于评估机械硬盘和固态硬盘(SSD)的读写速度和随机I/O性能。它是一款免费的Windows应用程序,并提供用户友好的界面和各种测试模式来评估硬盘驱动器性能的不同方面,并被广泛用于硬件评

foobar2000是一款能随时收听音乐资源的软件,各种音乐无损音质带给你,增强版本的音乐播放器,让你得到更全更舒适的音乐体验,它的设计理念是将电脑端的高级音频播放器移植到手机上,提供更加便捷高效的音乐播放体验,界面设计简洁明了易于使用它采用了极简的设计风格,没有过多的装饰和繁琐的操作能够快速上手,同时还支持多种皮肤和主题,根据自己的喜好进行个性化设置,打造专属的音乐播放器支持多种音频格式的播放,它还支持音频增益功能根据自己的听力情况调整音量大小,避免过大的音量对听力造成损害。接下来就让小编为大

MetaMask(中文也叫小狐狸钱包)是一款免费的、广受好评的加密钱包软件。目前,BTCC已支持绑定MetaMask钱包,绑定后可使用MetaMask钱包进行快速登入,储值、买币等,且首次绑定还可获得20USDT体验金。在BTCCMetaMask钱包教学中,我们将详细介绍如何注册和使用MetaMask,以及如何在BTCC绑定并使用小狐狸钱包。MetaMask钱包是什么?MetaMask小狐狸钱包拥有超过3,000万用户,是当今最受欢迎的加密货币钱包之一。它可免费使用,可作为扩充功能安装在网络

在如今云存储已经成为我们日常生活和工作中不可或缺的一部分。百度网盘作为国内领先的云存储服务之一,凭借其强大的存储功能、高效的传输速度以及便捷的操作体验,赢得了广大用户的青睐。而且无论你是想要备份重要文件、分享资料,还是在线观看视频、听取音乐,百度网盘都能满足你的需求。但是很多用户们可能对百度网盘app的具体使用方法还不了解,那么这篇教程就将为大家详细介绍百度网盘app如何使用,还有疑惑的用户们就快来跟着本文详细了解一下吧!百度云网盘怎么用:一、安装首先,下载并安装百度云软件时,请选择自定义安装选

网易邮箱,作为中国网民广泛使用的一种电子邮箱,一直以来以其稳定、高效的服务赢得了用户的信赖。而网易邮箱大师,则是专为手机用户打造的邮箱软件,它极大地简化了邮件的收发流程,让我们的邮件处理变得更加便捷。那么网易邮箱大师该如何使用,具体又有哪些功能呢,下文中本站小编将为大家带来详细的内容介绍,希望能帮助到大家!首先,您可以在手机应用商店搜索并下载网易邮箱大师应用。在应用宝或百度手机助手中搜索“网易邮箱大师”,然后按照提示进行安装即可。下载安装完成后,我们打开网易邮箱账号并进行登录,登录界面如下图所示

小米汽车软件提供远程车控功能,让用户可以通过手机或电脑远程控制车辆,例如开关车辆的门窗、启动引擎、控制车辆的空调和音响等,下文就是这个软件的使用及内容,一起了解下吧。小米汽车app功能及使用方法大全1、小米汽车app在3月25日上线苹果AppStore,现在安卓手机的应用商店中也可以下载了;购车:了解小米汽车核心亮点和技术参数,可预约试驾、配置订购您的小米汽车,支持在线处理提车待办事项。3、社区:了解小米汽车品牌资讯,交流用车体验,分享精彩车生活;4、车控:手机就是遥控器,远程控制,实时安防,轻

唧唧Down也可以叫做JJDown,这是专门为哔哩哔哩打造的一个视频下载工具,但是很多小伙伴对这个软件不了解,今天就让小编为大家解答一下唧唧down是什么?唧唧down怎么使用吧。一、唧唧down的由来唧唧down起源于2014年,是一个非常老牌的下载视频软件,界面采用Win10磁贴风格,简洁美观,操作方便。唧娜是唧唧down的看板娘,画师是あさひクロイ。唧唧down一直致力于为用户提供最好的下载体验,不断更新和优化软件,解决各种问题和bug,增加新的功能和特色。唧唧Down的功能唧唧Down是

最近有不少Win10系统的用户想要更改用户配置文件,但不清楚具体如何操作,本文将给大家带来Win10系统设置用户配置文件的操作方法吧!Win10如何设置用户配置文件1、首先,按下“Win+I”键打开设置界面,并点击进入到“系统”设置。2、接着,在打开的界面中,点击左侧的“关于”,再找到并点击其中的“高级系统设置”。3、然后,在弹出的窗口中,切换到“”选项栏,并点击下方“用户配
