mybatis环境搭建步骤(含配置文件代码)

简介: mybatis环境搭建步骤(含配置文件代码)


1.创建web项目

2.将所需要的jar包放在项目内,并且build-path

3.创建资源文件夹resources

4.在资源文件夹中创建xml文件mybatis-config.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>
  <!-- 起别名 -->
  <typeAliases>
    <typeAlias alias="Dept" type="org.entity.Dept"/>
  </typeAliases>
  <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/schooldb"/>
        <property name="username" value="root"/>
        <property name="password" value="root"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
  <!-- 加载的映射文件 -->
    <mapper resource="org/dao/IDeptDao.xml"/>
  </mappers>
</configuration>

5.创建entity包,根据数据库表创建实体类,一个表对应一个实体类,表中的字段对应实体类中的属性

6.创建dao包,在dao包中创建接口(在接口写方法,增删改查)

public int addDept(Dept dept);
public List<Dept> findDeptAll();

7.在dao层中编写mapper.xml文件,一般mapper文件和接口文件名相同

8.IDeptDao.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="org.dao.IDeptDao">
  <!-- 查询部门的数量 -->
  <select id="findCountDept"  resultType="int">
    select count(*) from dept
  </select>
  <!-- 添加信息 -->
  <insert id="addDept" parameterType="org.entity.Dept">
      insert into dept(did,dname) values(#{did},#{dname}); 
  </insert>
  <!-- 修改信息 -->
  <update id="updateDept" parameterType="org.entity.Dept">
    update dept set dname = #{dname} where did = #{did}
  </update>
  <!-- 删除 -->
  <delete id="delDept" parameterType="org.entity.Dept" >
   delete from dept where did = #{did}
  </delete>
  <!-- 查询全部 -->
  <select id="findDeptAll" resultType="org.entity.Dept">
    select * from dept;
  </select>
  <!-- 根据编号查询信息 -->
  <select id="findDeptById" resultType="org.entity.Dept"
               parameterType="int">
    select * from dept where did = #{did}
  </select>
</mapper>

9.编写测试类,代码如下:

package org.test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.Scanner;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.dao.IDeptDao;
import org.entity.Dept;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class TestMain {
  
  //单元测试
  String path = "mybatis-config.xml";
  SqlSession session = null;
  InputStream in =null;
  
  @Before
  public void before(){
    try {
      in = Resources.getResourceAsStream(path);
      session = new SqlSessionFactoryBuilder().build(in).openSession();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
  
  //查询部门数量
  @Test
  public void testCount() {
    // 加载xml文件
    int count = session.selectOne("org.dao.IDeptDao.findCountDept");
    System.out.println("一共有:" + count + "个部门");
  }
  //添加信息
  @Test
  public void addDept(){
      Dept dept = new Dept();
      dept.setDid(6);
      dept.setDname("运维部");
      int rel = session.insert("org.dao.IDeptDao.addDept",dept);
      //提交(增删改)
      session.commit();
      if(rel>0){
        System.out.println("添加成功");
      }else{
        System.out.println("添加失败");
      }
    
  }
  //查询全部
  @Test
  public void findAllDept(){
      List<Dept> dList = session.getMapper(IDeptDao.class).findDeptAll();
      for (Dept dept : dList) {
        System.out.println("编号:"+dept.getDid()+",名称:"+dept.getDname());
      }
  }
  //根据编号查询
  public Dept findDeptById(int did){
    Dept dept = session.getMapper(IDeptDao.class).findDeptById(did);
    return dept;
  }
  
  //修改
  @Test
  public void updateDel(){
    findAllDept();
    System.out.println("请输入用户编号:");
    Scanner sc = new Scanner(System.in);
    int did = sc.nextInt();
    //根据编号查询
    Dept dept = findDeptById(did);
    System.out.println("需要修改的部门信息:");
    System.out.println("编号:"+dept.getDid()+",名称:"+dept.getDname());
    System.out.println("请输入新的部门名称:");
    dept.setDname(sc.next());
    //调用修改的方法
    int rel = session.getMapper(IDeptDao.class).updateDept(dept);
    //提交
    session.commit();
    if(rel>0){
      System.out.println("修改成共");
    }else{
      System.out.println("修改失败");
    }
  }
  
  
  //删除
  @Test
  public void delDept(){
    findAllDept();
    System.out.println("请输入需要删除的编号:");
    Scanner sc = new Scanner(System.in);
    Dept dept = session
          .getMapper(IDeptDao.class)
          .findDeptById(sc.nextInt());
    //调用删除
    int rel = session.getMapper(IDeptDao.class).delDept(dept);
    session.commit();
    if(rel>0){
      System.out.println("删除成功");
      findAllDept();
    }
    
  }
  
  //最后执行
  @After
  public void after(){
    if(session!=null){
      session.close();
    }
  }
}


点在看

相关文章
|
2月前
|
XML Java 数据库连接
mybatis plus模板快速生成代码
MybatisX 是一款提升开发效率的 IDEA 插件,尤其适用于处理多表情况。通过 MybatisX-Generator,用户能轻松生成实体类、服务类、Mapper 接口及 XML 文件,显著减少工作量。安装步骤简便:通过 File -&gt; Settings -&gt; Plugins -&gt; Browse Repositories 完成搜索与安装流程。集成数据库后,右键所需操作的数据表,选择 MyBatisX-Generator 进行自动化代码生成。更多细节可参考相关教程。
67 0
|
1月前
|
Java 数据库连接 Maven
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和MyBatis Generator,使用逆向工程来自动生成Java代码,包括实体类、Mapper文件和Example文件,以提高开发效率。
105 2
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
|
22天前
|
搜索推荐 Java 数据库连接
Java|在 IDEA 里自动生成 MyBatis 模板代码
基于 MyBatis 开发的项目,新增数据库表以后,总是需要编写对应的 Entity、Mapper 和 Service 等等 Class 的代码,这些都是重复的工作,我们可以想一些办法来自动生成这些代码。
29 6
|
1月前
|
前端开发 Java Apache
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
本文详细讲解了如何整合Apache Shiro与Spring Boot项目,包括数据库准备、项目配置、实体类、Mapper、Service、Controller的创建和配置,以及Shiro的配置和使用。
288 1
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
|
5月前
|
XML Java 数据库连接
MyBatis入门——MyBatis XML配置文件(3)
MyBatis入门——MyBatis XML配置文件(3)
71 6
|
1月前
|
前端开发 Java 数据库连接
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
本文是一份全面的表白墙/留言墙项目教程,使用SpringBoot + MyBatis技术栈和MySQL数据库开发,涵盖了项目前后端开发、数据库配置、代码实现和运行的详细步骤。
42 0
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
|
5月前
|
SQL 前端开发 Java
我这样写代码,比直接使用 MyBatis 效率提高了 100 倍
Mybatis Hibernate 等都是我们常用的 ORM, 它们有时候很好用,但某些场景下也很繁琐,比如下文要讲的一个需求,最后本文会给出比直接用这些 ORM 开发效率至少提高 100 倍的方法...
54 1
我这样写代码,比直接使用 MyBatis 效率提高了 100 倍
|
5月前
|
Java 数据库连接 Android开发
SSM框架——使用MyBatis Generator自动创建代码
SSM框架——使用MyBatis Generator自动创建代码
47 2
|
4月前
|
Java 数据库连接 Maven
Private method ‘getVideoList()‘ is never used,mybatis必须指定Mapper文件和实体目录,在参考其他人写的代码,要认真分析别人的代码,不要丢失
Private method ‘getVideoList()‘ is never used,mybatis必须指定Mapper文件和实体目录,在参考其他人写的代码,要认真分析别人的代码,不要丢失
|
5月前
|
SQL Java 数据库连接
MyBatis SQL 批量更新(代码➕案例)
MyBatis SQL 批量更新(代码➕案例)
912 0