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、然後,在彈出的視窗中,切換到「」選項欄,並點擊下方「用戶配
