zoukankan      html  css  js  c++  java
  • Java 高级框架——Mybatis(一)

    一, SQl复习

    a,数据库SQL命令

    • 创建数据库并指定编码

    Create database 数据库名 default character set utf8

    create database ssm default character set utf8;
    
    use ssm;
    
    create table if not exists flower(
    id int(10) primary key auto_increment comment '编号',
    name varchar(30) not null comment '名称',
    price float not null comment '价格',
    production varchar(30) not null comment '原产地'
    );
    • 创建表

    create table 表名(

    列名  类型  约束  auto_increment  comment  ‘备注’,

    );

    insert into flower values(default ,'矮牵牛',2.5,'南美阿根廷');
    insert into flower values(default ,'百日草',5.0,'墨西哥');
    insert into flower values(default ,'半枝莲',4.3,'巴西');
    
    select * from flower;

    运行结果:

     二,eclipse 的使用

    1,创建项目

      1.1 选择target runtime,否则出现新建jsp报错

      1.2 如果忘记选择,右键项目-->build path --->configure path --->选项卡library --->第四个 add library --->server runtime

    2.eclipse 默认会自己下载所需Tomcat最简单结构

    三.命名规范

    1. 项目名:没有要求,不起中文就行

    2. 包:公司域名倒写 com.bjut

    3. 数据库访问层(持久层) :dao,persist,mapper

    4,实体:entity,model,bean,Javabean,pojo(普通java类)

    5,业务逻辑:service,biz

    6,控制器层:controller,servlet,action,web

    7,过滤器:filter

    8,异常包:exception

    9,监听器:listener

    10,注释:

      10.1 类个和方法上使用文档注释 /**   */

      10.2 在方法里面使用  /*    */     或  //

    11,类:大驼峰  (FlowerNameBeauty)

    12,方法和属性:小驼峰(flowerNameBeauty)

    四.MVC(又称为JSP model 2)开发模式

    1. M: Model 模型,实体类和业务和dao

    2. V:view 视图。 JSP

    3. C:controller  控制器, servlet

      3.1 作用:视图和逻辑分离

    4. MVC适用场景:大型项目开发。

    5. 图示例

      5.1 先设计数据库

      5.2 先写实体类

      5.3 持久层

      5.4 业务逻辑

      5.5 控制器

      5.6 视图

    五.框架介绍

    1. 框架:软件的半成品。为解决问题制定一套约束,在提供功能基础上进行扩充。

    2. 框架中一些不能被封装的代码(变量),需要使用框架者新建一个xml文件,在文件中添加变量内容。

      2.1 需要建立特定位置和特定名称的配置文件。

      2.2 需要使用xml解析技术(固定的类)和反射技术(类和类中属性都不固定)

    3. 常用概念

      3.1类库:提供的类没有封装一定逻辑。

        Ex:类库好比名言警句,写作文时引用它

      3.2 框架:区别于类库,里面有一些约束。

        Ex: 框架是填空题

    六.Mybatis 简介

    1. Mybatis 开源免费框架。原名iBatis,2010Google code2013 年迁移到github

    2. 作用:数据访问层框架

      2.1 底层是对JDBC的封装

    3. Mybatis优点之一:

      3.1 使用mybatis时不需要编写实现类,只需要写需要执行的sql命令

    七.  环境搭建

     

    2. 编写src下新建全局配置文件(编写JDBC四个变量)

      2.1 没有名称和地址要求

      2.2 在全局配置文件中引入dtdschema

            如果导入dtd后没有提示

            Window-->preference-->XML-->XML catalog -->add按钮

     

    3. 新建以mapper结尾的包,在包下新建:实体名+Mapper.xml

      3.1  文件作用:编写需要执行的sql命令

      3.2 xml文件理解成实现类

      3.3 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">
    <!-- namespace:理解成实现类的全路径(包名+类名) -->>
    <mapper namespace="a.b">
        <!-- id:方法名 
        parameterType:定义参数类型
        resultType:返回值类型
        
        如果方法返回值是list,在resultType中写List的泛型,因为mybatis
        对jdbc封装,一行一行读取数据
        -->
        <select id="selAll" resultType="Flower">
            select *from flower
        </select>
    
    </mapper>

    4. 测试结果,只有在单独使用mybatis时使用,最后ssm整合时下面代码不需要编写

    package com.bjut.test;
    
    import java.io.InputStream;
    
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    
    
    public class Test
    {
        public static void main(String[] args)
        {
            InputStream is = Resources.getResourceAsStream("mybatis.xml");
            //使用工厂设计模式(生产什么,就叫什么Factory)
            SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
            //生产SqlSession
            SqlSession session=factory.openSession();
            
            List<Flower> list = session.selectList("a.b.selAll");
            for(Flower flower : list)
            {
                System.out.println(flower.toString());
                
            }
            session.close();
        }
    }

    八.环境搭建详解

    1. 全局配置文件中内容

      1.1 <transaction/>type属性可取值

        1.1.1 JDBC 事务管理使用JDBC原生事务管理方式

        1.1.2 MANAGED 把事物管理转交给其他容器,原生JDBC事务setAutoMappingfalse);

      1.2 <dataSource/>type属性

        1.2.1 POOLED 使用数据库连接池

        1.2.2 UNPOOLED 不使用数据库连接池,和直接使用JDBC一样

        1.2.3 JNDI Java命名目录借口接口技术

    九.数据库连接池

    1. 在内存中开辟一块空间,其存放多个数据库连接对象

    2. JDBC Tomcat Pool,直接由Tomcat 产生数据库连接池

    3. Active 状态 :当前连接对象被应用程序使用中

      Idle空闲状态:等待应用程序使用

    4. 使用数据库连接池的目的

      4.1 在高频率访问数据库时,使用数据库连接池可以降低服务器系统压力,提升程序运行效率

        4.1.1 小型项目不适用数据库连接池

    5. 实现JDBC Tomcat Pool 的步骤

      5.1 web项目的META-INF中存放contex.xmltomcat中有,直接复制过去) ,在contex.xml编写数据库连接池相关属性

    <?xml version="1.0" encoding="UTF-8"?>
    <context>
        <Resource
            driverClassName = "com.mysql.jdbc.Driver"
            url = "jdbc:mysql://localhost:3306/ssm"
            usename="root"
            password="1234"
            maxActive="50"
            minIdle="20"
            name="test"
            auth="Container"
            maxWait="10000"
            type="javax.sql.DataSource"
        />
    /<context>

      5.2 把项目发布到Tomcat中,数据库连接池就产生了

    6. 可以再Java中使用jndi获取数据库连接池对象

      6.1 Context:上下文接口,contextxml 文件对象类型

      6.2 代码:

    Contex cxt = new InitialContext();
        DataSource ds = (DataSource)
    cxt.lookup("java:comp/env/test");
        Connection conn = ds.getConnection();

      6.3 当关闭连接对象时,把连接对象归还给数据库连接池,把状态改成idle

  • 相关阅读:
    内置函数二
    内置函数
    【MySQL】纲举目张:打通MySQL架构和业务的任督二脉
    关闭服务器节能模式
    透明大页
    【MySQL】MySQ 8.0启用HugePage
    运维安全之Tripwire
    七字诀,不再憋屈的运维
    利用钉钉机器人发送告警信息
    【MySQL】MySQL 8.0支持utf8mb4
  • 原文地址:https://www.cnblogs.com/lwcwj/p/10479366.html
Copyright © 2011-2022 走看看