mybaits 字段设置null_第二十二天Mybaits框架入门

  • Post author:
  • Post category:其他


b740f9eaf8b84ef55c66dc31f7552c40.png

Mybaits入门

一、什么是Mybaits

​  MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)。

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

—————百度百科

二、部署Mybaits框架环境

1.下载Mybaits所需的jar包



mybatis官网

: http://www.mybatis.org/mybatis-3/


jar包下载地址

: https://github.com/mybatis/mybatis-3/releases

2.新建工程,导入相关jar包

1369de4ac505fc4cc9be0eb648859ab1.png

以下图中的包是mybaitsjar包中的,需要全部导入

ca49a499d49a2ca00a5c192c9e5cea1c.png

90c384ae986d50f3d0a19f5dcff3cbe9.png

3.另外还需要导入数据库驱动包

如果是MySQL数据库,则需导入MySQL数据库驱动包。MySQL的驱动包需要去官网下载

9754ec97c955d1462f3a5fcb94b1f98c.png

如果是Oracle数据库,需要导入Oracle数据库驱动包。在Oracle数据库安装文件可以找到。

3f2892ace53e86ce829b325cc73b4c66.png

4.我们还需要在src目录下配置一个日志文件,用于打印日志。

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

5.配置Mybaits核心配置文件SqlMapConfig.xml

​ 在src目录下创建一个SqlMapConfig.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>
    <properties resource="db.properties"></properties>
    <!--配置开发环境-->
    <environments default="development">
        <environment id="development">
            <!--事物管理器-->
            <transactionManager type="JDBC"></transactionManager>
            <!--数据库连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="${oracle.driverClass}"></property>
                <property name="url" value="${oracle.url}"></property>
                <property name="username" value="${oracle.user}"></property>
                <property name="password" value="${oracle.password}"></property>
            </dataSource>
        </environment>
    </environments>
</configuration>

6.配置sql映射文件,文件名自定义,这个默认Stu.xml,放在src目录下内容如下

<?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.zk.mapper.UserMapper">

</mapper>

7.将该sql映射文件引入到SqlMapConfig.xml文件中

<!--扫描mapper文件-->
<mappers>    
    <mapper resource="Stu.xml"></mapper>
</mappers>

放在标签后面。

三、需求开发

​ 1.根据id查询学生的信息

​ 1)在数据库中创建学生表

​ 2) 定义pojo类

​ 如下:

package com.zk.pojo;

/**
 * @author zk
 * @title: Stu
 * @projectName mybaits-01
 * @description: TODO
 * @date 2019/8/8  14:52
 */
public class Stu {
    private int id;
    private String name;
    private int age;
    private String sex;

    public Stu() {
    }

    public Stu(int id, String name, int age, String sex) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.sex = sex;
    }

    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;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    @Override
    public String toString() {
        return "Stu{" +
                "id=" + id +
                ", name='" + name + ''' +
                ", age=" + age +
                ", sex='" + sex + ''' +
                '}';
    }
}

3)在src目录下创建一个mapper的包,存放接口,名字自定义,这里以StuMapper为例

public interface StuMapper {
    /**
      * @description: 查询所有的数据
      * @param ${tags}
      * @return ${return_type}
      * @throws
      * @author ${USER}
      * @date 2019/8/8 14:55
      */
    List<Stu> queryFindAll();
 }

4) 在Stu.xml文件中,配置sql语句

​ 注意:当传入参数类型时原始型时,占位符中的括号中的值可以随意设置,但最好可读性较强(占位符能自动进行java类型和jdbc类型转换,可以有效防止sql注入。)

namespace写上mapper包中接口的路径+名字,select语句中的id为StuMapper接口中的方法同名。

<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zk.mapper.StuMapper">
    <!--
        select标签用于编写查询语句
            id:sql语句唯一标识,类比方法名
            resultType:用于设定返回结果的类型
    -->
    <select id="queryFindAll" resultMap="ss">
        SELECT * FROM STU
    </select>
 </mapper>

5)测试 ,代码不懂,不要紧,照着敲就可以了。

public class MybaitsDemo01Test {
    private SqlSessionFactory sqlSessionFactory = null;
    @Before
    public void fun() throws IOException {
        SqlSessionFactoryBuilder sfb = new SqlSessionFactoryBuilder();
       //读取Mybaits核心配置文件
        sqlSessionFactory = sfb.build(Resources.getResourceAsStream("SqlMapConfig.xml"));
    }
     //获取session
        SqlSession session = sqlSessionFactory.openSession();
        List<Stu> list = session.selectList("com.zk.mapper.StuMapper.queryFindAll");
        for (Stu stu :
                list) {
            System.out.println(stu);
        }
        session.close();
}

​ 查询结果:

Stu{id=1, name='李四', age=12, sex='男        '}
Stu{id=2, name='吉尔达兹', age=15, sex='女        '}
Stu{id=3, name='李四02', age=15, sex='男        '}
Stu{id=4, name='李四03', age=15, sex='女        '}
Stu{id=5, name='李四04', age=15, sex='男        '}
Stu{id=6, name='李四05', age=15, sex='人妖      '}

一个简单的入门就完成了。



版权声明:本文为weixin_39719727原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。