• 数据库持久化框架——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());
        }
    }
    
  • 相关阅读:
    微信开发之注册公众号(二)
    我开通个人博客了~~~~
    微信开发之启用开发者模式(三)
    float浮动属性
    数组的定义与特点
    块级元素和行内元素
    对于if判断和switch选择的入门理解
    Form表单
    不知名的作业
    自我介绍
  • 原文地址:https://www.cnblogs.com/inkqx/p/12316394.html
Copyright © 2020-2023  润新知