增删改查- 万能map- 模糊查询
1.编写接口
2.编写对应的mapper种的sql语句
3.测试
接口

public interface UserDao {
List<User> getUserList();
//根据ID查询用户
User getUserId(int id);
//增加一个用户
int addUser(User user);
//修改一个用户
int update_User(User user);
//删除一个用户
int deleteUser(int id);
}
创建相关的实体类的时候,属性要和数据库对应的字段相同(一一对应),方便后面 传入对象 对数据库进行更改
比如数据库字段id name age, 创建的实体类User 属性就包括 int id , String name , int age 也包括相关的set get 方法
增删改查用特有的方式写到xml文件中

<?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接口-->
<mapper namespace="com.ljm.dao.UserDao(接口路径)"> </mapper>
增

<insert id="addUser" parameterType="com.ljm.pojo.User" >
insert into mybatis.user(name,age) value (#{name},#{age});
</insert>

public void test_addUser(){
SqlSession sqlSession=MybatisUtils.getSqlSession();
UserDao mapper=sqlSession.getMapper(UserDao.class);
int number = mapper.addUser(new User("韩红",21));
System.out.println(number);
//必须要提交事务
sqlSession.commit();
sqlSession.close();
删

<delete id="deleteUser" parameterType="int">
delete from mybatis.user where id=#{id}
</delete> <!-- 这里实测 对象属性中没有id这一项 , 仅仅传递一个值(不是对象)的话
这样也能成功删除 -->

public void test_deleteUser(){
SqlSession sqlSession=MybatisUtils.getSqlSession();
UserDao mapper=sqlSession.getMapper(UserDao.class);
int number = mapper.deleteUser(5);
System.out.println(number);
//必须要提交事务
sqlSession.commit();
sqlSession.close();
}
改

<update id="update_User" parameterType="com.ljm.pojo.User">
update mybatis.user
set age =#{age},name =#{name}
where id=6
</update> <!-- update: where id=6 是对象中的属性缺少与数据库字段对应(比如自增ID),可以直接再此写上数值 ,不推荐 ,还是对象属性全部覆盖字段会比较好 如 where id=#{id}
-->

public void test_updateUser(){
SqlSession sqlSession=MybatisUtils.getSqlSession();
UserDao mapper=sqlSession.getMapper(UserDao.class);
int number = mapper.update_User(new User("韩跑跑",28));
System.out.println(number);
//必须要提交事务
sqlSession.commit();
sqlSession.close();
}
查(传入是对象的时候,也依然使用#{属性值}来取值)

<!-- parameterType 输入参数的类型--> <select id="getUserId" resultType="com.ljm.pojo.User" parameterType="int" >
select * from mybatis.user where id =#{id}
</select> <!-- 单传一个值的话(不是对象),对象中没有id这个属性也行-->

public void test_getUserbyID(){
SqlSession sqlSession=MybatisUtils.getSqlSession();
UserDao mapper=sqlSession.getMapper(UserDao.class);
User user = mapper.getUserId(3);
System.out.println(user);
sqlSession.close();
}
模糊查询
自动提交事务:true

public static SqlSession getSqlSession(){
// SqlSession sqlSession= sqlSessionFactory.openSession();
// return sqlSession;
//优化 true自动提交()增删改
return sqlSessionFactory.openSession(true);
}
万能的Map
当实体类或者数据库中的表,字段过多, 需要传递多个参数, 就可以使用Map(或者注解)
遇到查询的时候,标签属性加上返回类型 resultMap=""
int getUserCount(Map<String, String> map);

<insert id="addUser2" parameterType="map" >
insert into mybatis.user(name,age) value (#{n},#{a});
</insert> <!-- value (#{n},#{a} 里面的n a 对应传的参里面的 n a -->

public void test_addUser2(){
SqlSession sqlSession=MybatisUtils.getSqlSession();
UserDao mapper=sqlSession.getMapper(UserDao.class);
Map<String, Object> map = new HashMap<>();
map.put("n","卫龙");
map.put("a","18");
//对应XML里面的n a
int number = mapper.addUser2(map);
System.out.println(number);
//必须要提交事务
sqlSession.commit();
sqlSession.close();
}
模糊查询
1.在JAVA代码中传递通配符% %
List<User> userList = mapper.getUserLike("%卫%");
2.在SQL拼接使用通配符(推荐)

<select id="getUserLike" resultType="com.ljm.pojo.User" >
select * from mybatis.user where name like "%"#{s}"%"
</select> <!-- <select id="getUserLike" resultType="com.ljm.pojo.User" >-->
<!-- select * from mybatis.user where name like CONCAT('%',#{s},'%')-->
<!-- </select>-->
增删改查- 万能map- 模糊查询的更多相关文章
- JavaWeb系统(增删改查、多条件查询功能)
该系统是一个简单的青年服务管理系统,主要包括了较完整的常用的增删改查以及多条件查询功能,对于初学者有很大帮助. 下面是相关的Java代码.jsp页面.以及数据库的创建和相关表的设计 java代码 首先 ...
- oracle初试、函数、增删改查、多表查询
安装oracle后的测试以及解锁账户 安装后打开命令行,输入 sqlplus 回车后会提示输入用户名,输入 sys或者system 回车后输入密码,密码为安装or ...
- Django中多表的增删改查操作及聚合查询、F、Q查询
一.创建表 创建四个表:书籍,出版社,作者,作者详细信息 四个表之间关系:书籍和作者多对多,作者和作者详细信息一对一,出版社和书籍一对多 创建一对一的关系:OneToOne("要绑定关系的表 ...
- PHP-----练习-------租房子-----增删改查,多条件查询
练习-------租房子-----增删改查,多条件 一 .题目要求: 二 .做法: [1]建立数据库 [2]封装类文件------DBDA.class.php <?php class DBDA ...
- 潭州课堂25班:Ph201805201 django框架 第六课 模型类增删改查,常用 的查询矣查询条件 (课堂笔记)
在视图函数中写入增删改查的方法 增: 在 urls 中配置路径 : 查: 1: 在后台打印数据 在模型类中添加格式化输出 : QuerySet,反回的是个对象,可以按索引聚会,用 for 循环,, 找 ...
- mysql增删改查、连表查询、常用操作
一.建表 1.最简单的建表CREATE TABLE user(id int,name char(20),age int); 2.带主键带注释和默认值创建表CREATE TABLE user(id I ...
- mybatis:开发环境搭建--增删改查--多表联合查询(多对一)
什么是mybatisMyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis使用简单的XML或 ...
- MySQL:记录的增删改查、单表查询、约束条件、多表查询、连表、子查询、pymysql模块、MySQL内置功能
数据操作 插入数据(记录): 用insert: 补充:插入查询结果: insert into 表名(字段1,字段2,...字段n) select (字段1,字段2,...字段n) where ...; ...
- MyBatis的使用增删改查(两种分页查询)
文件目录 写一下每个文件的代码 UserDao.java package cn.zys.dao; import java.io.IOException; import java.util.List; ...
随机推荐
- 面试问题之C++语言:说一下static关键字的作用
1.全局静态变量 在全局变量加上关键字static,全局变量就定义成一个全局静态变量,存放于静态存储区,在整个程序运行期间一直存在:未经初始化的全局静态变量会被自动初始化为0:全局静态变量在声明他的文 ...
- BeanFactory – BeanFactory 实现举例?
Bean 工厂是工厂模式的一个实现,提供了控制反转功能,用来把应用的配置和依赖从正真的应用代码中分离. 最常用的BeanFactory 实现是XmlBeanFactory 类.
- GoLang数组切片
1. 数组1.1 如何定义数组同java数组一样,数组是一组内存连续且类型相同的数据组成 //不初始化初始值默认为0 var arr1 = [5]int{} var arr2 = [5]int{1,2 ...
- 10行 JavaScript 实现文本编辑器
背景 我们平时用到的浏览器编辑器功能都会比较多,实现的代码逻辑也会非常复杂,往往是作为一个单独插件被引入进来的.但是,现在我只需要一个很基本的内容输入内容编辑的功能,如:粗体.斜体.列表.对齐等.那要 ...
- 访问控制protected是不同包中对子类可见,什么意思?
2.2 以下例子说明:protected是不同包中对子类可见,对非子类不可见. 例1.2.2.a:---本例为正常用法. package p1;public class A { protecte ...
- 微信分享报错config:invalid url domain
错误类型:invalid url domain 调试返回参数: { "errMsg": "config:invalid url domain" } 截图: 环境 ...
- apache开启图片缓存压缩
①-浏览器缓存图片信息 开启Apache的expires模块,重启Apache 2.在虚拟主机的配置文件里面,增加对图片信息缓存的配置,重启Apache 3.在网站目录里面填写测试代码 4.测试效果 ...
- 第一阶段:Java基础之异常和处理
文章目录 Java中异常处理机制的简单和应用 一.异常的体系结构&分类 二.问题扩展 三.应用场景 Java中异常处理机制的简单和应用 异常也是一种对象,Java中有很多异常类,并且定义了基类 ...
- Spring-JdbcTemplate(注入到spring容器)-02
1.导入spring-jdbc和spring-tx坐标 <dependency> <groupId>junit</groupId> <artifactId&g ...
- conn username/password@servicename
conn username/password 方式连接的时候,会碰到这样的错误问题 oracle@prd:/home/oracle/impdir$sqlplus /nolog SQL*Plus: Re ...