mybaties总结

news/2024/5/18 21:49:22 标签: 数据库, mysql, java, mybatis, jdbc

1.需要导入四个坐标
分别是mybatits、junit、log4j、mysql-connection-java

2.连接数据库信息、配置mapper的位置

3.映射文件namespace对应的是接口全名、id是接口里面的方法名、resultType是类的全名

4.创建测试类的时候
(1)SqlSessionFactoryBuilder通过初始方法从xml文件获取到sqlSessionFactory
(2)sqlSessionFactory通过openSession()方法来获取到sqlSession对象
(3)通过sqlSession的getMapper方法实现了userDao接口中userDao,通过userDao对象回调接口的findAll()方法

5.连接数据库的方式
(1)第一种方式通过外部指定的方式,将数据库连接相关信息配置在典型的 Java 属性配置文件中

外部文件:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/book
username=root
password=1234

配置文件的内容:

   <environments default="mysql">
          <environment id="mysql">
              <transactionManager type="JDBC" />
              <dataSource type="POOLED">
                  <property name="driver" value="${jdbc.driver}" />
                  <property name="url" value="${jdbc.url}" />
                  <property name="username" value="${jdbc.username}" />
                  <property name="password" value="${jdbc.password}" />
              </dataSource>
          </environment>
      </environments>
  上面加了一个resource,所以在有多数的数据库连接方式的时候会优先访问外部的properties文件

(2)第二种方式:直接配置为xm的方式: 可以使用直接配置为 xml的方式 ,并使用这些属性对配置项实现动态配置

(3)第三种方式:直接引用

 <environments default="mysql">
          <environment id="mysql">
              <transactionManager type="JDBC"/>
              <dataSource type="POOLED">
                  <property name="driver" value="com.mysql.jdbc.Driver"/>
                  <property name="url" value="jdbc:mysql://localhost:3306/user"/>
                  <property name="username" value="root"/>
                  <property name="password" value=""/>
              </dataSource>
          </environment>
      </environments>

6.开启自动驼峰命名规则映射
(1)用下面设置在配置文件里面进行写入

  <settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>

(2)在映射文件里面写,需要注意此刻需要开启第七项中的任意一个包,指定包名,或者是指定非限制性类

<mapper namespace="com.jbgaa.mapper.UserDao">
             <resultMap id="resultMap" type="user">
                 <id property="userId" column="user_id"></id>
                 <result property="userName" column="user_name"></result>
                 <result property="passWord" column="user_password"></result>
             </resultMap>
     <select id="findAll" resultMap="resultMap">
         select * from user1
     </select>
 </mapper>

7.1)非限定类,不区分大小写、2)给实体类取别名

  <typeAliases>
         默认名称:指定包下javabean的非限定类,不区分大小写,意思就是这个包里的类不需要在写前面包的路径 
  <package name="com.jbgaa.entity"/>-->
    加一个别名,上面方式是为给实体类取别名,方便在 mapper 配置文件中使用,下面是为一个类指定别名
          <typeAlias alias="user" type="com.jbgaa.entity.User"/>
     </typeAliases>

8.mappers元素获取资源的四种方式

  <mappers>1)第一种方式mapper 映射文件加入到系统核心配置文件中
<mapper resource="com/bbbaa421/Dao/BookDao.xml"/>2) 第二种方式:<mapper class= "接口路径" >
<mapper class="com.bbbaa421.Dao.BookDao"></mapper>3) 第三种方法使用使用 URL 获取资源-->
 <mapper url="file:///E:\QMKS\Test_lx\src\main\resources\com\jbgaa\mapper\UserDao.xml"/>4)第四种方法使用 <package> 获取资源-->
<package name="com.bbbaa421.Dao"></package>
    </mappers>

9.resultType与resultMap只能使用一个

10.测试类的关键所在
I

nputStream inputStream = Resources.getResourceAsStream("mybatis_config.xml");
sqlSessionFactory =new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession=sqlSessionFactory.openSession();
UserDao userDao=sqlSession.getMapper(UserDao.class);

http://www.niftyadmin.cn/n/1585076.html

相关文章

在域中配置多元密码策略

任务要求 WorldSkills2017.china域里的所有用户密码都要求启用密码复杂性&#xff0c;除了sales组。sales组密码长度要求最少3位。 任务分析 世赛的难度还是比较大的&#xff0c;每一道题目虽然只有短短几句话&#xff0c;但却暗藏着一个巨大的坑&#xff0c;这道题目就是典型。…

五、配置courier-authlib-EXTMAIL

1、安装Courier-Authlib 安装以下软件包: shell # yum install courier-authlib # yum install courier-authlib-mysql 编辑/etc/authlib/authmysqlrc文件: shell # vi /etc/authlib/authmysqlrc 并将其内容清空&#xff0c;然后增加如下内容: MYSQL_SERVER localhost MYSQL_US…

ubuntu中idea的下载与配置

下载 下面任选其一&#xff0c;我推荐第一个 https://download.jetbrains.8686c.com/idea/ideaIU-2019.2.tar.gz https://www.jetbrains.com/idea/download/#sectionlinux 下载好之后查看自己下载的东西 解压 tar -zxvf ideaIU-2019.2.2.tar.gz -C /usr/local/注&#xff1a;如…

spring的基础总结

1.pom的文件需要5个 &#xff08;1&#xff09;spring-core &#xff08;2&#xff09;spring-context &#xff08;3&#xff09;spring-beans &#xff08;4&#xff09;spring-expression &#xff08;5&#xff09;commons-logging 2.定义有参数的构造方法时候&#xff0c…

Spring的三种注入方式:构造方法注入,set方法注入,注解注入

本文演示三种值注入方式和三层模式下的注解注入获取对象 首先是搭建基本的Spring运行环境导入四个基本的核心jar包和两个日志包 在src根目录下新建bean.xml的配置文件&#xff0c;同时引入dtd约束 一、构造函数注入 在bean.xml中配置 在测试类中测试是否成功获得对象实例&…

欣赏ActionScript 3 的元件架构

欣赏ActionScript 3 的元件架构。  ActionScript 3 中所有可以被看到的视觉元件都统一于DisplayObject&#xff0c;即其子类的实例。DisplayObject是一个抽象类&#xff0c;不能生成实例。从系统架构设计上来说&#xff0c;这样的超类设计是常识。DisplayObject&#xff0c;我…

Mybatis与spring获取对象不同点

从XML中构建SqlSessionFactory 每个基于Mybatis的应用都是以一个SqlSessionFactory的实例为核心的。SqlSessionFactory的实例如何通过SqlSessionFactoryBuilder获得&#xff0c;而SqlSessionfactoryBuilder则可以从XML配置文件或一个预先配置的Configuration实例来构建出SqlSe…