UserMapper.java:

package com.bjsxt.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select; import com.bjsxt.pojo.User; public interface UserMapper { /**
* mysql动态查询语句
* @param id
* @param username
* @param password
* @return
*/
List<User> selByIUP(@Param("id") int id,@Param("username") String username,@Param("password") String password); /**
* 通过用户去修改数据
* @param user
* @return
*/
int update(User user); /**
* 使用in进行选择查询
* @param list
* @return
*/
List<User> selin(@Param("list") List<Integer> list); /**
* 通过用户名进行表的模糊查询
* @param username
* @return
*/
List<User> selLike(@Param("username") String username); }

UserMapper:

<?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="com.bjsxt.mapper.UserMapper">
<select id="selLike" resultType="user" parameterType="string">
select * from t_user
<where>
<if test="username!=null and username!=''">
<bind name="username" value="'%'+ username +'%'"/>
username like #{username}
</if>
</where>
</select> <select id="selin" resultType="User" parameterType="list">
select * from t_user where id in
<foreach collection="list" open="(" item="t" separator="," close=")">
#{t}
</foreach>
</select> <!-- 动态更新修改用户名或者密码 -->
<update id="update" parameterType="User">
update t_user
<set>
<if test="username!=null and username!=''">
username=#{username},
</if>
<if test="password!=null and password!=''">
password=#{password},
</if>
</set>
where id=#{id}
</update> <!-- 动态通过用户名,密码,id来查询用户的所有信息 -->
<select id="selByIUP" resultType="User">
select * from t_user
<where>
<if test="id!=0">
and id=#{id}
</if>
<if test="username!=null and username!=''">
and username=#{username}
</if>
<if test="password!=null and password!=''">
and password=#{password}
</if>
</where>
</select>
</mapper>

User实体类:

package com.bjsxt.pojo;

import java.io.Serializable;

public class User implements Serializable{
private int id;
private String username;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", password=" + password + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + id;
result = prime * result + ((password == null) ? 0 : password.hashCode());
result = prime * result + ((username == null) ? 0 : username.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
User other = (User) obj;
if (id != other.id)
return false;
if (password == null) {
if (other.password != null)
return false;
} else if (!password.equals(other.password))
return false;
if (username == null) {
if (other.username != null)
return false;
} else if (!username.equals(other.username))
return false;
return true;
}
public User() {
super();
} }

工具类:

package com.bjsxt.util;

import java.io.IOException;
import java.io.InputStream; import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class MyBatisUtil {
private static SqlSessionFactory factory=null;
static{
try {
InputStream is = Resources.getResourceAsStream("mybatis-cfg.xml");
factory = new SqlSessionFactoryBuilder().build(is);
} catch (IOException e) {
e.printStackTrace();
} }
public static SqlSession getSession() {
SqlSession session =null;
if (factory!=null) {
session = factory.openSession(false);
}
return session;
}
}

配置文件mybatis:

<?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>
<!-- properties加载配置文件
-->
<properties resource="db.properties"></properties>
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
<typeAliases>
<package name="com.bjsxt.pojo"/>
</typeAliases>
<environments default="dev">
<environment id="dev">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/> </dataSource>
</environment>
</environments>
<mappers >
<package name="com.bjsxt.mapper"/>
</mappers>
</configuration>

 增删改查:

