myBatis连接MySQL初级应用_01

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.在总的配置文件中需要配置数据源,同样的数据源可以写死,也可以通过外置配置文件导入。
          写死方式:
              < configuration >
                 < 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/mybatis" />
                                 < property name = "username" value = "root" />
                                 < property name = "password" value = "jrh0617" />
                            </ dataSource >
                      </ environment >
                 </ environments >

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

      <!-- 加载属性文件 -->
      < properties resource = "classpath:db.properties" >
           <!--properties中还可以配置一些属性名和属性值  -->
           <!-- <property name="jdbc.driver" value=""/> -->
      </ properties >
      < settings >
           <!-- 设置默认日志记录log4j -->
           < setting name = "logImpl" value = "LOG4J" />
      </ settings >
      <!-- 和spring整合后 environments配置将废除-->
      < environments default = "development" >
           < environment id = "development" >
           <!-- 使用jdbc事务管理,事务控制由mybatis-->
               < transactionManager type = "JDBC" />
           <!-- 数据库连接池,由mybatis管理-->
               < 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 >

               配置文件 db.properties内容如下 

jdbc.driver= com.mysql.jdbc.Driver
jdbc.url= jdbc\:mysql\://localhost/mybatis
jdbc.username= root
jdbc.password= jrh0617

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

               
                < mappers >
                      <!-- 资源文件用/寻找路径 -->
                      <!-- <mapper resource="XML文件的包名+文件名"/> -->
                      <!-- <mapper resource="jrh/mybatis/test2/UserMapping.xml"/> -->
                      <!-- 通过注解方式,所以只要引入带注解的实体类路径就好 -->    
                      < mapper class = "jrh.mybatis.test3.UserMapper" ></ mapper >
                 </ mappers >
       d.在**Mapping.xml子配置文件中配置相对用dao访问层抽象方法所对应的方法SQL

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

               子配置文件:
                                   
           < mapper namespace = "对应抽象类的类路径" >
            <!-- 根据ID查询users表中对应的记录返回一个User对象 -->
                 < select id = "selectUser唯一标识" parameterType = "int传入参数的类型" resultType = "jrh.mybatis.test1.User即SQL返回值对应的类型" >
                     select * from users where id = #{id}
                 </ select >
            </ mapper >

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

    主配置文件头部:                
<? 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 >

                         自配置文件头部:
<? xml version = "1.0" encoding = "UTF-8" ?>
<! DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

 4.关于程序读取配置文件:
       通过 Resources等获取文件的位置--》再通过 SqlSessionFactoryBuilder创建 SqlSessionFactory--》创建能执行SQL的SqlSession






















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值