使用mybatis完成单表的增删改查操作(动态sql)

本文介绍了如何使用MyBatis框架进行单表的增删改查操作,包括全查、新增、删除、修改和模糊查询。详细讲解了MyBatis动态SQL的执行原理,以及如何通过XML配置文件和接口实现数据库交互。同时,还提到了日志配置和动态SQL的应用,如多条记录删除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 什么是mybatis

MyBatis 是一个可以自定义 SQL、存储过程和高级映射的持久层框架。

2.能简述一下动态sql 的执行原理不?

其执行原理为,使用OGNL 从sql 参数对象中计算表达式的值,根据表达式的值动态拼接sql,以此来完成动态sql 的功能。

3.MyBatis 的好处是什么?

a、MyBatis 把 sql 语句从 Java 源程序中独立出来,放在单独的 XML 文件中编写,给程序的维护带来了很大便利。

b、MyBatis 封装了底层 JDBC API 的调用细节,并能自动将结果集转换成 Java Bean 对象, 大大简化了 Java 数据库编程的重复工作。

c、因为 MyBatis 需要程序员自己去编写 sql 语句,程序员可以结合数据库自身的特点灵活控制 sql 语句,因此能够实现比 Hibernate 等全自动 orm 框架更高的查询效率,能够完成复杂查询。

MySQL数据库

drop database if exists web1;
create database web1;
#使用数据库
use web1;
#创建表
create table w_user(
uid int primary key auto_increment,
username varchar(20),
password varchar(20),
phone varchar(11),
address varchar(50)
)
#新增
insert into w_user(username,password,phone,address) values('张三','123','18537452315','河南');
insert into w_user(username,password,phone,address) values('小红','321','15978388536','河北');
insert into w_user(username,password,phone,address) values('小明','213','13913094291','上海');
select * from w_user where username='张三' and password='123'
#新增
insert into w_user(username,password) values(?,?);

创建mybatis01项目在里面调用jar包

创建包

在com.wang.bean包在里面创建User实体类

package com.wang.bean;

public class User {
    private Integer uid;
    private String username;
    private String password;
    private String phone;
    private String address;

    @Override
    public String toString() {
        return "User{" +
                "uid=" + uid +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", phone='" + phone + '\'' +
                ", address='" + address + '\'' +
                '}';
    }

    public Integer getUid() {
        return uid;
    }

    public void setUid(Integer uid) {
        this.uid = uid;
    }

    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;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

创建mybatis.xml在里面配置环境信息

<?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>
<!--配置环境信息===就是配置连接数据库的参数
default:指定配置的环境信息的id。表示默认连接该环境-->
    <environments default="mysql">
        <environment id="mysql">
            <!--配置事务的处理方式:模式使用jdbc的事务处理-->
            <transactionManager type="jdbc"></transactionManager>
            <!--数据源的默认type设置为pooled,表示使用连续池-->
            <dataSource type="pooled">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/web1"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!--加载mapper配置文件-->
        <mapper class="com.wang.dao.UserDao"/>
    </mappers>
</configuration>

一,全查1.在com.wang.dao包中创建UserDao接口,在里面编写全查的代码

package com.wang.dao;

import com.wang.bean.User;

import java.util.List;

public interface UserDao {
    //查询
    List<User> selectAll();
}

2.在com.wang.dao包中创建UserDao.xml文件在里面设置映射和通过select标签进行查询

<?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">
<!--namespace是映射的dao接口-->
<mapper namespace="com.wang.dao.UserDao">
    <!--通过select标签进行查寻
    id:映射接口的方法名
    parameterType:指定参数的类型只需要指定集合元素的类型即可
    resultType:指定返回值的类型-->
   
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值