<?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="com.bjsxt.mapper.UserMapper">
<select id="selAll" resultType="user">
select * from t_user
</select> <select id="selByUP" resultType="user">
select * from t_user where username=#{username} and password=#{password}
</select> <insert id="instr" parameterType="user">
insert into t_user values (default,#{username},#{password})
</insert> <update id="update" parameterType="user">
update t_user set username=#{username}, password=#{password} where id= #{id}
</update> <delete id="delete" parameterType="int">
delete from t_user where id=#{0}
</delete>
</mapper>

测试类:

package com.bjsxt.test;

import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.junit.Test; import com.bjsxt.mapper.UserMapper;
import com.bjsxt.pojo.User;
import com.bjsxt.util.MyBatisUtil; public class TestZSGC { @Test
public void TestInsert() {
SqlSession session = MyBatisUtil.getSession();
User user=new User();
user.setUsername("杨杰");
user.setPassword("250");
int num = session.insert("com.bjsxt.mapper.UserMapper.instr", user);
if (num>0) {
System.out.println("插入成功!!");
}else {
System.out.println("插入失败!!");
}
session.close();
} @Test
public void Testupdate() {
SqlSession session = MyBatisUtil.getSession(); User user=new User();
user.setId(15);
user.setUsername("杨杰250");
user.setPassword("就是250");
int updatenum = session.update("com.bjsxt.mapper.UserMapper.update", user);
if (updatenum>0) {
System.out.println("更新成功!!");
}else {
System.out.println("更新失败!!");
}
session.close();
} @Test
public void Testdelete() {
SqlSession session = MyBatisUtil.getSession();
int delete = session.delete("com.bjsxt.mapper.UserMapper.delete", 8);
System.out.println(delete);
session.close();
} @Test
public void TestSelectAll() {
SqlSession session = MyBatisUtil.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
List<User> list = mapper.selAll();
for (User u : list) {
System.out.println(u);
}
session.close();
} @Test
public void TestselByUP() {
SqlSession session = MyBatisUtil.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
User u = mapper.selByUP("杨杰250", "就是250");
System.out.println(u);
session.close();
} }

UserMapper接口(增删改都是在测试类实现的,没用接口绑定!!!):

package com.bjsxt.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select; import com.bjsxt.pojo.User; public interface UserMapper { /**
* 查询所有用户信息
* @return
*/
List<User> selAll(); /**
* 通过username和password去查询用户信息
* @param username
* @param password
* @return
*/
User selByUP(@Param("username") String username,@Param("password") String password);
}

数据库还有log4j的配置文件和MyBatis动态查询一样。这里的测试全部都是Junit测试,没用main方法实现。

如果不想等值查询,也有非等值查询,只不过需要转移字符( <    是   &Lt   L需要小写的 ):

  1. 和           &      & amp;  
  2. 单 引号     '      & apos;  
  3. 双引 号     "      & quot;  
  4. 大于 号     >      & gt;  
  5. 小于 号     <      & lt;   

MyBatis更新,删除,插入的更多相关文章

  1. Bitter.Core系列七:Bitter ORM NETCORE ORM 全网最粗暴简单易用高性能的 NETCore ORM 示例 更新删除插入

    Bitter Orm 在操作数据库增删改的时候,支持模型驱动和直接执行裸SQL 操作,示例代码如下: 一:模型驱动(增删改) /// <summary> /// 插入,删除,更新示例(模型 ...

  2. Mybatis 循环删除/插入

    <foreach collection="array" open="(" separator="," close=")&qu ...

  3. mybatis + mysql 批量插入、删除、更新

    mybatis + mysql 批量插入.删除.更新 Student 表结构 批量插入 public int insertBatchStudent(List<Student> studen ...

  4. Mybatis 实现批量插入和批量删除源码实例

    Mybatis 实现批量插入数据和批量删除数据 学习内容: 准备工作 1.数据库新建表 2.新建 Maven 项目和设置编译版本及添加依赖 3.新建 db.properties 4.新建 mybati ...

  5. 我的MYSQL学习心得(八) 插入 更新 删除

    我的MYSQL学习心得(八) 插入 更新 删除 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得( ...

  6. oracle插入,更新,删除数据

    插入,更新,删除数据 oracle提供了功能丰富的数据库管理语句 包括有效的向数据库中插入数据的insert语句 更新数据的update语句 以及当数据不再使用时删除数据的delete语句 更改数据之 ...

  7. mybatis+mysql批量插入和批量更新、存在及更新

    mybatis+mysql批量插入和批量更新 一.批量插入 批量插入数据使用的sql语句是: insert into table (字段一,字段二,字段三) values(xx,xx,xx),(oo, ...

  8. sqlserver 插入 更新 删除 语句中的 output子句

    官方文档镇楼: https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2008/ms177564(v=sql.100) 从 ...

  9. MYSQL-JDBC批量新增-更新-删除

    目录 1 概述 2 开启MYSQL服务端日志 3 深入MYSQL/JDBC批量插入 3.1 从一个例子出发 3.2 JDBC的批量插入操作 3.3 两个常被忽略的问题 3.5 误区 4 MYSQL/J ...

  10. TODO:MongoDB的查询更新删除总结

    TODO:MongoDB的查询更新删除总结 常用查询,条件操作符查询,< .<=.>.>=.!= 对应 MongoDB的查询操作符是$lt.$lte.$gt.$gte.$ne ...

随机推荐

  1. PHP array_multisort实现二维数组排序

    PHP array_multisort实现二维数组排序 参数中的数组被当成一个表的列并以行来进行排序 - 这类似 SQL 的 ORDER BY 子句的功能.第一个数组是要排序的主要数组.数组中的行(值 ...

  2. K8S入门系列之集群二进制部署-->node篇(三)

    node节点组件 docker kubelet kube-proxy kubernetes-server-linux-amd64.tar.gz(相关的这里都能找到二进制文件!) falnnel 1. ...

  3. Java 调用 Hbase API 访问接口实现方案

    HBase是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”.就像Bigtable利用了Google文件 ...

  4. Proxy动态代理-增强方法

    增强对象的功能 设计模式:一些通用的解决固定问题的方式 装饰器模式 代理模式 概念: 在代理模式(Proxy Pattern)中,一个类代表另一个类的功能.这种类型的设计模式属于结构型模式. 在代理模 ...

  5. 如何设置HTML页面中文本的字体

    字体属性介绍 CSS中的字体属性是干什么的呢?字体字体肯定和字体有关咯,就是设置HTML页面中文本的字体, CSS中常用的字体属性有几种呢,笔者给大家梳理了下,比较常用的一共有5种,今天我们就看看这5 ...

  6. LoadRunner具体流程

    创建负载测试场景场景目标:模拟10个用户同时登陆.搜索航班.购买机票.查看航班路线并退出打开Controller并创建一个新场景1.打开HP LoadRunner2.打开Controller在Load ...

  7. Django 项目笔记

    Django 环境的搭建 Django 安装 pip install django==2.1.4 Django 创建项目 django-admin startproject mysite Django ...

  8. hdu 1533 Going Home (KM)

    Going HomeTime Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  9. 0MQ讲述多线程魔法

    为什么你想过的所有你所知道关于并发的事情,不是完全神经病的(Insane),就是假的(Bogus). 并发的定律,e=mc*c.这里并不是爱因斯坦的质能方程.而是 努力 = 代码规模 * (线程冲突碰 ...

  10. opencv各种小例子

    图像腐蚀 #include <opencv2/highgui/highgui.hpp>//OpenCV highgui 模块头文件 ~ #include <opencv2/imgpr ...