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 ...
随机推荐
- php编辑器notepad++ 推荐一款非常好看主题和字体
php编辑器notepad++ 推荐一款非常好看主题和字体1.主题名称:Obsidian 2.字体字号:Courier New 10 3.设置方法:设置---语言格式设置---选择主题,同时勾选“使用 ...
- layaair和egret的区别
egret缺点1 编译速度非常慢 2 就是强类型转换非常的麻烦 3 只能用ts 所以只能用他们的IDE 不能用sublime layaair唯一不足的就是 insepct太垃圾 占用游戏界面 所以建议 ...
- JAVA 调用HTTP接口POST或GET实现方式
HTTP是一个客户端和服务器端请求和应答的标准(TCP),客户端是终端用户,服务器端是网站.通过使用Web浏览器.网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请 ...
- Docker学习-Spring Boot on Docker
1.创建spring boot项目 https://start.spring.io/ pom.xml文件新增docker支持 <build> <plugins> <plu ...
- 物联网安全himqtt防火墙数据结构之红黑树源码分析
物联网安全himqtt防火墙数据结构之红黑树源码分析 随着5G的发展,物联网安全显得特别重要,himqtt是首款完整源码的高性能MQTT物联网防火墙 - MQTT Application FireWa ...
- 如何在当前文件夹打开cmd(基于win10)
如何在当前文件夹打开cmd(基于win10) 方法一: 1.先打开你要进入的文件夹 2.在标记的位置输入cmd,就可以进入当前文件的cmd 方法二: 1.打开你要进入的文件夹 2.通过shift + ...
- ZeroC ICE的远程调用框架 ServantLocator与Locator
ServantLocator定位的目标是Servant,而Locator定位的目标是“Ice Object”,即一个可定位的“Ice Object”代理.Servant是::Ice::Object的继 ...
- GDG Xi'an DevFest 2019 闪电演讲 -《假如我是一个浏览器》PPT(经典多图,建议收藏)
GDG Xi'an DevFest2019演讲PPT链接: http://tmp.link/f/5dd9e6bf461b6 闪电演讲<假如我是一个浏览器>PPT链接: https://gi ...
- mysql通俗易懂的数据库连接池原理及模拟实现
什么是数据库连接池? 当系统使用JDBC技术访问数据库时会创建一个connection对象,而该对象的创建过程是非常消耗资源的,并且创建对象的时间也特别长,假设系统一天有1万次的访问量,那么一天就会有 ...
- 新闻实时分析系统 Spark2.X分布式弹性数据集
1.三大弹性数据集介绍 1)概念 2)优缺点对比 2.Spark RDD概述与创建方式 1)概述 在集群背后,有一个非常重要的分布式数据架构,即弹性分布式数据集(resilientdistribute ...