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 ...
随机推荐
- mpvue+小程序云开发,纯前端实现婚礼邀请函(相册小程序)
请勿使用本文章及源码作为商业用途! 前言 当初做这个小程序是为了婚礼前的需要,结婚之后,希望这个小程序能够留存下来,特地花了一些空闲时间将小程序转化成为“相册类小程序” 体验码 准备工作 mpvue框 ...
- Algorithm: GCD、EXGCD、Inverse Element
数论基础 数论是纯数学的一个研究分支,主要研究整数的性质.初等数论包括整除理论.同余理论.连分数理论.这一篇主要记录的是同余相关的基础知识. 取模 取模是一种运算,本质就是带余除法,运算结果就是余数. ...
- 导入maven项目pom报错
打开window->preferences->maven->user settings更换settings.xml即可
- Github PageHelper 原理解析
任何服务对数据库的日常操作,都离不开增删改查.如果一次查询的纪录很多,那我们必须采用分页的方式.对于一个Springboot项目,访问和查询MySQL数据库,持久化框架可以使用MyBatis,分页工具 ...
- VS2017,遇到异常:这可能是由某个扩展导致的
网上看的解决办法没有解决,干脆自己亲自动手搞吧! 具体问题如下: 解决方案: 按照提示路径打开日志文件定位问题所在,打开之后,拉倒最后看到如下图所示: 我的问题是因为安装了一个叫 "Clau ...
- requests模块使用代理
1.创建try_proxies.py文件import requestsproxies = {"http":"http:117.135.34.6:8060"}he ...
- 【Vue | ElementUI】Vue离开当前页面时弹出确认框实现
Vue离开当前页面时弹出确认框实现 1. 实现目的 在某种业务场景下,用户不允许跳转到其他页面.于是,需要在用户误操作或者是点击浏览器跳转时提示用户. 2. 实现原理 使用路由守卫beforeRout ...
- LVM术语及相互关系
*物理存储介质(PhysicalStorageMedia) 指系统的物理存储设备:磁盘,如:/dev/hda./dev/sda等,是存储系统最底层的存储单元. *物理卷(Physical Volume ...
- SpringBoot 正式环境必不可少的外部化配置
前言 <[源码解析]凭什么?spring boot 一个 jar 就能开发 web 项目> 中有读者反应: 部署后运维很不方便,比较修改一个 IP 配置,需要重新打包. 这一点我是深有体会 ...
- 安装eclipse血泪史
从大一到大三,屡次卸掉eclipse又屡次安装上,每次都要卡壳,所以这里开帖贴出自己的血泪史,以帮助大家 首先找一篇安装教程,网上有很多,这里不再赘述.举例 https://blog.csdn.net ...