mybatis之增删改查
- 核心配置文件中配置数据库连接及注册mapper.xml
- mapper.xml用来编写执行的sql(namespace为对应的接口类,标签id为接口类中的方法名)
- User为实体对象类
- UserDao为接口类(操作对象类)
核心配置文件
<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--核心配置文件-->
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF8&serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="admin#1234"/>
</dataSource>
</environment>
</environments>
<!--每一个Mapper.xml都需要在Mybatis核心配置文件中注册-->
<mappers>
<mapper resource="com\yeyue\dao\UserMapper.xml"/>
</mappers>
</configuration>
UserMapper.xml
<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace:绑定一个对应的Dao/Mapper接口-->
<mapper namespace="com.yeyue.dao.UserDao">
<!-- 获取所有用户-->
<select id="getUserList" resultType="com.yeyue.pojo.User">
select * from mybatis.user;
</select>
<!--通过id查看用户-->
<select id="getUserById" resultType="com.yeyue.pojo.User" parameterType="int">
select * from mybatis.user where id = #{id};
</select>
<!--新增用户-->
<insert id="addUser" parameterType="com.yeyue.pojo.User" >
insert into mybatis.user (id,name,pwd) values (#{id},#{name},#{pwd});
</insert>
<!--更新用户-->
<update id="updateUserById" parameterType="com.yeyue.pojo.User" >
update mybatis.user set pwd = #{pwd} where id = #{id};
</update>
<!--删除用户-->
<delete id="deleteUserById" parameterType="com.yeyue.pojo.User">
delete from mybatis.user where id = #{id} ;
</delete>
</mapper>
User
package com.yeyue.pojo;
public class User {
private int id;
private String name;
private String pwd;
public User() {
}
public User(int id, String name, String pwd) {
this.id = id;
this.name = name;
this.pwd = pwd;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public String getPwd() {
return pwd;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", pwd='" + pwd + '\'' +
'}';
}
}
UserDao
package com.yeyue.dao;
import com.yeyue.pojo.User;
import java.util.List;
public interface UserDao {
//获取所有用户
List<User> getUserList();
//根据id查找用户
User getUserById(int id);
//新增用户
int addUser(User user);
//更新用户
int updateUserById(User user);
//删除用户
int deleteUserById(User user);
}
测试类
package com.yeyue.dao;
import com.yeyue.pojo.User;
import com.yeyue.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.List;
public class UserDaoTest {
@Test
public void test() {
//获得session对象
SqlSession sqlSession = MybatisUtils.getSqlSession();
try {
//执行sql 方式一
UserDao mapper = sqlSession.getMapper(UserDao.class);
List<User> userList = mapper.getUserList();
//方式二 不推荐
//List<User> userList = sqlSession.selectList("com.yeyue.dao.UserDao.getUserList");
for (User user : userList) {
System.out.println(user);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
//关闭session
sqlSession.close();
}
}
@Test
public void test2() {
//获得session对象
SqlSession sqlSession = MybatisUtils.getSqlSession();
try {
UserDao mapper = sqlSession.getMapper(UserDao.class);
User user = mapper.getUserById(1);
System.out.println(user);
} catch (Exception e) {
e.printStackTrace();
} finally {
//关闭session
sqlSession.close();
}
}
@Test
public void test3() {
//获得session对象
SqlSession sqlSession = MybatisUtils.getSqlSession();
try {
UserDao mapper = sqlSession.getMapper(UserDao.class);
int i = mapper.addUser(new User(5,"你好吗","1214888133"));
if(i>0){
System.out.println("插入成功");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
//提交事务
sqlSession.commit();
//关闭session
sqlSession.close();
}
}
@Test
public void test4() {
//获得session对象
SqlSession sqlSession = MybatisUtils.getSqlSession();
try {
UserDao mapper = sqlSession.getMapper(UserDao.class);
int i = mapper.updateUserById(new User(1,"么么哒","888888"));
if(i>0){
System.out.println("更新成功");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
//提交事务
sqlSession.commit();
//关闭session
sqlSession.close();
}
}
@Test
public void test5() {
//获得session对象
SqlSession sqlSession = MybatisUtils.getSqlSession();
try {
UserDao mapper = sqlSession.getMapper(UserDao.class);
int i = mapper.deleteUserById(new User(5,"张三","888888"));
System.out.println(i);
if(i>0){
System.out.println("删除成功");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
//提交事务
sqlSession.commit();
//关闭session
sqlSession.close();
}
}
}
mybatis之增删改查的更多相关文章
- 学习MyBatis必知必会(5)~了解myBatis的作用域和生命周期并抽取工具类MyBatisUtil、mybatis执行增删改查操作
一.了解myBatis的作用域和生命周期[错误的使用会导致非常严重的并发问题] (1)SqlSessionFactoryBuilder [ 作用:仅仅是用来创建SqlSessionFactory,作用 ...
- MyBatis的增删改查。
数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改,并且对程序接口做了一些调整,以及对一些问题进行了解答. 1.调整后的结构图: 2.连接数据库文件配置分离: 一般的程序都会把连 ...
- MyBatis批量增删改查操作
前文我们介绍了MyBatis基本的增删该查操作,本文介绍批量的增删改查操作.前文地址:http://blog.csdn.net/mahoking/article/details/43673741 ...
- 上手spring boot项目(三)之spring boot整合mybatis进行增删改查的三种方式。
1.引入依赖. <!--springboot的web起步依赖--><dependency> <groupId>org.springframework.boot< ...
- 上手spring boot项目(三)之spring boot整合mybatis进行增删改查
使用mybatis框架进行增删改查大致有两种基础方式,一种扩展方式.两种基础方式分别是使用xml映射文件和使用方法注解.扩展方式是使用mybatis-plus的方式,其用法类似于spring-data ...
- 从0开始完成SpringBoot+Mybatis实现增删改查
1.准备知识: 1)需要掌握的知识: Java基础,JavaWeb开发基础,Spring基础(没有Spring的基础也可以,接触过Spring最好),ajax,Jquery,Mybatis. 2)项目 ...
- Spring Boot入门系列(六)如何整合Mybatis实现增删改查
前面介绍了Spring Boot 中的整合Thymeleaf前端html框架,同时也介绍了Thymeleaf 的用法.不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/z ...
- Mybatis实例增删改查(二)
创建实体类: package com.test.mybatis.bean; public class Employee { private Integer id; private String las ...
- mybatis的增删改查返回值小析(六)
本文验证了通过mybatis访问数据库时的,增删改查的返回值情况. 直接看代码. 1.service层 /** *@Author: Administrator on 2020/3/12 15:15 * ...
- ssm 框架实现增删改查CRUD操作(Spring + SpringMVC + Mybatis 实现增删改查)
ssm 框架实现增删改查 SpringBoot 项目整合 一.项目准备 1.1 ssm 框架环境搭建 1.2 项目结构图如下 1.3 数据表结构图如下 1.4 运行结果 二.项目实现 1. Emplo ...
随机推荐
- 为什么Spring官方不推荐使用 @Autowired?
前言 很多人刚接触 Spring 的时候,对 @Autowired 绝对是爱得深沉. 一个注解,轻松搞定依赖注入,连代码量都省了. 谁不爱呢? 但慢慢地,尤其是跑到稍微复杂点的项目里,@Autowir ...
- WxPython跨平台开发框架之参数配置管理界面的设计和实现
我曾经在2014年在随笔<Winform开发框架之参数配置管理功能实现-基于SettingsProvider.net的构建>介绍过基于.NET开发的参数配置管理界面,本篇随笔基于类似的效果 ...
- 【快慢指针】LeetCode 143. 重排链表
题解 用快慢指针先找到中间结点,然后断开前后两条链,用头插法的思路逆转后面那条链,最后两条链依次从前往后遍历插入即可. 参考代码 /** * Definition for singly-linked ...
- PM-数据治理中,常用的术语解释
1 指标 是表征和评价一项或多项经营活动业务绩效的指示.指标由指标名称和指标数值两部分组成,指标名称及其涵义体现指标在质和量方面的规定性,指标数值反映指标在具体对象在特定时间.空间.条件下的数量表现. ...
- RHEL8安装docker
1,安装yum-utils和dnf-utils yum install -y yum-utils dnf-utils 2,添加源 docker官方源 yum-config-manager --add- ...
- 【工具】navcat无限使用
1.打开无限试用工具所在文件夹,打开navcat安装所在文件夹 2.将破解dll文件移动到navcat安装目录下 然后就去试用软件吧,如果软件试用到期了或者快要到期就运行这个脚本就行. 按道理来说这个 ...
- Windows 11 下 Virtualbox 6.1.34 出现 End kernel panic - not syncing: attempted to kill the idle task
前言小半年没用 Virtualbox 了,切换到了 VMware,今天又切换回去(无聊),但是安装虚拟机出现这个错误. 解决方法根据 Virtualbox 论坛的讨论[1]和[2],首先明确 系统必须 ...
- Spring boot 配置文件位置
Spring boot 的Application.properties 配置文件可以是以下几个地方:classpath:/,classpath:/config/,file:./,file:./conf ...
- Qt开发经验小技巧221-225
在对表格数据模型操作的时候,经常遇到一种场景就是,删除某条记录后,希望重新选中某一行.QTableView.QTableWidget本身就支持多选全选等操作,比如批量删除可以多选. //拿到表格数据模 ...
- Qt数据库应用19-图片转pdf
一.前言 用户的需求真的是千奇百怪,刚做完不同页面横向纵向排版的需求,又来个需要图片转pdf的需求,提供静态函数直接使用. 经过这么些年的社会的毒打,我的原则是:用户是上帝和大爷,尽量站在用户的角度换 ...