您的位置:首页 > 数据库 > MySQL

myBatis连接MySQL初级应用_01

2017-03-23 09:32 232 查看
1. myBatis的介绍:
        MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除
    了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索。MyBatis可以使用简单的
    XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的
    Java对象)映射成数据库中的记录。

    jdbc  -->  connection    statement      preparedStatement    ResultSet  --封装结果集/sql
   dbuti  -->  connection   beanHandel   BeanListHandler    能自动封装结果集  sql语句还在代码中,只能做单表的数据封装
(mybatis)-->不需要JDBC里面的接口,SQL统一写在配置文件,还能自动封装数据,支持多个表,支持缓存
                    需要SQL语句
hibernate --》不需要SQL语句,太重了

2. mybatis快速入门
    a. 添加jar包
        mybatis
            asm-3.3.1.jar
            cglib-2.2.2.jar
            commons-logging-1.1.1.jar
            log4j-1.2.16.jar
            mybatis-3.1.1.jar
            slf4j-api-1.6.2.jar
            slf4j-log4j12-1.6.2.jar
           引用myeclipse自带的Junilt包
        mysql驱动
            mysql-connector-java-5.1.7-bin.jar

    b.在总的配置文件中需要配置数据源,同样的数据源可以写死,也可以通过外置配置文件导入。
          写死方式:
[align=left]              <configuration>[/align]
[align=left]                <environmentsdefault="development">[/align]
[align=left]                     <environmentid="development">[/align]
[align=left]                           <transactionManagertype="JDBC"/>[/align]
[align=left]                           <dataSourcetype="POOLED">[/align]
[align=left]                                <propertyname="driver"value="com.mysql.jdbc.Driver"/>[/align]
[align=left]                                <propertyname="url"value="jdbc:mysql://localhost:3306/mybatis"/>[/align]
                                <propertyname="username"value="root"/>
[align=left]                                <propertyname="password"value="jrh0617"/>[/align]
[align=left]                           </dataSource>[/align]
[align=left]                     </environment>[/align]
[align=left]                </environments>[/align]

           通过属性文件配置数据源的方式:

[align=left]     <!-- 加载属性文件 -->[/align]
[align=left]     <propertiesresource="classpath:db.properties">[/align]
          <!--properties中还可以配置一些属性名和属性值 
-->
          <!-- <property name="jdbc.driver"
value=""/> -->
[align=left]     </properties>[/align]
[align=left]     <settings>[/align]
          <!-- 设置默认日志记录log4j
-->
[align=left]          <settingname="logImpl"value="LOG4J"/>[/align]
[align=left]     </settings>[/align]
[align=left]     <!-- 和spring整合后 environments配置将废除-->[/align]
[align=left]     <environmentsdefault="development">[/align]
[align=left]          <environmentid="development">[/align]
[align=left]          <!-- 使用jdbc事务管理,事务控制由mybatis-->[/align]
[align=left]              <transactionManagertype="JDBC"/>[/align]
[align=left]          <!-- 数据库连接池,由mybatis管理-->[/align]
[align=left]              <dataSourcetype="POOLED">[/align]
[align=left]                   <propertyname="driver"value="${jdbc.driver}"/>[/align]
[align=left]                   <propertyname="url"value="${jdbc.url}"/>[/align]
[align=left]                   <propertyname="username"value="${jdbc.username}"/>[/align]
                   <propertyname="password"value="${jdbc.password}"/>
[align=left]              </dataSource>[/align]
[align=left]          </environment>[/align]

     </environments>

               配置文件db.properties内容如下 :

jdbc.driver=com.mysql.jdbc.Driver

[align=left]jdbc.url=jdbc\:mysql\://localhost/mybatis[/align]
[align=left]jdbc.username=root[/align]

jdbc.password=jrh0617

      c.通过mappers标签引入mapper标签:

               
[align=left]                <mappers>[/align]
[align=left]                     <!-- 资源文件用/寻找路径 -->[/align]
                     <!-- <mapper resource="XML文件的包名+文件名"/>
-->

                     <!-- <mapper resource="jrh/mybatis/test2/UserMapping.xml"/>
-->
                     <!-- 通过注解方式,所以只要引入带注解的实体类路径就好 --> 
 

[align=left]                     <mapperclass="jrh.mybatis.test3.UserMapper"></mapper>[/align]
[align=left]                </mappers>[/align]

       d.在**Mapping.xml子配置文件中配置相对用dao访问层抽象方法所对应的方法SQL

               方法实体:
[align=left]               String resource ="主配置文件.xml";[/align]
[align=left]                //加载mybatis的配置文件(它也加载关联的映射文件)[/align]
[align=left]                Reader reader = Resources.getResourceAsReader(resource);[/align]
[align=left]                //构建sqlSession的工厂[/align]
[align=left]                SqlSessionFactory sessionFactory =newSqlSessionFactoryBuilder().build(reader);[/align]
[align=left]                //创建能执行映射文件中sql的sqlSession[/align]
[align=left]                SqlSession session = sessionFactory.openSession();[/align]
[align=left]                //映射sql的标识字符串[/align]
[align=left]                String statement ="jrh.mybatis.test1.UserMapper"+".selectUser";//找到该命名空间下,ID为selectUser的标签。[/align]
[align=left]                //执行查询返回一个唯一user对象的sql[/align]
[align=left]                User user = (User) session.selectOne(statement, 1);[/align]

               子配置文件:
                                   

           <mappernamespace="对应抽象类的类路径">

           <!-- 根据ID查询users表中对应的记录返回一个User对象
-->
[align=left]                <selectid="selectUser唯一标识"parameterType="int传入参数的类型"resultType="jrh.mybatis.test1.User即SQL返回值对应的类型">[/align]
[align=left]                     select * from users where id = #{id}[/align]
[align=left]                </select>[/align]

           </mapper>

特别注意::
 1. 在主配置文件的头部的文档类型必须是configuration,包括.dtd文件也是config类型的
 2.在子配置文件中的头部文档类型必须输mapper型的,同样包含dtd文件
 3.在对此配置文件的类型,返回值类型,一定要搞清楚是最终什么类型

    主配置文件头部:                
[align=left]<?xmlversion="1.0"encoding="UTF-8"?>[/align]
[align=left]<!DOCTYPEconfiguration[/align]
PUBLIC"-//mybatis.org//DTD
Config 3.0//EN"
[align=left]"http://mybatis.org/dtd/mybatis-3-config.dtd">[/align]

<configuration>

                         自配置文件头部:

<?xmlversion="1.0"encoding="UTF-8"?>

[align=left]<!DOCTYPEmapper[/align]
PUBLIC"-//mybatis.org//DTD
Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

 4.关于程序读取配置文件:
       通过Resources等获取文件的位置--》再通过SqlSessionFactoryBuilder创建SqlSessionFactory--》创建能执行SQL的SqlSession
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息