前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mybatis系列教程(一)——mybatis配置

mybatis系列教程(一)——mybatis配置

作者头像
逝兮诚
发布2019-10-30 13:22:42
3930
发布2019-10-30 13:22:42
举报
文章被收录于专栏:代码人生代码人生代码人生

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

本文链接:https://blog.csdn.net/luo4105/article/details/72736534

项目地址

项目地址:https://code.csdn.net/luo4105/study_mybatis/

Mybatis单独配置

为了更好了解mybatis的配置,先完成一个不带spring整合的mybatis配置例子。

使用mybatis的配置如下

1.配置数据源,数据库、账号密码等

2.配置mapper配置文件

3.通过sqlsession获得对应dao接口,操作dao接口。代码

SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader("config/mybatis-config.xml"));
sqlSession = sqlSessionFactory.openSession();
usersDao = sqlSession.getMapper(UsersDao.class);

实现

Maven依赖

<dependencies>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.4.2</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>6.0.3</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
</dependencies>

项目结构

Sql建表语句

CREATE TABLE`users`(
 `id` int(11) NOTNULLAUTO_INCREMENT,
 `name`varchar(200) DEFAULT NULL,
 `age` int(11) DEFAULTNULL,
 PRIMARYKEY(`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
INSERT INTO study_mybatis.users(id,name,age) VALUES
(1,'小王',10)
,(2,'荀丽',29)
,(3,'明明',12)
,(4,'天天',13);

配置Mybatis

Mybatis配置文件mybatis-config.xml,这里配置的数据源信息和mapper。我用的是mysql-connection-java6.x,6.x版本的数据库连接驱动改为com.mysql.cj.jdbc.Driver,之前是com.mysql.jdbc.Driver。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPEconfigurationPUBLIC"-//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://localhost:3306/study_mybatis?serverTimezone=GMT&characterEncoding=utf-8"/>
                    <property name="username" value="root" />
                    <property name="password" value="123456" />
                </dataSource>
            </environment>
    </environments>

    <mappers>
        <mapper resource="com/lc/mapper/UsersMapper.xml" />
    </mappers>
</configuration>

Mapper、对应接口和model

UserMapper.xml

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lc.dao.UsersDao">

    <select id="getList" resultType="com.lc.model.Users">
        select id, name, age from users
    </select>

    <insert id="add" parameterType="com.lc.model.Users">
        INSERT INTO users(name, age)VALUES (#{name}, #{age})
    </insert>
</mapper>

接口

importcom.lc.model.Users;

import java.util.List;

public interface UsersDao {
    public List<Users> getList();
    public int add(Users users);
}

实体类:User

public classUser {
   
    private Integer id;
    private String name;
    private Integer age;
    /**
       Getter、setter、toString
    **/
}

测试类

UserDaoTest

importcom.lc.model.Users;
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.Before;
import org.junit.Test;

import java.io.IOException;
import java.util.List;

public class UsersDaoTest {

    private UsersDao usersDao;
    private SqlSession sqlSession;

    @Before
    public void before() throws IOException {
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader("config/mybatis-config.xml"));
        sqlSession = sqlSessionFactory.openSession();
        usersDao = sqlSession.getMapper(UsersDao.class);
    }

    @Test
    public void getList() throws Exception {
        List<Users> usersList =usersDao.getList();
        for (Users users : usersList) {
            System.out.println(users.toString());
        }
    }

    @Test
    public void add() throws Exception {
        Users user = new Users();
        user.setAge(18);
        user.setName("同光尘");
        usersDao.add(user);
        sqlSession.commit();
    }
}

总结

在mybatis的配置文件中,主要配置了两个

dataSource:数据源

mappers:mapper映射文件

在测试类中,实现流程如下

获得sqlsessionFactory

获得SqlSessionFactory对象

获得SqlSession对象

获得UserMapper对象

操作UserMapper对象

进一步猜想

如果我们把数据源和mapper的映射配置在spring的配置文件,

把SqlSessionFactory对象、SqlSession对象、UserMapper对象都在Spring中注册,

是不是就完成了spring整合mybatis,就不需要mybatis的配置文件了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-05-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目地址
  • Mybatis单独配置
  • 实现
    • Maven依赖
      • 项目结构
        • Sql建表语句
          • 配置Mybatis
            • Mapper、对应接口和model
              • 测试类
              • 总结
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档