Mybatis框架简单使用

Posted flymey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis框架简单使用相关的知识,希望对你有一定的参考价值。

Mybatis框架简单使用

环境搭建

新建一个JavaWeb项目,在web\WEB-INF\创建lib文件,并且在其下添加Mybatis的核心包以及依赖包,以及mysql驱动包,junit4测试包等。

加入配置文件

  1. 在src路径下面,新建log4j.properties文件。
# 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
  1. 在src路径下,新建jdbc.properties文件。
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8
jdbc.username=root
jdbc.password=root
  1. 在src路径下,新建mybatis.cfg.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>

    <!--加载src下面的jdbc.properties-->
    <properties resource="jdbc.properties"></properties>

    <!--配置环境-->
    <environments default="flyme">
        <environment id="flyme">
            <!--type="JDBC" 使用JDBC的进行提交和回滚管理事务-->
            <transactionManager type="JDBC"></transactionManager>
            <!--配置数据库连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>

    <!--添加映射-->


</configuration>

创建数据库以及表

创建命名为mybatis数据库,并且新建user表

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(32) NOT NULL COMMENT ‘用户名称‘,
  `birthday` date DEFAULT NULL COMMENT ‘生日‘,
  `sex` char(1) DEFAULT NULL COMMENT ‘性别‘,
  `address` varchar(256) DEFAULT NULL COMMENT ‘地址‘,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8;

创建pojo包

在src路径下,创建com.flyme.mybatis.pojo包
pojo包作为mybatis进行sql映射使用,pojo包下的实体类一般与数据库中的表一一对应

1.在pojo包下,创建User.java文件,其中成员变量和user表中的属性一一对应,并且实现get/set方法

package com.flyme.mybatis.pojo;

import java.util.Date;

public class User {

    private int id;
    private String username;
    private String sex;
    private Date birthday;
    private String address;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getSex() {
        return sex;
    }

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

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }


}

sql映射文件

在com.flyme.mybatis.pojo包下,创建User.xml文件,命名必须与实体User一样

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="test">

</mapper>

加载映射文件

mybatis框架需要加载Mapper.xml映射文件。

打开mybatis.xml,将User.xml路径配置到mybatis.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>

    <!--加载src下面的jdbc.properties-->
    <properties resource="jdbc.properties"></properties>

    <!--配置环境-->
    <environments default="flyme">
        <environment id="flyme">
            <!--type="JDBC" 使用JDBC的进行提交和回滚管理事务-->
            <transactionManager type="JDBC"></transactionManager>
            <!--配置数据库连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>

    <!--添加映射-->
    <mappers>
        <!--映射文件方式1,添加资源路径,默认为src路径-->
        <mapper resource="com/flyme/mybatis/pojo/User.xml"/>
    </mappers>
</configuration>

简单数据库操作

实现用户id查询

在User.xml文件中,添加select语句,来进行sql语言的拼接,来以进行对数据库的查询。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="test">
    <select id="queryUserById" parameterType="int" resultType="com.flyme.mybatis.pojo.User">
        select * from user where id = #{id}
    </select>
</mapper>

在src路径下,创建com.flyme.mybatis.test包,并且创建MybatisTest.java测试类。

创建SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
加载mybatis.cfg.xml配置文件
InputStream inputStream = Resources.getResourceAsStream("mybatis.cfg.xml");
创建sqlSessionFactory对象
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
创建sqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
执行SqlSession对象执行查询

#queryUserById:在User.xml文件中,所设置id<select id = "queryUserById">,必须一致

Object user = sqlSession.selectOne("queryUserById", 1);
关闭sqlSession
sqlSession.close();

以上是关于Mybatis框架简单使用的主要内容,如果未能解决你的问题,请参考以下文章

搭建一个简单的mybatis框架

MYBATIS05_ifwherechoosewhentrimsetforEach标签sql片段

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段

MyBatis框架

myBatis简单入门

mybatis