Day61 Mybatis框架入门

开发前的准备

开发工具的更换:eclipseEE+MySQL+tomcat7.0+jre1.7
开发工具由Myeclipse换成eclipse.
Myeclipse和eclipse开发Web项目的区别:
编码准备:在eclipse的dropins文件夹下集成io.emmet.eclipse_1.0.0.201304090013.jar 实现前端代码
提示功能,如果需要SVN集成,需要在此文件夹下放入SVN,site1.8下的features文件和plugins文件
2、编写时候默认是web3.0
区别:
名称: 创建Dynamic web Project
1、需要在创建项目时指定tomcat和Jre.执行时右键项目 run as.
2、    eclipse 由于是Web3.0,所以没有静态web.xml文件,每个servlet的映射要在各自的文件中类前一行写
@WebServlet("/别名")
3、不自动生成带有JSTL标签库,需要将myeclipse的jar包在此导入。
4、WebContent就是Myeclipse的WebRoot,src在Java Resources文件夹下。
5、集成MySQL数据库jar包。
注意:
如果在创建项目的时候忘了指定tomcat服务器,那么就会提示没有导入响应的jar包。
需要在builde path->configure builde path->libraries->add library->server Runtime下重新指定tomcat的路径,导入响应的jar包。
导入别人的项目的时候也会出现此种情况。
SQL语句 : comment  相当于java里面的注释。
id int(10) not null auto_increment comment '花卉ID',
JSP区别:
需要改动三个utf-8





Mybitis的介绍

Mybatis:Mybatis 开源免费框架.原名叫iBatis,2010在google code,2013年迁移到github

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

知识体系

Mybatis的课程大纲:
    框架的概念
    MyBatis基于SqlSession对象完成单表单参数的增删改查
    Mybatis基于代理模式完成单表多参数的增删改查
    Mybaris基于代理模式完成SQL语句动态拼接的增删改查
    Mybatis基于代理模式完成多表查询
    Mybatis的缓存和ThreadLocal封装
    Mybatis的运行原理

eclipse的熟悉使用

使用MVC完成花卉管理系统的简单功能

高级软件介绍:
        开发工具:eclipse mars2.0
        jdk:1.7
        服务器:tomcat
        数据库:mySQL
    命名规范:
        包名:
            com.bjsxt.包名
            com.bjsxt.dao
            com.bjsxt.dao.impl
            com.bjsxt.service
            com.bjsxt.service.impl
            com.bjsxt.servlet
            com.bjsxt.pojo vo entry
            com.bjsxt.util
            com.bjsxt.filter
            com.bjsxt.listener
            com.bjsxt.exception
        高级包名:
            com.bjsxt.mapper
            com.bjsxt.service
            com.bjsxt.service.impl
            com.bjsxt.controller
            com.bjsxt.pojo
        类名:
            类名必须首字母大写
        方法名:
            驼峰原则
        变量名:
            驼峰原则
    基于MVC完成花卉管理系统:
        需求文档:在飞秋中下载即可
        1 完成数据库设计
            创建数据库
                基于界面方式
                基于MYSQL命令方式:
                    使用任意一个现有数据库打开命令窗口
                    create database 数据库名 default character  set utf8
                    切换数据库 use 数据库名
            在创建的数据库中创建花卉信息表
                create table flower(
    id int(10) not null auto_increment comment '花卉ID',
    name varchar(100) not null comment '花名',
    price float not null comment '价格',
    production varchar(200) not null comment '产地',
                    primary key(id)
                )comment '花卉信息表'
            添加测试数据:
                insert into flower values(default,'矮牵牛',2.5,'南美阿根廷');
                insert into flower values(default,'百日草',5.0,'墨西哥');
 insert  into flower values(default,'半枝莲',4.3,'巴西');
        2 开始编码设计(基于MVC)
            在eclipse中创建web项目。
                file-->Dynamic web poject
                注意:
                    在弹出的窗口中书写项目明
                    在Target runtime中选择或者配置该项目要运行的服务器环境
                        单独进行运行环境的配置:
                            点击New runtime-->选择tomcat7.0--->next-->点击Browse选择服务器的路径
                            然后在jre中选择安转的jdk环境,如果选项中没有,点击installed jres,配置JDK环境即可
                    如果在新建项目时没有配置tomcat环境,则JSP文件会报错,需要手动的配置server  runtime
                            项目右键--->Build path --->configure build path--->Libraries--->add libraries-->service runtime 
            创建项目模版:
                创建包
                导入项目所需jar包
            查看所有的花卉信息
                点击按钮发送查看请求到servlet
                    --------------------------->servlet
                            调用业务层对象获取花卉信息
                            将信息存储到request作用域中
                            请求转发给jsp文件
                                -------------------------->service
                                    调用dao层去数据库中获取花卉信息
                注意:
                    在jsp中遍历显示所有的花卉信息,但是需要手动导入jstl的相关jar包
                    使用注解方式配置Servlet的别名:在Servlet的类名上使用@WebServlet("/别名")
            添加花卉信息      
    eclipse项目默认发布路径介绍:
eclipse工作空间路径\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps

框架学习

