MyBatis更新,删除,插入
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需要小写的 ):
- 和 & & amp;
- 单 引号 ' & apos;
- 双引 号 " & quot;
- 大于 号 > & gt;
- 小于 号 < & lt;
MyBatis更新,删除,插入的更多相关文章
- Bitter.Core系列七:Bitter ORM NETCORE ORM 全网最粗暴简单易用高性能的 NETCore ORM 示例 更新删除插入
Bitter Orm 在操作数据库增删改的时候,支持模型驱动和直接执行裸SQL 操作,示例代码如下: 一:模型驱动(增删改) /// <summary> /// 插入,删除,更新示例(模型 ...
- Mybatis 循环删除/插入
<foreach collection="array" open="(" separator="," close=")&qu ...
- mybatis + mysql 批量插入、删除、更新
mybatis + mysql 批量插入.删除.更新 Student 表结构 批量插入 public int insertBatchStudent(List<Student> studen ...
- Mybatis 实现批量插入和批量删除源码实例
Mybatis 实现批量插入数据和批量删除数据 学习内容: 准备工作 1.数据库新建表 2.新建 Maven 项目和设置编译版本及添加依赖 3.新建 db.properties 4.新建 mybati ...
- 我的MYSQL学习心得(八) 插入 更新 删除
我的MYSQL学习心得(八) 插入 更新 删除 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得( ...
- oracle插入,更新,删除数据
插入,更新,删除数据 oracle提供了功能丰富的数据库管理语句 包括有效的向数据库中插入数据的insert语句 更新数据的update语句 以及当数据不再使用时删除数据的delete语句 更改数据之 ...
- mybatis+mysql批量插入和批量更新、存在及更新
mybatis+mysql批量插入和批量更新 一.批量插入 批量插入数据使用的sql语句是: insert into table (字段一,字段二,字段三) values(xx,xx,xx),(oo, ...
- sqlserver 插入 更新 删除 语句中的 output子句
官方文档镇楼: https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2008/ms177564(v=sql.100) 从 ...
- MYSQL-JDBC批量新增-更新-删除
目录 1 概述 2 开启MYSQL服务端日志 3 深入MYSQL/JDBC批量插入 3.1 从一个例子出发 3.2 JDBC的批量插入操作 3.3 两个常被忽略的问题 3.5 误区 4 MYSQL/J ...
- TODO:MongoDB的查询更新删除总结
TODO:MongoDB的查询更新删除总结 常用查询,条件操作符查询,< .<=.>.>=.!= 对应 MongoDB的查询操作符是$lt.$lte.$gt.$gte.$ne ...
随机推荐
- 一条查询语句在MySQL中是如何执行的?
前言 我们在学习一种技术的时候,首先要鸟瞰其全貌,千万不要一开始就陷入到细节中去,这样有助于我们站在高维度其理解问题 —— 丁奇. 学习MySQL也是一样,所以我们可以从一条查询语句的执行开始看起. ...
- Windows键盘无法调起
Windows 键盘无法调起 经常使用触摸屏幕的小伙伴肯定都遇到过屏幕键盘怎么也唤不起来(在桌面模式下,非平板模式).以下收集了一些常见的解决方案: 注:本文基于 Windows 10 v1903,其 ...
- 0xe7f001f0!?NDK调试过程,无故抛出SIGSEGV。
arm调试过程,如果抛一个SIGSEGV,地址在 0xe7f001f0 附近,原因居然是因为我在调试.当我使用n指令跳到下一行代码时,往往变成了continue指令一样地执行.还不确定地抛出SIGSE ...
- drf序列化组件之视图家族
一.视图家族的分类 1.导入分类 from rest_framewok import views, generics, mixins, viewsets views:视图类 两大视图类:APIVi ...
- call() 、 apply() 、bind()方法的作用和区别!
从一开始,我是在书上看到关于bind().call() 和 apply(), 不过长久以来,在工作中与网上接触到了很多关于这三个方法的使用场景,对这三个方法也算是比较熟悉了.所以把他们的作用和区别简单 ...
- 【集训Day4 动态规划】【2018寒假集训 Day4 更新】蛙人
蛙人 (ple) 蛙人使用特殊设备潜水.设备中有一个气瓶,分两格:一格装氧气,另一格装氮气.留在水中有时间的限制,在深水中需要大量的氧气与氮气.为完成任务,蛙人必须安排好气瓶.每个气瓶可以用它的重量和 ...
- Python-Re正则表达式库
来源:中国MOOC北京理工大学Python教学团队 链接:https://www.icourse163.org/learn/BIT-1001870001#/learn/content?type=det ...
- SQL SERVER中SELECT和SET赋值相同点与不同点
SELECT和SET在SQL SERVER中都可以用来对变量进行赋值,但其用法和效果在一些细节上有些不同. 1. 在对变量赋值方面,SET是ANSI标准的赋值方式,SELECT则不是.这也是SET方式 ...
- windows和linux的开机顺序
windows的开机顺序: 启动自检阶段---初始化启动阶段---Boot加载阶段---检测和配置硬件阶段---内核加载阶段---屏幕显示. linux的开机启动顺序: 加载Bios---读取MBR- ...
- 使用Python爬取、清洗并分析前程无忧的大数据职位
爬取前程无忧的数据(大数据职位) # -*- coding: utf-8 -*- """ Created on Wed Nov 1 14:47:27 2019 @auth ...