JDBC
什么是JDBC
- Java Database Connectivity
- 一套规范、接口或者说是Java API ,java数据库连接工具
原生JDBC链接数据库的流程
- 加载数据库驱动:
Class.forName("com.mysql.jdbc.Driver");
- 获取链接:
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db1","root","root");
- 根据SQL获取sql会话对象:
Statement stmt = conn.createStatement();
或 PrepareStatement prestmt = conn.prepareStatement(sql语句);
- 根据会话,处理结果集:
ResultSet rs = stmt.executeQuery(sql语句);
或 ResultSet rs = prestmt.executeQuery();
- 关闭结果集、会话、连接:
rs.close(); stmet.close(); conn.close();
- JDBC事务处理
- 开启事务:
connection.autoCommit(false);
- 提交事务:
conn.commit();
- 回滚事务:
conn.rollbacl();
原生JDBC访问数据库
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db2","root","123456");
//PreparedStatement preparedStatement = connection.prepareStatement("select * from user");
//ResultSet resultSet = preparedStatement.executeQuery();
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("select * from user");
while (resultSet.next()){
System.out.print(resultSet.getString("id")+",");
System.out.print(resultSet.getString("username")+",");
System.out.println(resultSet.getString("email"));
}
MyBatis
什么是MyBatis
- mybatis 是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。
- mybatis通过xml或注解的方式将要执行的各种 statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句。
- 最后mybatis框架执行sql并将结果映射为java对象并返回。采用ORM思想解决了实体和数据库映射的问题,对jdbc 进行了封装,屏蔽了jdbc api 底层访问细节,使我们不用与jdbc api 打交道,就可以完成对数据库的持久化操作。
MyBatis使用流程-Maven
- 添加 mybatis 依赖,mysql 依赖
- 配置 MyBatisConfig.xml 核心配置文件->配置log4j、连接数据源、映射路径等
- 编写映射接口->dao
- 编写映射配置文件或配置注解->mapper接口代理
- 测试代理
- 加载核心配置文件:
InputStream is = Resource.getResourceAsStream(配置文件路径);
- 获取 SqlSessionFactory 对象:
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
- 通过 SqlSessionFactory 获取 SqlSession 对象:
SqlSession sqlSession = sqlSessionFactory.openSession(true);
- 获取 Mapper 接口对象:
XXXDao mapper = sqlSession.getMapper(xxxDao.class)
- 通过获取的 Mapper 接口对象调用方法,返回结果:
mapper.findAll();
Spring
什么是Spring
- Spring 是一个开源的轻量级的IOC和AOP容器框架
- 简化企业开发,只需关心业务需求
- 常见配置方式:xml配置,注解
- 组成模块:
- Spring-core :核心类库,提供 IOC 服务
- Spring-context : 提供框架式的 Bean 访问方式,以及企业级功能(JNDI、定时任务等)
- Spring-AOP : AOP 服务
- Spring-DAP : 对 JDBC 抽象,简化了数据访问的异常处理
- Spring-ORM : 对现有的 ORM 框架的支持
- Spring-Web : 提供了基本的面向 Web 的综合特征,例如多方文件上传
- Spring-MVC : 提供面向 Web 应用的 Model-View-Controller 实现