zoukankan      html  css  js  c++  java
  • 数据库持久化框架——MyBatis(1)

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

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

    其他说明:

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

    (2)官网中文文档:mybatis中文文档

    (3)其他参考网站: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());
        }
    }
    
  • 相关阅读:
    [Luogu P3626] [APIO2009] 会议中心
    杭电 1869 六度分离 (求每两个节点间的距离)
    杭电 1874 畅通工程续 (求某节点到某节点的最短路径)
    最短路径模板
    杭电 2544 最短路径
    POJ 1287 Networking (最小生成树模板题)
    NYOJ 1875 畅通工程再续 (无节点间距离求最小生成树)
    POJ 2485 Highways (求最小生成树中最大的边)
    杭电 1233 还是畅通工程 (最小生成树)
    杭电 1863 畅通工程 (最小生成树)
  • 原文地址:https://www.cnblogs.com/inkqx/p/12316394.html
Copyright © 2011-2022 走看看