一, 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,2010在Google code,2013 年迁移到github

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

  2.1 底层是对JDBC的封装

3. Mybatis优点之一:

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

七.  环境搭建

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

  2.1 没有名称和地址要求

  2.2 在全局配置文件中引入dtd或schema

    如果导入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事务setAutoMapping(false);

  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.xml(tomcat中有,直接复制过去) ,在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:上下文接口,context。xml 文件对象类型

  6.2 代码:

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

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

Java 高级框架——Mybatis(一)的更多相关文章

  1. Java高级框架——Mybatis(二)

    十.三种查询方式 1. selectList()返回值为List<resultType属性控制> 1.1 适用于查询结果都需要遍历的需求 List<Flower> list = ...

  2. java 持久框架mybatis的初步学习

    什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索.MyBati ...

  3. Java高级框架------Spring(二)

    五.如何给Bean的属性赋值(注入) 1. 通过构造方法来赋值 2. 设置注入(通过set方法) 2.1 如果属性是基本类型或String等简单 <bean id="peo" ...

  4. Java高级框架-----Spring(一)

    一: 1. Spring几大核心功能: IOC/DI 控制反转/依赖注入 AOP 面向切面编程 声明式事务 2. Spring 框架的的runtime 2.1 test:Spring提供测试功能 2. ...

  5. Java高级特性 第1节 集合框架和泛型

    Java中,存储多个同类型的数据,可以用数组来实现,但数组有一些缺陷: 数组长度固定不变,布恩那个很好的适应元素数量动态变化的情况 可以通过数组.length获取数组长度,却无法直接获取数组中实际存储 ...

  6. Java - Struts框架教程 Hibernate框架教程 Spring框架入门教程(新版) sping mvc spring boot spring cloud Mybatis

    https://www.zhihu.com/question/21142149 http://how2j.cn/k/hibernate/hibernate-tutorial/31.html?tid=6 ...

  7. Java 高级-集合框架

    参考资料 参考 HashMap 类似 C++ 中的 STL 标准模板库,Java 也在 java.util 包中封装了一套常用数据结构及其算法,称为集合框架.所有的集合框架都包含如下内容: 接口:代表 ...

  8. [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)

    如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html   谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...

  9. Java高级软件工程师面试考纲(转)

    如果要应聘高级开发工程师职务,仅仅懂得Java的基础知识是远远不够的,还必须懂得常用数据结构.算法.网络.操作系统等知识.因此本文不会讲解具体的技术,笔者综合自己应聘各大公司的经历,整理了一份大公司对 ...

随机推荐

  1. KeyguardSimPinView

    /* * Copyright (C) 2012 The Android Open Source Project * * Licensed under the Apache License, Versi ...

  2. 蓝桥杯——X星球居民问题

    [问题描述] X星球居民小区的楼房全是一样的,并且按矩阵样式排列.其楼房的编号为1,2,3... 当排满一行时,从下一行相邻的楼往反方向排号. 比如:当小区排号宽度为6时,开始情形如下: 1  2  ...

  3. CrawlSpider模板

    crawlSpider 创建CrawlSpider模板 scrapy genspider -t crawl <爬虫名字> <域名> 模板代码示例: # -*- coding: ...

  4. day11.2lambda函数表达式 及其返回值注意事项

    lambda表达式 用于表示简单的函数 func1=lambda 参数:一句话函数体(默认返回函数体内执行的内容) 1.1结构 func=lambda a1,a2 : a1+100 val=func( ...

  5. HBase应用快速开发

    有人说过“让Hadoop开发像家庭作业一样简单”,容器技术的出现让这成为可能,可以用Docker封装HBase运行环境,通过统一的接口来运行.本文将介绍如何在十分钟内跑起你的HBase应用. 首先,我 ...

  6. 认识Ajax

    1.简介 AJAX 相当于异步 JavaScript 和 XML,是一种用于创建快速动态网页的技术.通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网 ...

  7. python rabbitMQ持久化队列消息

    import pika connection = pika.BlockingConnection( pika.ConnectionParameters('localhost'))#建立一个最基本的so ...

  8. ZJOI2018 D1T2 历史(毕竟我菜,所以题解十分易懂。。)

    我定睛一看,上一篇博客居然是去年省选写的...emmm我果然很懒.. 又是一年省选季,临死前订正一下去年的题吧.. 作为第一天30pts的滚粗选手,我去年并没有怎么思考这题.. 题意概括好麻烦,来来来 ...

  9. Linux本地yum源配置以及使用yum源安装gcc编译环境

    本文档是图文安装本地yum源的教程,以安装gcc编译环境为例. 适用范围:所有的cetos,红帽,fedroa版本 适用人群:有一点linux基础的小白 范例系统版本:CentOS Linux rel ...

  10. pychrom 快捷键

    1.pycharm使多行代码同时缩进 鼠标选中多行代码后,按下Tab键,一次缩进四个字符 2.pycharm使多行代码同时左移 鼠标选中多行代码后,同时按住shift+Tab键,一次左移四个字符 1. ...