首页 > 其他 > 详细

mybatis

时间:2020-05-31 10:22:26      阅读:51      评论:0      收藏:0      [点我收藏+]

 

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

  API:https://mybatis.org/mybatis-3/zh/getting-started.html

 

  持久层框架

  (Spring的JdbcTemplate、Apache的DBUtils是工具类,是对JDBC的简单封装)

  mybatis内部封装了jdbc,使用mybatis只需要关注sql语句本身,不需要关注加载驱动、创建连接等过程。使用ORM思想实现对结果集的封装。

 

  ORM:object relational mapping 对象关系映射

 

1. 使用

  maven项目

  1.1 添加jar

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.4</version>
    <scope>compile</scope>
</dependency>

 

  1.2 配置

(1)数据源配置

<?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">
        <!--mysql环境配置-->
        <environment id="mysql">
            <!--配置事务类型-->
            <transactionManager type="JDBC"></transactionManager>
            <!--配置数据源(连接池)-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/contacts?serverTimezone=UTC&amp;useUnicode=true&amp;characterEncoding=utf8"/>
                <property name="username" value="root"/>
                <property name="password" value="xxx"/>
            </dataSource>
        </environment>
    </environments>
    <!--指定映射配置文件(每个dao独立的配置文件)的位置-->
    <mappers>
        <mapper resource="com/xt/dao/UserDao.xml"></mapper>
    </mappers>
</configuration>

 

(2)dao接口的映射文件

  UserDao.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="com.xt.dao.UserDao">
    <!--配置查询所有-->
    <select id="findAll" resultType="com.xt.domain.User">
        select * from user
    </select>
</mapper>

  文件名与接口名相同;

  映射文件在resource目录下与dao接口同样的目录结构下

  namespace为接口位置

  id为方法名

  resultType为相对应的数据模型类

 

  1.3 简单例子如下

  数据模型为User:

public class User implements Serializable {
    //成员变量
    xxx
    //getter、setter方法
    xxx
}

  接口为UserDao:在接口映射配置文件里写了sql语句,以及标定了返回值类型,于是不用自己写dao的实现类了

public interface UserDao {

    /*查找所有user*/
    List<User> findAll();
}

 

  主方法:

//1.读取配置文件
InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
//2.创建SqlSessionFactory(通过其构建工厂对象)
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
//3.使用工厂创建SqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
//4.创建dao接口的代理对象
UserDao dao = sqlSession.getMapper(UserDao.class);
//5.通过代理对象调用方法
List<User> list = dao.findAll();

for(User user:list) {
    System.out.println(user.toString());
}

//6.关闭
sqlSession.close();
is.close();

 

 

2. 使用注解的方式

  删掉接口映射文件 UserDao.xml

  修改SqlMapConfig.xml文件:修改mapper

<!-- <mapper resource="com/xt/dao/UserDao.xml"></mapper>-->
<mapper class="com.xt.dao.UserDao"></mapper>

  在接口上添加注解:

  UserDao.java

public interface UserDao {

    /*查找所有user*/
    @Select("select * from user")
    List<User> findAll();
}

 

 

  

 

mybatis

原文:https://www.cnblogs.com/taoXiang/p/12990313.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!