mysql中mapping标签的作用_Mybatis学习笔记之---动态sql中标签的使用

动态Sql语句中标签的使用

(一)常用标签

1.

if标签通常用于WHERE语句中,通过判断参数值来决定是否使用某个查询条件, 他也经常用于UPDATE语句中判断是否更新某一个字段,还可以在INSERT语句中用来判断是否插入某个字段的值

2.

where元素的作用是给SQL语句添加一个条件判断. 如果输出后是and 开头的,MyBatis会把第一个and忽略,当然如果是or开头的,MyBatis也会把它忽略;此外,在where元素中你不需要考虑空格的问题,MyBatis会智能的帮你加上

3.

主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。

foreach元素的属性主要有item,index,collection,open,separator,close

collection属性的值有三个分别是list、array、map三种,分别对应的参数类型为:List、数组、map集合

item : 表示在迭代过程中每一个元素的别名

index :表示在迭代过程中每次迭代到的位置(下标)

open :前缀

close :后缀

separator :分隔符,表示迭代时每个元素之间以什么分隔

(二)应用

1.pom.xml

junit

junit

4.11

mysql

mysql-connector-java

5.1.41

org.mybatis

mybatis

3.4.6

2.SqlMapperConfig.xml

/p>

PUBLIC"-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

3.Users.java

packageentity;public classUsers {private intid;privateString username;privateString password;public intgetId() {returnid;

}public void setId(intid) {this.id =id;

}publicString getUsername() {returnusername;

}public voidsetUsername(String username) {this.username =username;

}publicString getPassword() {returnpassword;

}public voidsetPassword(String password) {this.password =password;

}

@OverridepublicString toString() {return "Users{" +

"id=" + id +

", username='" + username + '\'' +

", password='" + password + '\'' +

'}';

}

}

4.UserVo.java

packageentity;importjava.util.List;public classUserVo {privateUsers users;private Listids;publicUsers getUsers() {returnusers;

}public voidsetUsers(Users users) {this.users =users;

}public ListgetIds() {returnids;

}public void setIds(Listids) {this.ids =ids;

}

}

5.UserDao.java

packagedao;importentity.UserVo;importentity.Users;importorg.apache.ibatis.annotations.Param;importjava.util.List;public interfaceUserDao {//查询所有用户信息

ListfindAll();//根据ID进行查询

Users find(intid);//模糊查询

ListfindVague(String name);//查询用户总数

intcount();//将实体类封装到另一个实体类中的模糊查询

ListfindVo(UserVo vo);//根据传入参数进行查询

Users findby(Users users);//根据UserVo中的ids集合查询用户信息

Listfindids(UserVo vo);

}

6.UserDao.xml

/p>

PUBLIC"-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select * from users

select * from users where id=#{id}

-- select * from users where username like '%${value}%'

select * from users where username like #{name}

select count(id) from users

select * from users where username like #{users.username}

select * from users

and id=#{id}

and username=#{username}

select * from users

0">

#{id}

7.UserTest.java

packagetest;importdao.UserDao;importentity.UserVo;importentity.Users;importorg.apache.ibatis.io.Resources;importorg.apache.ibatis.session.SqlSession;importorg.apache.ibatis.session.SqlSessionFactory;importorg.apache.ibatis.session.SqlSessionFactoryBuilder;importorg.junit.After;importorg.junit.Before;importorg.junit.Test;importjava.io.IOException;importjava.io.InputStream;importjava.util.ArrayList;importjava.util.List;public classUserTest {privateInputStream in;privateSqlSession sqlSession;privateUserDao UserDaoImpl;

@Beforepublic void init() throwsIOException {//1.读取配置文件

in= Resources.getResourceAsStream("SqlMapperConfig.xml");//2.创建SqlSessionFactory工厂

SqlSessionFactoryBuilder builder=newSqlSessionFactoryBuilder();

SqlSessionFactory factory=builder.build(in);//3.使用工厂生产SqlSession对象

sqlSession=factory.openSession();//4.使用SqlSession创建dao接口的代理对象

UserDaoImpl=sqlSession.getMapper(UserDao.class);

}

@Afterpublic void destroy() throwsIOException {//提交事务

sqlSession.commit();//6.释放资源

sqlSession.close();

in.close();

}/*** 查询所有

*@throwsIOException*/@Testpublic void findall() throwsIOException {//5.使用代理对象执行方法

List users=UserDaoImpl.findAll();for(Users u:users){

System.out.println(u);

}

}/*** 根据ID进行查询*/@Testpublic voidfind(){

Users u=UserDaoImpl.find(15);

System.out.println(u);

}/*** 模糊查询,查询所有名字中有小的用户

*@throwsIOException*/@Testpublic void findVague() throwsIOException {//5.使用代理对象执行方法

List users=UserDaoImpl.findVague("%小%");for(Users u:users){

System.out.println(u);

}

}/*** 查询用户总数*/@Testpublic voidcount(){int c=UserDaoImpl.count();

System.out.println(c);

}/*** 将实体类封装到另一个实体类中的模糊查询*/@Testpublic voidfindVo(){

UserVo vo=newUserVo();

Users users=newUsers();

users.setUsername("%小%");

vo.setUsers(users);

List list=UserDaoImpl.findVo(vo);for(Users u:list){

System.out.println(u);

}

}/*** if标签查询,查询用户名为小花,id为25的用户信息*/@Testpublic voidfindby(){

Users users=newUsers();

users.setUsername("小花");

users.setId(25);

Users u=UserDaoImpl.findby(users);

System.out.println(u);

}/*** 根据UserVo中的ids集合查询用户信息*/@Testpublic voidfindids(){

UserVo vo=newUserVo();

List list=new ArrayList();

list.add(13);

list.add(14);

list.add(15);

vo.setIds(list);

List li=UserDaoImpl.findids(vo);for(Users u:li){

System.out.println(u);

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值