spring初学体验
下面的图是基于spring的web项目整体结构
蓝色表示对客户端发出的请求一层一层的处理,调用,直到得到想要的业务数据
绿色表示对从数据库得到的数据一层一层包装,筛检,返回给客户端.
下面的图通用的web服务结构体系架构
可以看出spring就是采用了这种通用的架构体系,对整体进行拆分,对相同的逻辑处理进行提取,封装,从而简化代码.同时大大降低了代码耦合性.
其实架构就是一种编程思想,这种思想来源于生活.就比如spring的这种架构思想,其实就是分层管理,一级一级分配任务,再一级一级提交任务,各司其职.这种分工合作,在任何一个团队的管理都随处可见.
- 先从spring框架是如何访问数据库说起.
JAVA访问数据库自然要用到JDBC技术,原始的使用JDBC需要六个步骤,下面以访问MySQL数据库为例如下:`
//声明资源
Statement st=null;
Connection conn=null;
//1.注册驱动
try {
Class.forName("com.mysql.jdbc.Driver");
// 2.获取数据库连接
String url="jdbc:mysql://localhost:3306/jt_db";
String user="root";
String password="123456";
conn=
DriverManager.getConnection(url,user,password);
// 3.获取传输器
st=conn.createStatement();
// 4.执行SQl
String sql=
"insert into user values(null,'李凯奇','123456')";
int rows=st.executeUpdate(sql);
// 5.遍历结果集
System.out.println(rows);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
// 6.释放资源
if(st!=null){
try {
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
st=null;
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
conn=null;
}
试想,如果我们每一次执行SQL语句都要写这么多代码,那岂不是要累死.于是我们考虑如何简化代码. 经过观察,每次访问数据库,执行JDBC只是执行的SQL语句不同,得到的结果不同,其他的四步几乎完全一样.程序前辈就是经历这样的一次次简化JDBC,并且在简化的基础上提升性能.就有了mybatis框架.