框架的概念:
        软件的半成品。
        其实框架就是专门处理某一类问题的代码的封装。
    框架的特点:
        提升开发效率。
    框架的形成:
        示例:数据库操作
        问题:数据库操作,增删改查,但是发现在写发代码时,除了sql语句参数,返回值等不同以外,代码的重复率达到了80%以上。
        解决:
            对代码进行封装(相同的保留,不同的传参)。
        实现:
            查询:
                sql语句,参数,返回类型
            增加:
                sql语句,参数
            修改:
                sql语句,参数
            删除:
                sql语句,参数
        使用:
            第一种方式:
                将封装的源码文件全部给需要使用的人,将源码文件复制到项目中。
                将封装代码配套的使用文档给使用的人
                缺点:
                    源码数量如果比较多的话,会造成项目编译效率底下。项目代码体系结构混乱。
            第二种方式:
                将封装代码打压成jar文件,将jar文件给需要使用的人
                将封装代码配套的使用文档给使用的人
                优点:
                   在不影响原有代码结构的基础下,使用别人的代码。

第一个Mybatis程序

Mybatis简介:
            原名为ibatis,一个基于java的持久层框架。
        特点:
            简单易学
            解除Sql与程序代码的耦合。
    MyBatis搭建流程(第一个Mybatis程序):
        导入myBatis相关jar包(别忘了还有数据库的jar包)还有myBatis依赖的相关jar包
        创建并完成配置文件的书写
            数据库连接相关的配置文件:
                在src下创建mybatis.xml
                在mybatis文件中加载DTD文件:
                    <!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
                并在mybais文件中配置相关数据:
                    <!-- 声明数据库连接环境 -->
                        <!--创建并声明具体的数据库环境  -->
                            <!--声明事务管理  :使用原生事务管理,事务还是由程序员自己编写事务管理代码-->
                            <!--配置数据源 -->
                    <!--配置mapper  -->
            SQL语句的配置文件:
                在src下创建包com.bjsxt.mapper
                在mapper包中创建xml文件用来存储sql参数信息
                在xml文件中加载DTD
                    <!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
                在xml文件中创建并配置SQL语句
                    <!--创建查询sql语句  -->
    <select id="selF" resultType="com.bjsxt.pojo.Flower">
        select * from flower
    </select>
        id属性是唯一标识一条SQL语句的
        resultType:返回值类型,规定了查询结果的每条结果的存储方式。
                注意:mapper标签的namespace属性值是用来唯一标识一个xml配置文件信息的
                        格式为包名+文件名,例如:com.bjsxt.mapper.FlowerMapper
        使用Mybatis的对象操作数据库
            获取配置文件的流对象:
                InputStream is = Resources.getResourceAsStream("mybatis.xml");
            创建SqlSession工厂对象
                SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
            创建SqlSession对象
                SqlSession ss=factory.openSession();
            使用SqlSession对象操作数据库
    流程详解:
        mybatis.xml文件解释:
        mapper.xml文件解释:
    MyBatis的三种查询方式(基于SqlSession对象完成):
        第一种:
            selectList(String sqlpath):返回存储了查询数据的list集合,适用于查询多条数据
        第二种:    
            selectOne(String sqlpath):返回查到的一条指定的记录,适用于查询某条记录
        第三种:
            selectMap(String sqlpath):返回存储了指定数据的map集合
    Map<String,Map<String,Object>> map=ss.selectMap("com.bjsxt.mapper.FlowerMapper.selMap", "id");

注意: id可以为pojo类的任何属性,  也就是Map里的值存的是一条完整的数据。

MyBatis配置文件源码

MyBatis配置文件源码:
<?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>
    <!-- 声明数据库连接环境          default属性是 environment标签的ID,确定使用的数据库环境-->
    <environments default="mysql">
        <!--创建并声明具体的数据库环境       id属性唯一标识一个声明的数据库环境 -->
        <environment id="mysql">
            <!--声明事务管理  :type属性声明数据库的事务管理方式 ,使用原生事务管理,事务还是由程序员自己编写事务管理代码 -->
            <transactionManager type="JDBC"></transactionManager>
            <!--配置数据源   type属性声明使用数据库连接池技术-->
            <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="1234"/>
            </dataSource>
        </environment>
    </environments>
    <!--配置mapper  配置mapper.xml文件路径,可以配置多个-->
    <mappers>
        <mapper resource="com/bjsxt/mapper/FlowerMapper.xml"/>                 注意此处是以/分割开,而不是.
    </mappers>
</configuration>
-----------------------------------------------------------------------------------------------------
Mapper.xml配置文件示例源码:
    <?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">
  <mapper namespace="com.bjsxt.mapper.FlowerMapper">

    <!--创建查询sql语句  -->
    <select id="selF" resultType="com.bjsxt.pojo.Flower">
        select * from flower
    </select>
    <select id="selOne" resultType="com.bjsxt.pojo.Flower">
select *from flower where id=1
</select>
<select id="selMap" resultType="map">
select *from flower
</select>
        </mapper>
--------------------------------------------------------------------------------------------------------
Mybatis操作数据库示例代码:
        //获取配置文件流对象
        InputStream is = Resources.getResourceAsStream("mybatis.xml");
        //获取SqlSession工厂对象
        SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
        //获取SqlSession对象
        SqlSession ss=factory.openSession();

        //使用ss对象操作数据库
        List<Flower> lf=ss.selectList("com.bjsxt.mapper.FlowerMapper.selF");
        System.out.println(lf);
        //使用ss对象操作数据库
        Flower f=ss.selectOne("com.bjsxt.mapper.FlowerMapper.selOne");
        System.out.println(f);
        //使用ss对象操作数据库
        Map<String,Map<String,Object>> map=ss.selectMap("com.bjsxt.mapper.FlowerMapper.selMap", "id");
        System.out.println(map);

小结

开发前的准备
eclipse的使用
Mybatis框架介绍
第一个Mybatis程序

附:第一个程序的包图:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_21953671/article/details/79692549