• 核心配置文件中配置数据库连接及注册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&amp;useUnicode=true&amp;characterEncoding=UTF8&amp;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之增删改查的更多相关文章

  1. 学习MyBatis必知必会(5)~了解myBatis的作用域和生命周期并抽取工具类MyBatisUtil、mybatis执行增删改查操作

    一.了解myBatis的作用域和生命周期[错误的使用会导致非常严重的并发问题] (1)SqlSessionFactoryBuilder [ 作用:仅仅是用来创建SqlSessionFactory,作用 ...

  2. MyBatis的增删改查。

    数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改,并且对程序接口做了一些调整,以及对一些问题进行了解答. 1.调整后的结构图: 2.连接数据库文件配置分离: 一般的程序都会把连 ...

  3. MyBatis批量增删改查操作

      前文我们介绍了MyBatis基本的增删该查操作,本文介绍批量的增删改查操作.前文地址:http://blog.csdn.net/mahoking/article/details/43673741 ...

  4. 上手spring boot项目(三)之spring boot整合mybatis进行增删改查的三种方式。

    1.引入依赖. <!--springboot的web起步依赖--><dependency> <groupId>org.springframework.boot< ...

  5. 上手spring boot项目(三)之spring boot整合mybatis进行增删改查

    使用mybatis框架进行增删改查大致有两种基础方式,一种扩展方式.两种基础方式分别是使用xml映射文件和使用方法注解.扩展方式是使用mybatis-plus的方式,其用法类似于spring-data ...

  6. 从0开始完成SpringBoot+Mybatis实现增删改查

    1.准备知识: 1)需要掌握的知识: Java基础,JavaWeb开发基础,Spring基础(没有Spring的基础也可以,接触过Spring最好),ajax,Jquery,Mybatis. 2)项目 ...

  7. Spring Boot入门系列(六)如何整合Mybatis实现增删改查

    前面介绍了Spring Boot 中的整合Thymeleaf前端html框架,同时也介绍了Thymeleaf 的用法.不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/z ...

  8. Mybatis实例增删改查(二)

    创建实体类: package com.test.mybatis.bean; public class Employee { private Integer id; private String las ...

  9. mybatis的增删改查返回值小析(六)

    本文验证了通过mybatis访问数据库时的,增删改查的返回值情况. 直接看代码. 1.service层 /** *@Author: Administrator on 2020/3/12 15:15 * ...

  10. ssm 框架实现增删改查CRUD操作(Spring + SpringMVC + Mybatis 实现增删改查)

    ssm 框架实现增删改查 SpringBoot 项目整合 一.项目准备 1.1 ssm 框架环境搭建 1.2 项目结构图如下 1.3 数据表结构图如下 1.4 运行结果 二.项目实现 1. Emplo ...

随机推荐

  1. nginx之日志切割

    方便查看nginx日志, 平常会将nginx日志进行每日切割处理. 这里介绍 平常比较常用的两种方式 1. logrotate 在linux上logrotate是一个日志文件管理工具.用于分割日志文件 ...

  2. 用VuePress在GitHub Pages上搭建博客

    请先点击链接RobinDevNotes,体验用VuePress搭建博客的效果(logo还没有合适的替换),目前部署在GitHub Pages上,国内访问速度还可以,再阅读本文感受来龙去脉和搭建过程. ...

  3. Nuxt.js 应用中的 request 事件钩子

    title: Nuxt.js 应用中的 request 事件钩子 date: 2024/12/4 updated: 2024/12/4 author: cmdragon excerpt: 在构建现代 ...

  4. 一个 tomcat 下部署多个项目(超细另类版)

    前言:网上大佬们的都是一个webapps下面部署多个项目,咱们今天来点不一样的,另一种思路则是,多个webapps,每个webapps下面运行一个项目,不知如何本地部署的可以去看看我上一篇随笔 具体步 ...

  5. 18号CSS学习

    一.CSS简介  1.HTML局限性 只关注内容的语义. "丑" 2.CSS-网页的美容师 CSS是层叠样式表的简称,也称为CSS样式表或级联样式表. 主要用于设置HTML页面中的 ...

  6. word操作类

    public class WordUtility { private _Application wordApp = null; private _Document wordDoc = null; pu ...

  7. 利用Catalina快速重新指定tomcat的代码路径

    思路: 在/tomcat/conf/Catalina/localhost目录下,建立对应的xml文件,来定义. 方法: 比如:想在 Http://localhost/test-api 显示,且代码放在 ...

  8. 青少年学习C++参考视频

    09C++选择结构(3) 第20课 初识算法 第21课 3个数排序 第22课 随机函数rand 第23课 if语句的应用 第24课 bug与debug 10C++选择结构(4) 第25课 成绩等级 第 ...

  9. manim边学边做--突出显示

    本篇介绍Manim中用于突出显示某些内容的动画类,主要包括: ApplyWave:让图形或文字产生连续波浪式变形的动画类,用于展示波动效果,参数可调节 Circumscribe:用于在几何场景中展示图 ...

  10. 【Rive】眼睛互动动画

    1 前言 ​ 本文基于 Rive 社区开放的眼睛动画,进一步加工处理,实现更有趣的眼睛互动动画. ​ 原始资源见 → Eye Joysticks Demo,效果如下. ​ 原始资源只有一只眼睛,并且没 ...