Maven-MyBatis之添加数据

MyBatis

  1. 主要是对数据库数据的简化,类似我们之前使用的JDBC
  2. 回顾JDBC的使用
    package www.hbkjxy.util;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    
    public class DbUtil {
    
    	private String dbUrl = "jdbc:mysql://localhost:3306/db_laboratory";
    	private String dbUserName = "root";
    	private String dbPassword = "123456";
    	private String jdbcName = "com.mysql.jdbc.Driver";
    
    	public Connection getCon() throws Exception {
    		Class.forName(jdbcName);
    		Connection con = DriverManager.getConnection(dbUrl, dbUserName, dbPassword);
    		return con;
    	}
    
    	public void closeCon(Connection con) throws Exception {
    		if (con != null) {
    			con.close();
    		}
    	}
    
    	public static void main(String[] args) {
    		DbUtil dbUtil = new DbUtil();
    		try {
    			dbUtil.getCon();
    			System.out.println("数据库连接成功");
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    }
    
    
  3. 核心图
    在这里插入图片描述
  4. 文档在线查看:https://mybatis.org/mybatis-3/zh/getting-started.html
  5. 参考视频:https://www.bilibili.com/video/BV1V7411w7VW?p=1
如何使用
  • 新建Maven工程
    在这里插入图片描述
  • pom.xml,加载依赖的包
    <dependencies>
       <dependency>
           <groupId>org.mybatis</groupId>
           <artifactId>mybatis</artifactId>
           <version>3.2.8</version>
       </dependency>
    
       <dependency>
           <groupId>mysql</groupId>
           <artifactId>mysql-connector-java</artifactId>
           <version>5.1.40</version>
       </dependency>
    
       <dependency>
           <groupId>org.projectlombok</groupId>
           <artifactId>lombok</artifactId>
           <version>1.18.6</version>
           <scope>provided</scope>
       </dependency>
    </dependencies>
    
    遇到的问题:导入的包,出现波浪红线
    在这里插入图片描述
    解决的方案:
  1. 重新下载
    在这里插入图片描述
  2. 更换版本
    在这里插入图片描述
  • 新建数据表(navicat)

    use mybatis;
    CREATE table t_account(
    	id int PRIMARY key auto_increment,
    	username VARCHAR(11),
    	password VARCHAR(11),
    	age int
    )
    
  • 新建数据表对于的实体类Account

  1. 为了简化实体类
     <dependency>
         <groupId>org.projectlombok</groupId>
         <artifactId>lombok</artifactId>
         <version>1.18.6</version>
         <scope>provided</scope>
     </dependency>
    
  2. 实体类的编写(@Data注解中包含了get,set和toString方法)
    package com.southwind.entity;
    
    import lombok.Data;
    
    /**
     * @auther gerry
     * @date 2020/6/11- 11:22
     */
    @Data
    public class Account {
        private long id;
        private String username;
        private String password;
        private int age;
    }
    
  • 创建MyBatis的配置文件config.xml,路径在resources里面
    <?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>
        <!-- 配置MyBatis运行环境-->
        <environments default="development">
            <environment id="development">
                <!--配置JDBC事务管理 -->
                <transactionManager type="JDBC"/>
                <!--POOLED配置JDBC数据源连接池 -->
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&amp;characterEncoding=UTF-8"/>
                    <property name="username" value="root"/>
                    <property name="password" value="123456"/>
                </dataSource>
            </environment>
        </environments>
    
        <!--注册 AccountMapper.xml-->
        <mappers>
    
            <mapper resource="com/southwind/mapper/AccountMapper.xml"></mapper>
    
        </mappers>
    </configuration>
    

使用原生接口

1、MyBatis框架需要开发者自定义SQL语句,写在Mapper.xml文件中,实际开发中,会为每个实体类创建对应的Mapper.xml,定义管理对象数据的SQL。

<?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.southwind.mapper.AccoutMapper">

    <insert id="save" parameterType="com.southwind.entity.Account">
        insert int t_acoount(username,password,age) values(#{username},#{password},#{age})
    </insert>

</mapper>
  • namespace 通常设置为文件所在包+文件名的形式
  • insert标签表示执行添加操作
  • select标签表示执行查询操作
  • updata标签表示执行更新操作
  • delet标签表示执行删除操作
  • id是实际调用MyBatis方法时需要用到的参数
  • parameterType是调用对应方法时参数的数据类型

2、在全局配置文件config.xml中 注册AccountMapper.xml

<!--注册 AccountMapper.xml-->
<mappers>

    <mapper resource="com/southwind/mapper/AccountMapper.xml"></mapper>

</mappers>

3、调用MyBatis原生接口添加操作

public class Test {
    public static void main(String[] args) {
        //加载MyBatis配置文件
        InputStream inputStream = Test.class.getClassLoader().getResourceAsStream("config.xml");
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        String statement = "com.southwind.mapper.AccoutMapper.save";
        Account account = new Account(1L,"张三","123456",22);
        sqlSession.insert(statement,account);
        sqlSession.commit();
    }
}

遇到的问题:无法解析AccountMapper.xml文件
解决的方案:在pom.xml加入

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

4、最后效果
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅气转身而过

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值