• 记第一次学习Mybatis


    第一次学习Mybatis是在网上找了一个老师的视频教程看的。

    首先,在Mybatis下载相关包,在入门里面既可以选择使用Maven依赖,也可以直接下载jar包。下好mybatis-3.4.6-zip包后,解压缩会看到里面有如下文件。

    图中选中的即是在学习mybatis初期需要使用到的jar包,将此jar包引入到建立的java工程中。

    上图中的pdf文件是一份官方的说明文档,里面有所需要的配置信息的部分。

    在此,我们还需要mysql的驱动程序,同样的去官网下载mysql-connector-java-8.0.13,同样的将下载压缩后的jar包引入工程中

    然后开始建立Demo,在工程中创建一个Person的类如下

    package com.liusong.entity;
    
    public class Person {
        private int id;
        private String name;
        private int age;
    
        public Person() {
            super();
            this.id = id;
            this.name = name;
            this.age = age;
        }
    
        public Person(int id, String name, int age) {
            super();
            this.id = id;
            this.name = name;
            this.age = age;
        }
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        @Override
        public String toString() {
            // TODO Auto-generated method stub
            return "编号:" + id + "," + "姓名:" + name + "," + "年龄:" + age;
        }
    
    }

     同样在数据库中创建一个对应Person的表

    接下来在工程中配置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="com.liusong.entity.PersonMappers">
    
        <select id="queryPersonById" resultType="com.liusong.entity.Person" parameterType= "int"> 
        select * from person where id= #{id} 
         </select>
            
    </mapper>

    配置文件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>
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC" />
                <dataSource type="POOLED">
                <!-- 配置数据库信息 -->
                    <property name="driver" value="com.mysql.cj.jdbc.Driver" />
                    <property name="url" value="jdbc:mysql://127.0.0.1:3306/shop?serverTimezone=UTC" />
                    <property name="username" value="root" />
                    <property name="password" value="root" />
                </dataSource>
            </environment>
        </environments>
        <mappers>
        <!-- 加载映射文件 -->
            <mapper resource="com/liusong/entity/PersonMappers.xml" />
        </mappers>
    </configuration>

    主程序TestMybatis

    package com.liusong.entity;
    
    import java.io.IOException;
    import java.io.Reader;
    
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    
    public class TestMybatis {
        public static void main(String[] args) throws IOException {
            Reader reader = Resources.getResourceAsReader("config.xml");
            SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
            SqlSession session = sessionFactory.openSession();
            String statement = "com.liusong.entity.PersonMappers.queryPersonById";
            Person person = session.selectOne(statement, 1);
            System.out.println(person);
            session.close();
        }
    }

    以上准备工作都完成后,开始运行 结果如下

    在此期间曾遇到可很多错误,

    (1)是显示找不到config.xml文件,上网搜索了答案后,将config.xml文件移至src下面,问题解决

    (2)数据库时间与驱动程序时间冲突,上网搜查后得以解决,参考https://blog.csdn.net/Hello_World_QWP/article/details/80421533

    (3)文件加载路径问题,类的加载中间用点隔开,xml文件的加载中间用/隔开。

  • 相关阅读:
    一个丰富的通知工具类 --第三方开源--NotifyUtil
    RecycleView出现折叠效果--第三方开源--SectionedExpandableGridRecyclerView
    Socket TCP连接相互通信
    InputStream与String,Byte之间互转
    socket调试工具
    可直接导入studio的 android-Ultra-Pull-To-Refresh-master
    纯手写验证码MVC中
    Upload图片-单张
    C#、SQL中的事务
    MVC、控件、一般处理程序中的session and cookie
  • 原文地址:https://www.cnblogs.com/Lovis/p/10175082.html
Copyright © 2020-2023  润新知