Mybatis实现简单的增删改查

Mybatis实现简单的增删改查

环境问题配置点击下面链接

https://blog.csdn.net/BianDaNiu/article/details/102840114
下面贴代码,由于是简单学习测试使用,有些写法并不是很好,仅供参考
保证数据库名和变量名相同

package com.daixin.mybatisdemo.domain;

import jdk.nashorn.internal.objects.annotations.Getter;
import jdk.nashorn.internal.objects.annotations.Setter;


import java.util.Date;

public class Role {
    private Integer id;
    private String name;
    private Date birth;
    private Integer age;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Date getBirth() {
        return birth;
    }

    public void setBirth(Date birth) {
        this.birth = birth;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Role{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", birth=" + birth +
                ", age=" + age +
                '}';
    }
}

接口

package com.daixin.mybatisdemo.dao;

import com.daixin.mybatisdemo.domain.Queryvo;
import com.daixin.mybatisdemo.domain.Role;

import java.util.List;

public interface ImRole {

    List<Role> findAll();//查询角色

    void deleteRole(String name);//删除角色

    void updateRole(Role role);//修改角色

    void insertRole(Role role);//增加角色

    List<Role> findByName(String name);//通过姓名模糊查找

   List<Role> findByVo(Queryvo queryvo);//模糊查找

     int findTotal();//返回总数
}
<?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.daixin.mybatisdemo.dao.ImRole">
    <!--增加角色-->
      <insert id="insertRole" parameterType="com.daixin.mybatisdemo.domain.Role">
          insert  into role(name,birth,age) value (#{name},#{birth},#{age})
      </insert>
    <!--查询角色-->
    <select id="findAll" resultType="com.daixin.mybatisdemo.domain.Role">
        select * from role
    </select>
    <!--修改角色-->
    <update id="updateRole" parameterType="com.daixin.mybatisdemo.domain.Role">
        update role set name=#{name},birth=#{birth},age=#{age} where id=#{id}
    </update>
    <!--删除角色-->
    <delete id="deleteRole" parameterType="String">
        delete  from  role where name=#{name }
    </delete>
    <!--按姓名模糊查找-->
    <select id="findByName" parameterType="string" resultType="com.daixin.mybatisdemo.domain.Role">
        select * from  role where  name like #{name }
    </select>
    <!--query姓名模糊查找-->
    <select id="findByVo" parameterType="string" resultType="com.daixin.mybatisdemo.domain.Role">
        select * from  role where name like  #{role.name}
    </select>
    <!--查找总条数 count后不要手贱多打空格-->
    <select id="findTotal"   resultType="int">
      select count(id) from role
    </select>
</mapper>
package com.daixin.mybatisdemo.domain;

import com.daixin.mybatisdemo.dao.ImRole;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import javax.annotation.Resource;
import java.io.InputStream;
import java.util.*;

public class RoleTest {
    private InputStream in;
    private    SqlSessionFactoryBuilder builder;
    private SqlSession sqlSession;
    private SqlSessionFactory factory;
    private ImRole imRole;

    @Before
    public void init() throws  Exception{
        //1.读取配置文件
        in = Resources.getResourceAsStream("SqlMapConfig.xml");
        //2.创建SqlSessionFactory工厂
        builder=new SqlSessionFactoryBuilder();
        factory = builder.build(in);
        //3.使用工厂生产SqlSession对象
        sqlSession = factory.openSession();
        //4.使用SqlSession工厂创建Dao接口的代理对象
        imRole =sqlSession.getMapper(ImRole.class);
    }
    @After
    public void destroy() throws Exception{
        // 提交事务
        sqlSession.commit();
        //6.释放资源
        sqlSession.close();
        in.close();
    }
    @Test
    public void insertRoleTest(){
        Role role = new Role();
        role.setName("二方");
        role.setBirth(new Date());
        role.setAge(19);
        imRole.insertRole(role);
        System.out.println("插入成功");
    }
    @Test
    public  void findAllTest(){
        List<Role> roles = imRole.findAll();
        for (Role r : roles) {
            System.out.println(r);
        }
    }
    @Test
    public void updateRole(){
        Role role = new Role();
        role.setId(1);
        role.setName("戴鑫");
        role.setAge(25);
        role.setBirth(new Date());
        imRole.updateRole(role);
    }
    @Test
    public void deleteRole(){
        imRole.deleteRole("戴鑫");
    }
    /*
    模糊查找
     */
    @Test
    public void findByNameTest() {
        List<Role> roles = imRole.findByName("%方%");
        for (Role role : roles) {
            System.out.println(role);
        }

    }
    /*
    queryVo 模糊查找
     */
    @Test
    public  void  findByVoTest(){
        Role role = new Role();
        Queryvo queryvo = new Queryvo();
        role.setName("%方%");
        queryvo.setRole(role);
        List<Role> list = imRole.findByVo(queryvo);
        for (Role r : list) {
            System.out.println(r);
        }
    }
    /*
    查询条数
     */
    @Test
    public void  findTotalTest(){
        int total = imRole.findTotal();
        System.out.println(total);

    }
}
好的,以下是使用SpringBoot整合mybatis实现简单增删改查操作的代码示例: 1. 首先在pom.xml中添加依赖: ```xml <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.4</version> </dependency> ``` 2. 在application.properties中配置数据库相关信息: ```properties # 数据库配置 spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # Mybatis配置 mybatis.mapper-locations=classpath*:mapper/*.xml mybatis.type-aliases-package=com.example.demo.entity ``` 3. 创建实体类和Mapper接口: ```java // User实体类 public class User { private Long id; private String name; private Integer age; // getter和setter方法省略 } ``` ```java // UserMapper接口 public interface UserMapper { User selectById(Long id); List<User> selectAll(); void insert(User user); void update(User user); void delete(Long id); } ``` 4. 在resources/mapper目录下创建UserMapper.xml文件,定义SQL语句: ```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 namespace="com.example.demo.mapper.UserMapper"> <resultMap id="BaseResultMap" type="com.example.demo.entity.User"> <id column="id" property="id" jdbcType="BIGINT" /> <result column="name" property="name" jdbcType="VARCHAR" /> <result column="age" property="age" jdbcType="INTEGER" /> </resultMap> <select id="selectById" resultMap="BaseResultMap"> SELECT id, name, age FROM user WHERE id = #{id} </select> <select id="selectAll" resultMap="BaseResultMap"> SELECT id, name, age FROM user </select> <insert id="insert"> INSERT INTO user (name, age) VALUES (#{name}, #{age}) </insert> <update id="update"> UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id} </update> <delete id="delete"> DELETE FROM user WHERE id = #{id} </delete> </mapper> ``` 5. 在Service中调用Mapper接口: ```java @Service public class UserService { @Autowired private UserMapper userMapper; public User getUserById(Long id) { return userMapper.selectById(id); } public List<User> getAllUser() { return userMapper.selectAll(); } public void addUser(User user) { userMapper.insert(user); } public void updateUser(User user) { userMapper.update(user); } public void deleteUser(Long id) { userMapper.delete(id); } } ``` 最后,启动应用程序即可进行增删改查操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值