能够说,一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协做构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协做的方法,它为构件复用提供了上下文(Context)关系。所以构件库的大规模重用也须要框架。html
由于软件系统发展到今天已经很复杂了,特别是服务器端软件,涉及到的知识,内容,问题太多。java
在某些方面使用别人成熟的框架,就至关于让别人帮你完成一些基础工做,你只须要集中精力完成系统的业务逻辑设计。mysql
并且框架通常是成熟,稳健的,它能够处理系统不少细节问题,好比,事务处理,安全性,数据流控制等问题。git
还有框架通常都通过不少人使用,因此结构很好,因此扩展性也很好,并且它是不断升级的,你能够直接享受别人升级代码带来的好处。程序员
咱们用三层结构主要是使项目结构更清楚,分工更明确,有利于后期的维护和升级.github
三层架构包含:表现层、业务层、持久化层sql
MyBatis参考网址:http://www.mybatis.org/mybatis-3/zh/index.html数据库
MyBatis什么?apache
MyBatis是一个优秀的持久层框架,它是一个半自动化的ORM框架编程
它对使用JDBC操做数据库的过程进行封装,使开发者只须要关注 SQL 自己,而不须要花费精力去处理例如注册驱动、建立connection、建立statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。
MyBatis由来?
MyBatis 本是apache的一个开源项目iBatis
2010年这个项目由apache software foundation 迁移到了google code,而且更名为MyBatis 。
2013年11月迁移到Github。
Mybatis在哪写SQL语句?如何设置SQL参数和封装查询结果?
Mybatis经过XML或注解的方式,将要执行的各类statement(statement、preparedStatemnt、CallableStatement)配置起来。
并经过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。
public class JDBCTest {
public static void main(String[] args) {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
// 加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
// 经过驱动管理类获取数据库连接connection = DriverManager
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8",
"root",
"root"
);
// 定义sql语句 ?表示占位符
String sql = "select * from user where username = ?";
// 获取预处理 statement
preparedStatement = connection.prepareStatement(sql);
// 设置参数,第一个参数为 sql 语句中参数的序号(从 1 开始),第二个参数为设置的
preparedStatement.setString(1, "王五");
// 向数据库发出 sql 执行查询,查询出结果集
resultSet = preparedStatement.executeQuery();
// 遍历查询结果集
while (resultSet.next()) {
System.out.println(
resultSet.getString("id")
+ " " +
resultSet.getString("username")
);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 释放资源
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (preparedStatement != null) {