首页 > 数据库 >ssm学习笔记23001-mybatis接入和数据库连接实现一个插入数据的操作

ssm学习笔记23001-mybatis接入和数据库连接实现一个插入数据的操作

时间:2023-02-22 00:44:25浏览次数:44  
标签:username String public ssm 23001 mybatis password id

mybatis:

是什么,用来干嘛的,同类竞品中有何种优势?

mybatis在idea中的引入:

1、创建一个空工程

2、创建一个空的maven文件:

会自动生成一个pox文件,打包类型配置为jar,添加 mybatis的依赖,mysql驱动依赖,junit依赖并配置好对应的版本号。

  <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>mybatis_helloword</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!-- 只打jar 包-->
    <packaging>jar</packaging>

    <dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.7</version>
        </dependency>

        <!-- junit测试-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

        <!-- mysql 驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.30</version>
        </dependency>
    </dependencies>
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

</project>

3、创建mysql数据库和对应的user表

这一步用navicat界面创建即可。

create table t_user(id int not null auto_increment, username varchar(20) not null default '', primary key(id));

4、创建pojo类和mybatis映射关系

在main-java文件夹下:
创建接pojo类放置的包com.wjw.mybatis.pojo:
创建User类
User,私有成员要和表中的数据一一对应,

package com.wjw.mybatis.pojo;

/**
 * @Author wjwdive
 * @Date 2023/2/19 22:40
 * @Description:
 */
public class User {
    private Integer id;
    private String username;
    private  String password;
    private  Integer age;
    private  String gender;
    private String email;

    //必须要有
    public User() {

    }

    public User(Integer id, String username, String password, Integer age, String gender, String email) {
        this.id = id;
        this.username = username;
        this.password = password;
        this.age = age;
        this.gender = gender;
        this.email = email;
    }

    public Integer getId() {
        return id;
    }

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

    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 Integer getAge() {
        return age;
    }

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

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getEmail() {
        return email;
    }

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

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", age=" + age +
                ", gender='" + gender + '\'' +
                ", email='" + email + '\'' +
                '}';
    }
}

创建mybatis映射文件放置的包com.wjw.mybatis.mapper:
创建接口类:UserMapper
1)映射文件的命名规则:
表所对应的实体类的类名+Mapper.xml
例如:表t_user对应的实体类为User,所对应的映射文件为UserMapper.xml
因此一个映射文件对应一个实体类,对应一张表的操作
MyBatis映射文件用于编写SQL,访问数据库以及操作表中的数据。
MyBatis映射文件存放的位置是src/main/resources/mappers目录下
2)MyBatis中可以面向接口操作数据,要保证两个一致:
a>mapper接口的全类名和映射文件的命名空间(namespace)保持一致。
b>mapper接口中方法的方法名和映射文件中编写SQL的标签的id属性保持一致。

里面定义插入用户的一个接口: int insertUser();

package com.wjw.mybatis.mapper;

/**
 * @Author wjwdive
 * @Date 2023/2/19 22:54
 * @Description:
 */
public interface UserMapper {
    int insertUser();
}

在数据库中建表t_user共这几个字段:
id,username,password,gender,age,email:

主键为id,自增,自动填充0,无符号。

我们此时要配置数据库连接:

创建文件,jdbc.properities文件 用来保存数据库连接信息

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm?serverTimezone=UTC
jdbc.username=root
jdbc.password=0000

创建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">
<!-- mybatis 的核心配置文件 -->
<configuration>
    <properties resource="jdbc.properties"/>
    <settings>
        <!--        自动将下划线 映射为驼峰 -->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
    <typeAliases>
        <package name=""/>
    </typeAliases>

    <!--    配置连接数据库的环境-->
    <environments default="test">
        <environment id="test">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
    <!--    引入mybatis的映射文件-->
    <mappers>
<!--        <package name=""/>-->
        <mapper resource="UserMapper.xml"></mapper>
    </mappers>
</configuration>

