IDEA新建maven项目,使用mybatis操作数据库完整过程


前提: 这个教程是在maven项目中使用mybatis进行数据库操作,不是在spring boot项目中。

一、IDEA新建maven项目

  1. 打开idea,新建maven项目
    在这里插入图片描述
  2. 在pom文件中添加mybatis和mysql依赖
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <version>RELEASE</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.7</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.33</version>
        </dependency>

二、配置mybatis

  1. 在resources目录下,新建jdbc.properties配置文件,然后输入数据库的配置项,如下所示:
# mysql8的驱动
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/demo
username=root
password=root
  1. 然后新建mybatis-config.xml文件,配置mybatis的数据库连接,以及mapper映射文件,如下所示:
<?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>
    <!--  引入配置文件properties  -->
    <properties resource="jdbc.properties">

    </properties>
<!--    配置log4j-->
<!--    <settings>-->
<!--        <setting name="loglmpl" value="LOG4J"/>-->
<!--    </settings>-->

    <typeAliases>
        <package name="com.cc.demo.model"/>
    </typeAliases>
    <environments default="mysql">
        <environment id="mysql">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <!--数据库地址-->
                <property name="url" value="${url}"/>
                <!--数据库账号-->
                <property name="username" value="${username}"/>
                <!--数据库密码-->
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!--映射文件路径 对于其他的mapper,按照如下格式即可-->
        <mapper resource="mapper/SeatMapper.xml"/>
        <mapper resource="mapper/UserInfoMapper.xml"/>
    </mappers>
</configuration>

三、创建表对应实体类

  1. 然后根据数据库表创建数据库实体类,示例表创建语句如下所示:

create table userinfo
(
    userId    int auto_increment 
        primary key,
    username  varchar(50) not null,
    userSex   tinyint     not null,
    userPhone varchar(50) not null,
    email     varchar(50) not null
);

大家参照这个格式,然后使用自己的表即可
2. 然后根据数据库表创建实体类,如下所示:

public class UserInfo implements Serializable {
    private Integer userId;

    private String username;

    private Byte usersex;

    private String userphone;

    private String email;

    public UserInfo() {
    }

    public UserInfo(Integer userId, String username, Byte usersex, String userphone, String email) {
        this.userId = userId;
        this.username = username;
        this.usersex = usersex;
        this.userphone = userphone;
        this.email = email;
    }

    private static final long serialVersionUID = 1L;

    public Integer getuserId() {
        return userId;
    }

