一、高级软件介绍
1.JDK 8
2.Eclipse mars2
3.MySql
4.Navicat
二、数据库SQL命令
1.创建数据库并指定编码
Create database 数据库名 default character set utf8
2.创建表
Create table 表名(
列名 类型 约束 auto_increment comment ‘备注’,
);
三、Eclipse使用
1.创建项目
1.1选择target runtime,否则出现新建jsp报错
1.2如果忘记选择,右键项目–>build path–>configure path–>选项卡 library–>第四个add library–>server runtime
2.Eclipse默认会自己下载所需tomcat最简单结构
四、命名规范
1.项目名:没有要求,不起中文
2.包:公司域名倒写edu.swpu
3.数据访问层:dao,persist,mapper
4.实体:entity,model,bean,javabean,pojo
5.业务逻辑:service,biz
6.控制器:controller,servlet,action,web
7.过滤器:filter
8.异常:exception
9.监听器:listener
10.注释:
10.1类上和方法上使用文档注释
/** */
1
10.2 在方法里面使用
/* */ 或 //
1
11.类: 大驼峰
12.方法,属性:小驼峰
五、MVC开发模式
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类库:提供的类没有封装一定逻辑
举例:类库就是名言警句,写作文时引入名言警句
3.2框架:区别于类库,里面有一些约束
举例:框架是填空题
七、MyBatis简介
1.Mybatis开源免费框架,原名叫iBatis,2010在google code,2013年迁移到github
2.作用:数据访问层框架
2.1底层是对JDBC的封装
3.mybatis优点之一:
3.1使用mybatis时不需要编写实现类,只需要写需要执行的sql命令
八、环境搭建
1.导入jar
Cglib依赖的包
动态代理包
日志包
字节码解析包也是cglib依赖的包
日志包
日志包
日志包
Mybatis核心包
驱动
日志包
日志包
2.在src下新建全局配置文件(编写JDBC四个变量)
2.1没有名称和地址要求
2.2在全局配置文件中引入DTD或schema
2.2.1如果导入dtd后没有提示
Window–>preference–>XML–>XMl catalog–>add按钮
2.3全局配置文件内容
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
郑州不孕不育医院:http://wapyyk.39.net/zz3/zonghe/1d427.html
3.新建以mapper结尾的包,在包下新建:实体类名+Mapper.xml
3.1文件作用:编写需要执行的SQL命令
3.2把xml文件理解成实现类
3.3xml文件内容
https://www.xiaohongshu.com/discovery/item/5d7492ce00000000020194c2
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
select * from flower
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
4.测试结果(只有在单独使用mybatis时使用,最后ssm整合时下面代码不需要编写)
InputStream is = Resources.getResourceAsStream("myabtis.xml");
//使用工厂设计模式
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
//生产SqlSession
SqlSession session = factory.openSession();
List
for(Flower flower : list){
System.out.println(flower.toString());
}
session.close();
1
2
3
4
5
6
7
8
9
10
九、环境搭建详解
1.全局配置文件中内容
1.1
1.1.1JDBC:事务管理使用JDBC原生事务管理方式
1.1.2MANAGED:把事务管理转交给其他容器,原生JDBC事务setAutoMapping(false);
1.2
1.2.1POOLED:使用数据库连接池
1.2.2UNPOOLED:不使用数据库连接池,和直接使用JDBC一样
1.2.3JNDI:java命名目录接口技术
十、数据库连接池
1.在内存中开辟一块空间,存放多个数据库连接对象
2.JDBC Tomcat Pool,直接由tomcat产生数据库连接池
3.图示
3.1active状态:当前连接对象被应用程序使用中
3.2Idle空闲状态:等待应用程序使用
4.使用数据库连接池的目的
4.1在高频率访问数据库时,使用数据库连接池可以降低服务器系统压力,提升程序运行效率
4.1.1小型项目不适用数据库连接池
5.实现JDBC tomcat Pool的步骤
5.1在web项目的META-INF中存放context.xml,在context.xml编写数据库连接池相关属性
driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/ssm" username="root"password="smallming" maxActive="50" maxIdle="20" name="test" auth="Container" maxWait="10000" type="javax.sql.DataSource" /> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 5.2把项目发布到tomcat中,数据库连接池产生了 6.可以在java中使用JNDI获取数据库连接池中对象 6.1Context:上下文接口.context.xml文件对象类型 6.2代码 Context cxt = new InitialContext(); DataSource ds = (DataSource) cxt.lookup("java:comp/env/test"); Connection conn = ds.getConnection(); 1 2 3 4 6.3当关闭连接对象时,把连接对象归还给数据库连接池,把状态改变成Idle 十一、三种查询方式 1.selectList()返回值为List 1.1适用于查询结果都需要遍历的需求 List for (Flower flower : list) { System.out.println(flower.toString()); } 1 2 3 4 2.selectOne()返回值Object 2.1适用于返回结果只是变量或一行数据时 int count = session.selectOne("a.b.selById"); System.out.println(count); 1 2 3.selectMap()返回值Map 3.1适用于需要在查询结果中通过某列的值取到这行数据的需求 3.2Map Map System.out.println(map);