pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

Mybatis步驟分解實現(xiàn)一個增刪改查程序

MybatisPlus是國產(chǎn)的第三方插件,它封裝了許多常用的CURDapi,免去了我們寫mapper.xml的重復勞動。本文將整合MybatisPlus實現(xiàn)增刪改查功能,感興趣的可以了解一下

1.idea新建Maven項目Mybatis-study 將項目里的src文件夾刪掉 依次將此項目作為父項目

2.在Mybatis-study中新建模塊mybatis-01

在mybatis的pom文件中可以看到其父項目為ybatis-study

<parent>
    <artifactId>MyBatis-study</artifactId>
    <groupId>org.example</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>

3. 在Mybatis-study的pom.xml中引入如下jar包

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.9</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.29</version>
    </dependency>
  </dependencies>

4.將IDEA和MySQL數(shù)據(jù)庫建立連接:

根據(jù)實際情況填寫user和password 填寫之后點擊Test Connection

測試成功之后點擊Schemas選擇你要鏈接的數(shù)據(jù)庫

5.新建mybatis-config.xml配置文件 引入數(shù)據(jù)庫資源

<?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>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/smbms?useSSL=true&amp;characterEncoding=UTF-8"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/kero/dao/UserMapper.xml" />
    </mappers>
</configuration>

6.創(chuàng)建實體類User 注意:實體類中成員變量名要和數(shù)據(jù)庫表中字段名完全一致

package com.kero.pojo;
public class User {
    private int id;
    private String name;
    private String password;
    public User() {
    }
    public User(int id, String name, String password) {
        this.id = id;
        this.name = name;
        this.password = password;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getpassword() {
        return password;
    }
    public void setpassword(String pwd) {
        this.password = pwd;
    }
    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", pwd='" + password + '\'' +
                '}';
    }
}

7.編寫工具類Utils