    public void setuserId(Integer userId) {
        this.userId = userId;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public Byte getUsersex() {
        return usersex;
    }

    public void setUsersex(Byte usersex) {
        this.usersex = usersex;
    }

    public String getUserphone() {
        return userphone;
    }

    public void setUserphone(String userphone) {
        this.userphone = userphone;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

四、创建mapper接口

  1. 根据自己想要的操作,创建mapper接口,这里只写了一个插入方法,如下所示:
@Mapper
public interface UserInfoMapper {
    int insert(UserInfo record);
}
  1. 创建该mapper对应的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.cc.demo.mapper.UserInfoMapper">
  <resultMap id="BaseResultMap" type="com.zzj.webservlet.model.UserInfo">
    <id column="userId" jdbcType="INTEGER" property="userId" />
    <result column="username" jdbcType="VARCHAR" property="username" />
    <result column="userSex" jdbcType="TINYINT" property="usersex" />
    <result column="userPhone" jdbcType="VARCHAR" property="userphone" />
    <result column="email" jdbcType="VARCHAR" property="email" />
  </resultMap>
  <sql id="Base_Column_List">
     userId, username, userSex, userPhone, email
  </sql>
  <insert id="insert" keyColumn="userId" keyProperty="userId" parameterType="com.cc.demo.model.UserInfo" useGeneratedKeys="true">
    insert into userinfo (username, userSex, userPhone, 
      email)
    values (#{username,jdbcType=VARCHAR}, #{usersex,jdbcType=TINYINT}, #{userphone,jdbcType=VARCHAR}, 
      #{email,jdbcType=VARCHAR})
  </insert>
</mapper>
  • namespace:这里填写对应的mapper的路径
  • insert:这一块是编写的对应的插入语句,
  • id是为了标识方法,用于mybatis查找所调用的方法,
  • parameterType表示的是方法的参数类型

注意: 以上就是mybatis的主要使用过程,mapper和对应的xml映射文件结合使用,用来操作数据库。mybatis也可以使用注解对数据库进行操作。但xml文件能够实现更为复杂的语句,所以一般我在开发过程中是xml文件和注解配合使用的。

五、使用mybatis操作数据库

上面只给出了mybatis的配置和xml文件的编写,这里给出具体如何使用mybatis操作数据库。具体代码如下所示:

public class Test01 {
    public static SqlSessionFactory getSqlSessionFactory() throws IOException {
        //注意此处路径不要写错
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        return new SqlSessionFactoryBuilder().build(inputStream);
    }
    public static void main(String[] args) throws IOException {
        //1、获取SqlSessionFactory实例
        SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
        //2、打开一个会话
        SqlSession openSession = sqlSessionFactory.openSession();
        try {
            // 3、获取接口的实现类对象,会为接口自动的创建一个代理对象,代理对象去执行增删改查方法
            UserInfoMapper mapper = openSession.getMapper(UserInfoMapper.class);
            int count = 0;
            // 4、调用接口的方法
            for (int i = 0; i < 30; i++) {
                if(i % 2 == 0){
                    count += mapper.insert(new UserInfo(i,"xiao" + i, (byte) 1,"156382260" +i,"xiao" + i +"@qq.com"));
                }else {
                    count +=mapper.insert(new UserInfo(i,"xiao" + i, (byte) 0, "156382260" +i,"xiao" + i +"@qq.com"));
                }
            }
            System.out.println(count);
            //7.提交事务,核心配置文件中的事物方式为JDBC,因此需要手动提交
            //这里需要加上commit(),否则能够实现功能,但不能将修改持久化到数据库,也就是说,没有commit不会真正的改变数据库,而是会回滚的执行前
            openSession.commit();
        } finally {
            //4、使用完毕后关闭会话
            openSession.close();
        }
    }
}

上面就是maven项目使用mybatis的过程,大概就是这样一个模板。可以根据自己的需要进行修改,而且上面的创建工厂和会话可以进行封装,不用每次都再去写这一部分的代码。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IDEA新建MyBatis逆向工程可以通过以下步骤实现: 1. 在IDEA新建一个Maven项目,选择"Create from archetype",并选择maven-archetype-quickstart。 2. 在pom.xml文件中添加MyBatis Generator的依赖: ```xml <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.4.0</version> </dependency> ``` 3. 创建MyBatis Generator的配置文件generatorConfig.xml,并配置数据库连接信息、生成代码的规则等。具体配置可以参考MyBatis官方文档。可以将配置文件放在src/main/resources目录下。 4. 在IDEA中打开"Maven Projects"窗口,选择要生成代码的项目,展开"Plugins",找到MyBatis Generator插件。 5. 双击"mybatis-generator:generate",在弹出的"Edit Configuration"中,配置如下: - Main Class:org.mybatis.generator.api.ShellRunner - VM options:-Dfile.encoding=UTF-8 - Working directory:$MODULE_DIR$ - Command line:-configfile ${PROJECT_DIR}/src/main/resources/generatorConfig.xml -overwrite 其中,-configfile参数指定了配置文件的路径,-overwrite参数表示覆盖已有文件。 6. 点击"OK"保存配置,再次双击"mybatis-generator:generate",即可生成代码。 执行完毕后,即可在指定的目录下生成Java Bean、Mapper XML及Mapper接口等代码。 注意:在新建项目时,需要选择maven-archetype-quickstart,因为这个archetype中已经包含了Maven和JUnit的依赖。如果选择其他archetype,需要手动添加这些依赖。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值