一、什么是框架
它是我们软件开发中的一套解决方案,不同的框架解决的是不同的问题
使用框架的好处:
框架封装了很多的细节,使开发者可以使用极简的方式实现功能
大大提高开发效率
二、三层框架
表现层:
用于展示数据
业务层:
是处理业务需求
持久层:
是和数据库交互的
三、持久层技术解决方案
JDBC技术:
Connection
PreparedStatement
ResultSet
Spring的JdbcTemplate
Spring中对jdbc的简单封装
Apache的DBUtils:
它和Spring的JdbcTemplate很像,也是对Jdbc的简单封装
以上这些都不是框架
JDBC是规范
Spring 的JdbcTemplate和Apache的DBUtils都只是工具类
jdbc编程回顾:(不使用工具包)
1 public class demo { 2 3 public static void main(String[] args) { 4 5 Connection connection = null; 6 PreparedStatement preparedStatement = null; 7 ResultSet resultSet = null; 8 9 try { 10 //加载数据库驱动 11 Class.forName("com.mysql.jdbc.Driver"); 12 //通过驱动管理类获取数据库连接 13 connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8","root","root"); 14 //定义sql语句 ?表示占位符 15 String sql = "select * from user where username = ?"; 16 //获取预处理statement 17 preparedStatement = connection.prepareStatement(sql); 18 //设置参数,第一个参数为sql语句中参数的序号(从1开始),第二个参数为设置的参数值 19 preparedStatement.setString(1,"飞猪"); 20 //向数据库发出sql执行查询,查询出结果集 21 resultSet = preparedStatement.executeQuery(); 22 //遍历查询结果集 23 while (resultSet.next()){ 24 System.out.println(resultSet.getString("id")+""+resultSet.getString("username")); 25 } 26 27 } catch (ClassNotFoundException e) { 28 e.printStackTrace(); 29 } catch (SQLException e) { 30 e.printStackTrace(); 31 }finally { 32 //释放资源 33 if (resultSet != null){ 34 try { 35 resultSet.close(); 36 } catch (SQLException e) { 37 e.printStackTrace(); 38 } 39 } 40 if (preparedStatement != null){ 41 try { 42 preparedStatement.close(); 43 } catch (SQLException e) { 44 e.printStackTrace(); 45 } 46 } 47 if (connection != null){ 48 try { 49 connection.close(); 50 } catch (SQLException e) { 51 e.printStackTrace(); 52 } 53 } 54 } 55 } 56 }