然后就可以写测试类了
在src/test/java/下,创建包com.wjw.mybatis.test

package com.wjw.mybatis.test;

import com.wjw.mybatis.mapper.UserMapper;
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.Test;

import java.io.IOException;
import java.io.InputStream;

/**
 * @Author wjwdive
 * @Date 2023/2/19 23:32
 * @Description:
 */
public class MyBatisTest {
    @Test
    public void testInsert() throws IOException {
        //获取核心配置文件的输入流
        InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
        //获取SqlSessionFactoryBuilder对象
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        //获取sqlSessionFactory对象
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
        //获取sql的会话对象SqlSession,是mybatis提供的操作数据库对象的方法
        SqlSession sqlSession = sqlSessionFactory.openSession(true);//自动提交事务,需设置参数 为true
        //获取UserMapper的代理实现类对象
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        //调用 mapper接口中的方法,实现添加用户信息的功能
        int result = mapper.insertUser();
        //提交事务【不提交事务,会自动回滚执行的脚本】
        sqlSession.commit();
        System.out.println("结果:"+result);

        //关闭连接
        sqlSession.close();
    }
}

运行测试用例,就可以插入数据了;

标签:username,String,public,ssm,23001,mybatis,password,id
From: https://www.cnblogs.com/wjw-blog/p/17135919.html

相关文章

  • Mybatis Plus 框架项目落地实践总结
    在使用了MybatisPlus框架进行项目重构之后,关于如何更好的利用Mybatisplus。在此做一些总结供大家参考。主要总结了以下这几个方面的实践。基础设计BaseEntity逻辑......
  • 2月21日javaweb学习之MyBatis
    MyBatis是一款优秀的持久层框架,所谓持久层就是负责将数据保存到数据库的那一层代码。(1)MyBatis快速入门,查询user表中所有的数据1.创建user表,添加数据2.创建模块,导入坐标......
  • 七、Spring整合MyBatis
    整合思路将SqlSessionFactory配置到Spring容器中<!--加载jdbc.properties--><context:property-placeholderlocation="classpath:jdbc.properties"/><!--配置数据源-......
  • MyBatis中mapper文件的常用标签
    <sql>标签:用来封装sql语句或者复用语句的,然后用<include>标签来调用<sqlid="selectFields">stuid,stuname,stuclass,stuage</sql><selectid="selectStudentByNam......
  • 六、MyBatis的注解开发
    MyBatis的常用注解这几年来注解开发越来越流行,Mybatis也可以使用注解开发方式,这样我们就可以减少编写Mapper映射文件了。我们先围绕一些基本的CRUD来学习,再学习复杂映射......
  • idea中配置mybatis 映射文件模版及 mybatis plus 自定义sql
    本文为博主原创,未经允许不得转载:mybatisplus 使用过程中已经很大程度提升了我们开发的效率,因为它内部已经对单表的操作进行了完美的封装,但是关联表操作时,这时就需要自......
  • mybatis plus 主键策略
    博主原创,转载请注明出处:mybatis plus 对实体类映射表的主键做了注解支持,该注解为@TableId,如果不使用该注解,mybatisplus 默认主键生成的策略是内部封装的雪花算......
  • mybatis plus 中增删改查及Wrapper的使用
    本文为博主原创,未经允许不得转载:mybatisplus 通过封装 baseMapper 以及 ServiceImpl,实现对数据库的增删改查操作,baseMapper 是我们通常所说的dao层或mapper......
  • 搭建 spring boot + mybatis plus 项目框架并进行调试
    本文为博主原创,未经允许不得转载:1.创建一个spring boot的工程应用:File---->New----->Project----> 然后选中SpringInitializr 继续创建:  2.添加sprin......
  • mybatis配置文件resultMap标签的使用
    本文为博主原创,未经允许不得转载:      resultMap标签是为了映射select查询出来结果的集合,其主要作用是将实体类中的字段与数据库表中的字段进行关联映射。    ......