• (一)使用Mybatis实现在student数据库中插入一个学生信息


    准备工作

    首先下载好对应的maven和修改好其中的xml文件及配好环境变量之后,再下载好mybatis之后,在idea中修改好配置,就可以创建maven文件了,选择创建maven-…-quickstart 然后一个maven项目就创建好了(ps:在联网的时候创建)
    创建好之后右下角有个这样的图
    在这里插入图片描述
    选择enable auto-import就可以了

    1.引入相关依赖

    使用项目管理工具maven仓库来管理JAR包
    因为该项目(插入学生用到了数据库)所以需要在项目的pom.xml文件中导入MySQL驱动包,MyBatis包,JUnit测试包(一般自动有JUnit)
    直接在浏览器中搜maven仓库,进去,搜你需要用的包名,选择相应的版本,粘贴到pom.xml文件中即可

    另外:idea不会自动编译src/main/java目录下的xml文件,所以需要在pom.xml加上一下代码,目的是将项目中的src/main/java目录下的xml等资源文件进行编译进classes文件夹
    加入的位置在上面

    <resources>
              <resource>
                  <directory>src/main/java</directory>
                  <includes>
                      <include>**/*.xml
                  
              
     
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2.创建mybatis核心配置文件

    在src/main/java目录下创建mybatis核心配置文件,用于项目的环境配置,如:链接数据库等相关配置,通常命名为mybatis-config,xml
    在下载好的mybatis中找到里面的说明文件,搜dtd,选择带有configuration的那个,直接粘贴到里面就行

    <?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.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8"/>
                    <property name="username" value="root"/>
                    <property name="password" value=""/>
                </dataSource>
            </environment>
        </environments>
        <mappers>
            <mapper resource="映射文件的位置"/>
        </mappers>
    </configuration>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    上面除了修改driver,url等,还有在< mappers>里面需要些映射文件的位置,映射文件可以有多个

    3.创建数据库表,创建POJO实体

    略(自己创建了一个student表,有自增id属性,name,age,score四个属性)

    4.创建映射文件

    在你的包下面创建dao包
    里面自己写管理学生的接口,和实现接口的类,实现接口的类中先不写内容
    下面创建映射文件,在自己的包下面创建一个mapper文件夹,在mapper文件夹下创建映射文件StudentMapper.xml,该文件主要用于配置sql语句和Java对象之间的映射,使sql语句查询出来的数据能够被封装成Java对象。一个项目中可以有多个映射文件,每个实体都可以有其对应的映射文件,映射文件通常使用POJO实体+Mapper命名,例如Student实体类的映射文件名就可以命名成StudentMapper.xml
    在下载好的mybatis中找到里面的说明文件,搜dtd,选择带有mapper的那个,直接粘贴到里面就行

    <?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="xxx">
        <insert id="insertStudent" parameterType="com.wwj.entity.Student">
            insert into student(name,age,score) values (#{name},#{age},#{score})
        </insert>
    </mapper>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    上面namespace里面随便写上什么,之后在控制台用log4j输出日志信息的时候可以选择
    然后在< mapper>下面写你需要的操作,插入就用insert,查找就用select等,其属性id="insertStudent"现在可以随便起,之后sqlSession执行插入命令的时候会用到,另一个属性parameterType="com.wwj.entity.Student"是参数类型,这个就是Student类型,但是要写全路径,不然项目运行时找不到

    5.写student实现类

    所有的mybatis应用都是以SqlSessionFactory对象为中心,而SqlSessionFactoryBuilder就是SqlSessionFactory的构造者。SqlSessionFactoryBuilder通过build()方法构建SqlSessionFactory对象。

    package com.wwj.dao;
    
    import com.wwj.entity.Student;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    import org.apache.ibatis.io.Resources;
    
    import java.io.IOException;
    import java.io.InputStream;
    
    public class StudentDaoImp implements IStudentDao {
        @Override
        public void insertStudent(Student student) {
            SqlSession sqlSession = null;
            //    1.创建SqlSessionFactoryBuilder对象
            SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
            try {
                //    2.读取mybatis-config.xml文件
                InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
    //            3.创建sqlsessionfactory对象,参数读取链接哪个数据库
                SqlSessionFactory factory = builder.build(in);
    //            4.创建sqlsession对象
                sqlSession = factory.openSession();
    //            5.执行插入命令,第一个参数是studentmapper.xml文件中写的哪一条执行语句的id
    //            第二个参数是要插入的数据
                sqlSession.insert("insertStudent",student);
    //            6.手动提交
                sqlSession.commit();
            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                if(sqlSession != null){
                    sqlSession.close();
                }
            }
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39

    这里写的比较繁琐但是好理解,之后可以简化代码,创建一个辅助类的文件夹用来创建sqlsession对象

    6.进行测试

    public static void main(String[] args) {
            IStudentDao studentDao = new StudentDaoImp();
            Student student = new Student("jj",15,96.5);
            studentDao.insertStudent(student);
     }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    完成!!!

  • 相关阅读:
    ERP系统是如何运作的?erp管理系统操作流程
    华为云低代码技术:让矿区管理“智变”,一览无遗
    Acwing.885 求组合数l
    会当“零”绝顶!天翼云零信任产品利刃出鞘
    VSCode远程连接Linux
    CTF-Crypto学习记录-第四天 “ “ --- SHA1安全散列算法,实现原理。
    react如何根据变量渲染组件
    图神经网络 | 混合神经网络模型GCTN地铁客流预测
    redhat环境ansible自动化部署
    CVPR'22 | 基于可形变关键点模型的图像驱动技术
  • 原文地址:https://blog.csdn.net/weixin_52166438/article/details/126657524