package com.kero.utils;
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 java.io.IOException;
import java.io.InputStream;
//sqlSessionFactory
public class MyBatisUtils {
    private static SqlSessionFactory sqlSessionFactory;
    static {
        try {
            //使用Mybatis第一步 獲取sqlSessionFactory對象
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
/*
既然有了 SqlSessionFactory,顧名思義,我們可以從中獲得 SqlSession 的實例。SqlSession
 提供了在數(shù)據(jù)庫執(zhí)行 SQL 命令所需的所有方法。你可以通過 SqlSession 實例來直接執(zhí)行已映射的 SQL 語句。例如:
 */
        public static SqlSession getSqlSession(){
            return sqlSessionFactory.openSession();
        }
}

8.定義接口

package com.kero.dao;
import com.kero.pojo.User;
import java.util.List;
public interface UserMapper {
  //查詢全部用戶
    List<User> getUserList();
    //根據(jù)ID查詢用戶
    User getUserByID(int id);
    //insert一個用戶
    int addUser(User user);
  //修改一個用戶
  int updateUser(User user);
  //刪除一個用戶
  int deleteUser(int id);
}

9.定義Mapper文件 這里的Mapper文件相當于原來傳統(tǒng)方式中接口的實現(xiàn)類

<?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會綁定一個對應的Mapper接口-->
<mapper namespace="com.kero.dao.UserMapper">
    <select id="getUserList" resultType="com.kero.pojo.User">
        select * from smbms.user
    </select>
        <select id="getUserByID" parameterType="int" resultType="com.kero.pojo.User">
            select * from smbms.user where id = #{id}
        </select>
    <insert id="addUser" parameterType="com.kero.pojo.User">
        insert into smbms.user (id, name, password) VALUES (#{id},#{name},#{password})
    </insert>
    <update id="updateUser" parameterType="com.kero.pojo.User">
       update smbms.user set name=#{name},password=#{password} where id = #{id}
    </update>
    <delete id="deleteUser" parameterType="int">
        delete from smbms.user where id = #{id}
    </delete>
</mapper>

10.編寫測試類

import com.kero.dao.UserMapper;
import com.kero.pojo.User;
import com.kero.utils.MyBatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.List;
public class test {
    @Test
    public void test(){
        SqlSession session = MyBatisUtils.getSqlSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        List<User> userList = mapper.getUserList();
        for (User l:userList) {
            System.out.println(l.toString());
        }
        session.close();
    }
    @Test
    public void testgetUserByID(){
        SqlSession session = MyBatisUtils.getSqlSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        User userByID = mapper.getUserByID(1);
        System.out.println(userByID);
        session.close();
    }
    //增刪改需要提交事務
    @Test
    public void testaddUser(){
        SqlSession session = MyBatisUtils.getSqlSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        int zhhgf = mapper.addUser(new User(10, "zhhgf", "1k23jbjk"));
        System.out.println(zhhgf);
        session.commit();
        //提交事務
        session.close();
    }
    @Test
    public void testupdateUser(){
        SqlSession session = MyBatisUtils.getSqlSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        int i = mapper.updateUser(new User(8,"asdfsdf","234sdfs"));
        session.commit();
        //提交事務
        session.close();
    }
    @Test
    public void testdeleteUser(){
        SqlSession session = MyBatisUtils.getSqlSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        int i = mapper.deleteUser(8);
        session.commit();
        //提交事務
        session.close();
    }
}

11.測試查詢功能 : 輸出結果與數(shù)據(jù)庫表中數(shù)據(jù)

User{id=1, name='Sugawara Ryota', pwd='8X8Jq7HVNs'}

User{id=2, name='Shawn Mills', pwd='R78IHGDSXr'}

User{id=3, name='Matsuda Hina', pwd='mUi3CVA7mc'}

User{id=4, name='Cynthia Hawkins', pwd='NO1EwWbOs9'}

User{id=5, name='Rachel Bennett', pwd='YefuPVxzb9'}

tips:

如果一切配置正常但出現(xiàn)java.lang.ExceptionInInitializerError

Caused by org.apache.ibatis.execeptions.PersistenceExecepyion錯誤

是因為:maven由于它的約定大于配置 我們寫的配置文件可能會出現(xiàn)無法被導出或者生效的問題解決方案 在pom.xml文件中添加如下代碼

<build>
  <resources>
    <resource>
      <directory>src/main/resources</directory>
      <includes>
        <include>**/*.properties</include>
        <include>**/*.xml</include>
      </includes>
      <filtering>true</filtering>
    </resource>
    <resource>
      <directory>src/main/java</directory>
      <includes>
        <include>**/*.properties</include>
        <include>**/*.xml</include>
      </includes>
      <filtering>true</filtering>
    </resource>
  </resources>
</build>

到此這篇關于Mybatis步驟分解實現(xiàn)一個增刪改查程序的文章就介紹到這了,更多相關Mybatis增刪改查內容請搜索html5模板網(wǎng)以前的文章希望大家以后多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯(lián)系我們刪除處理,感謝您的支持!

相關文檔推薦

主站蜘蛛池模板: 禹城彩钢厂_钢结构板房_彩钢复合板-禹城泰瑞彩钢复合板加工厂 | 分子精馏/精馏设备生产厂家-分子蒸馏工艺实验-新诺舜尧(天津)化工设备有限公司 | 精密模具制造,注塑加工,吹塑和吹瓶加工,EPS泡沫包装生产 - 济南兴田塑胶有限公司 | 智慧水务|智慧供排水利信息化|水厂软硬件系统-上海敢创 | 最新范文网_实用的精品范文美文网| 深圳彩钢板_彩钢瓦_岩棉板_夹芯板_防火复合彩钢板_长鑫 | 智慧食堂_食堂管理系统_食堂订餐_食堂消费系统—客易捷 | 北京律师事务所_房屋拆迁律师_24小时免费法律咨询_云合专业律师网 | 厦门ISO认证|厦门ISO9001认证|厦门ISO14001认证|厦门ISO45001认证-艾索咨询专注ISO认证行业 | 高压管道冲洗清洗机_液压剪叉式升降机平台厂家-林君机电 | PSI渗透压仪,TPS酸度计,美国CHAI PCR仪,渗透压仪厂家_价格,微生物快速检测仪-华泰和合(北京)商贸有限公司 | 洗地机-全自动/手推式洗地机-扫地车厂家_扬子清洁设备 | 恒温恒湿试验箱厂家-高低温试验箱维修价格_东莞环仪仪器_东莞环仪仪器 | 上海办公室装修公司_办公室设计_直营办公装修-羚志悦装 | 耐酸碱泵-自吸耐酸碱泵型号「品牌厂家」立式耐酸碱泵价格-昆山国宝过滤机有限公司首页 | 水稻烘干机,小麦烘干机,大豆烘干机,玉米烘干机,粮食烘干机_巩义市锦华粮食烘干机械制造有限公司 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | hdpe土工膜-防渗膜-复合土工膜-长丝土工布价格-厂家直销「恒阳新材料」-山东恒阳新材料有限公司 ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 中药二氧化硫测定仪,食品二氧化硫测定仪|俊腾百科 | 浙江红酒库-冰雕库-气调库-茶叶库安装-医药疫苗冷库-食品物流恒温恒湿车间-杭州领顺实业有限公司 | 净气型药品柜-试剂柜-无管道净气型通风柜-苏州毕恩思 | 亚洲工业智能制造领域专业门户网站 - 亚洲自动化与机器人网 | 算命免费_生辰八字_免费在线算命 - 卜算子算命网 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 东莞画册设计_logo/vi设计_品牌包装设计 - 华略品牌设计公司 | 带式过滤机厂家_价格_型号规格参数-江西核威环保科技有限公司 | 餐饮加盟网_特色餐饮加盟店_餐饮连锁店加盟 | 奥运星-汽车性能网评-提供个性化汽车资讯 | 制样机-密封锤式破碎机-粉碎机-智能马弗炉-南昌科鑫制样 | 新能源汽车电池软连接,铜铝复合膜柔性连接,电力母排-容发智能科技(无锡)有限公司 | 福尔卡(北京)新型材料技术股份有限公司 | 复合土工膜厂家|hdpe防渗土工膜|复合防渗土工布|玻璃纤维|双向塑料土工格栅-安徽路建新材料有限公司 | 学校用栓剂模,玻璃瓶轧盖钳,小型安瓿熔封机,实验室安瓿熔封机-长沙中亚制药设备有限公司 | 深圳法律咨询【24小时在线】深圳律师咨询免费| 新密高铝耐火砖,轻质保温砖价格,浇注料厂家直销-郑州荣盛窑炉耐火材料有限公司 | 大型工业风扇_工业大风扇_大吊扇_厂房车间降温-合昌大风扇 | 造价工程师网,考试时间查询,报名入口信息-网站首页 | 盛源真空泵|空压机-浙江盛源空压机制造有限公司-【盛源官网】 | 「钾冰晶石」氟铝酸钾_冰晶石_氟铝酸钠「价格用途」-亚铝氟化物厂家 | 并离网逆变器_高频UPS电源定制_户用储能光伏逆变器厂家-深圳市索克新能源 | 地磅-地秤-江阴/无锡地磅-江阴天亿计量设备有限公司_ | 齿轮减速电机一体机_蜗轮蜗杆减速马达-德国BOSERL齿轮减速机带电机生产厂家 |