• mybatis基础


    我认为mybatis框架的作用是对jdbc代码进行了封装,让代码更简化,减少代码的冗余度。

    一、首先建立数据库表,创建项目引入jar包

    数据库表格如下,偷了个懒没有写sql脚本,而是直接用navicat软件建表,id要设置为主键并且设置自动递增

    我这里导入了目前最新的mybatis的jar包,mysql的jar包,JUnit4(这个是用来之后测试方法的)

    二、创建POJO(普通的、传统的JAVA对象)类

    POJO类和JavaBean没有任何区别,也就是属性私有化,无参数构造器,有参数构造器,setter和getter方法。

    package cn.lzx.domin;
    
    public class User {
        private Integer id;
        private String name;
        private String sex;
        private Integer age;
        
        public User(Integer id, String name, String sex, Integer age) {
            super();
            this.id = id;
            this.name = name;
            this.sex = sex;
            this.age = age;
        }
        
        public User() {
            super();
        }
    
        public Integer getId() {
            return id;
        }
    
        public void setId(Integer id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getSex() {
            return sex;
        }
    
        public void setSex(String sex) {
            this.sex = sex;
        }
    
        public Integer getAge() {
            return age;
        }
    
        public void setAge(Integer age) {
            this.age = age;
        }
        
        
        
    }

    、创建xml配置文件

    mybatis是通过xml配置文件来完成持久化类(第二步创建的类)和数据库表之间的映射关系的

    首先先创建一个xml文件

    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="cn.lzx.mapper.UserMapper">
    <!--parameterType表示传入的参数,使用useGeneratedKeys="true"表示使用数据库的自动增长策略,#{name}表示去参数对象User中name的属性值 -->
      <insert id="save" parameterType="cn.lzx.domin.User" useGeneratedKeys="true">
      insert into user(name,sex,age) values(#{name},#{sex},#{age})
      </insert>
    </mapper>

    四、创建mybatis配置信息

    这里是配置数据库连接信息,引入第三步的持久化类的映射文件等等,注意配置信息和第三步映射文件的前两行是不一样的,不要轻易复制粘贴。

    <?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="mysql">
    <!--用于配置其中的一个环境(原因不太懂,先用着) -->
    <environment id="mysql">
    <!--设置事务管理类型,使用了JDBC的提交和回滚机制 -->
    <transactionManager type="JDBC"/>
    <!--dataSource指数据源,POOLED是JDBC连接对象的数据源连接池的实现 -->
    <dataSource type="POOLED">
    <property name="driver" value="com.mysql.jdbc.Driver"/>
    <!--&amp;符号将转义为& -->
    <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis?useUnicode=true&amp;characterEncoding=utf8"/>
    <property name="username" value="root"/>
    <property name="password" value="123456"/>
    </dataSource>
    </environment>
    </environments>
    <!--引入持久化类的映射文件-->
    <mappers>
    <mapper resource="cn/lzx/mapper/UserMapper.xml"/>
    </mappers>
    </configuration>

    五、加载mybatis配置信息,测试类完成对数据库的操作

    创建出sqlSessionFactory,生成session,调用session的增删改查方法

    package cn.lzx.test;
    
    import java.io.InputStream;
    
    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 cn.lzx.domin.User;
    
    public class MybatisTest {
        
        @Test
        public void addUser() throws Exception{
            InputStream inputStream=Resources.getResourceAsStream("mybatis-config.xml");
            SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
            SqlSession session=sqlSessionFactory.openSession();
            User user=new User("小明","男",30);
            session.insert("cn.lzx.mapper.UserMapper.save",user);
            //提交事务
            session.commit();
            //关闭session
            session.close();
        }
    }

    最后是项目结构图

  • 相关阅读:
    距离计算
    推荐系统
    jvm内存配置参数
    Vim 文件配置
    [转]linux shell 多线程实现
    synchronized 和 ReentrantLock 区别
    sptring boot 修改默认Banner
    Java容器类总结
    JAVA基本类型和包装类
    Linux 虚拟内存机制
  • 原文地址:https://www.cnblogs.com/lzxin/p/9589067.html
Copyright © 2020-2023  润新知