数据库持久化框架——MyBatis(1)

时间:2020-02-16 13:04:07   收藏:0   阅读:86

叨叨时刻:内容根据阿里云大学的MyBatis视频教程整理而成,有需要最好跟着视频教程走一遍

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

其他说明:

(1)持久化:数据从瞬时状态变为持久状态,可以简单理解成和服务器端session一样的作用

(2)其他参考网站:w3cshool的Mybatis教程

搭建框架步骤:

1.下载MyBatis的类包:mybatis-x.x.x.jar (内含官方文档)

2.新建java项目并将核心包和依赖包(bin内的jar)、数据库驱动包导入

3.根据官方文档,新建配置xml文件,以官方文档(2.1.2 Building SqlSessionFactory from 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>
    <!---->
    <typeAliases>

    </typeAliases>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/test"/>
                <property name="username" value="root"/>
                <property name="password" value="myPassword"/>
            </dataSource>
        </environment>
    </environments>
//这里的mapper路径包名要以斜杆分,且这里的内容要以后面编写的mapper文件相对应
<mappers> 
    <mapper resource="cn/aaa/entity/User.mapper.xml"/> 
</mappers> 
</configuration>

4.建立对应MyBatis工具类,参考官方文档内容(2.1.2 Building SqlSessionFactory from XML),例如:

public class MyBatisUtil {
  public static SqlSessionFactory getSqlSessionFactory() throws IOException {
    //注意:这里的recource内容请更改成自己的mybatis配置的xml名字,如果xml文件名字是aaaa.xml,以下内容也写成aaaa.xml
    String resource = "mybatis.config.xml";
    InputStream inputStream = Resources.getResourceAsStream(resource);
    SqlSessionFactory sqlSessionFactory =new SqlSessionFactoryBuilder().build(inputStream);
    //记得返回对象
    return sqlSessionFactory; 
  }
  public static SqlSession getSession() throws IOException {
    SqlSessionFactory sqlSessionFactory=getSqlSessionFactory();
    return sqlSessionFactory.openSession();
  }
}

5.建立实体类User

6.建立实体类sql语句的映射xml文件(最好与实体类处于同一目录下,显得更加清晰),参考官方文档(2.1.5 Exploring Mapped SQL Statements),例如:

<mapper namespace="cn.aaa.entity.UserMapper">
  <!--此处的resultType最好写成包名+类名的形式,这样更准确>
  <select id="selectUser" resultType="cn.aaa.entity.User">
  <!-- sql映射语句 -->
  select * from users where id = #{id}
  </select>
</mapper>

7.新建测试类,主方法里获取MyBatis的session赋值给User,调用该user的方法测试即可

public class test {
    public static void main(String[] args) throws IOException {
        SqlSession sqlSession= MyBatis.getSqlSession();
        //selectOne的第一个参数:mapper文件里namespace+select语句的id
        //第二个参数就是语句内的参数值
        User user=sqlSession.selectOne("com.lxy.entity.UserMapper.selectUser",1);
        System.out.println(user.getId()+","+user.getName()+","+user.getPwd());
    }
}

原文:https://www.cnblogs.com/inkqx/p/12316394.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!