开发前的准备
开发工具的更换: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 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(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程序
附:第一个程序的包图: