JDBC学习笔记(4)
2015-06-10 13:50
288 查看
回顾,项目的开发步骤:
1) com.zhtm.sql包 建表SQL语句
2) com.zhtm.conf包 创建.properties文件
3) com.zhtm.util包 创建JdbUtil工具类
5) com.zhtm.entity包 创建实体类
根据表结构,创建实体类
字段 属性
get/set方法
6) com.zhtm.dao包 创建PersonDao类
JDBC中的分层:
一、数据访问层DAO【重点】
作用: 对数据库进行增删改查操作。(ORM)
包:com.zhtm.dao
类命名规范:表名+Dao
二、业务层Service【重点】
作用:专注于实现用户的业务需求。通常业务步骤 最终落实到 增删改查操作上。
注意:业务层 必须进行事务的处理,确保所有步骤都成功业务成功;有一个步骤失败,该业务失败。
包结构:com.zhtm.service
类命名规范:和实际需求相关(BankService)
JDBC中,默认1条SQL语句执行后,事务会自动提交。
事务的提交/回滚:
1) 修改事务的提交方式 为手动提交
业务方法的书写步骤【重点】:
1) 调用工具类,获取连接
2) 设置事务的提交方式 为手动提交
3) 分别调用DAO的不同方法,实现业务步骤
4) 事务提交/回滚
5) 调用工具类的方法,释放资源
彻底解决事务控制以及多线程并发访问的问题【重难点】:
使用线程局部变量 ThreadLocal类:
ThreadLocal t = new ThreadLocal();
t.set(obj); //往线程变量中设值
obj = t.get(); //获取线程局部变量的值
t.remove(); //删除线程局部变量的值
解决方案:
1) 修改JdbcUtil的代码:
a) 增加成员变量
三、显示层View
作用:专注于 提供用户的输入/输出界面。
该层不属于JDBC的内容,属于CoreJava的内容。
四、分层的好处
1、各司其职
2、有利于团队建设
总结,项目开发步骤:
1) com.zhtm.sql包 建表语句
2) com.zhtm.conf包 创建配置文件db.properties
3) com.zhtm.util包 创建JdbcUtil
4) com.zhtm.test包 测试JdbcUtil的getConnection方法
5) com.zhtm.entity包 根据表结构,创建实体类
6) com.zhtm.dao包 先创建接口,后定义实现类
注意,写1个方法,测试1个方法。
7) com.zhtm.service包 先创建接口,后定义实现类
注意,写1个方法,测试1个方法。
8) com.zhtm.view包 创建显示显示面类
9) 测试整个项目
1) com.zhtm.sql包 建表SQL语句
2) com.zhtm.conf包 创建.properties文件
3) com.zhtm.util包 创建JdbUtil工具类
static{ InputStream is = JdbcUtil.class.getResourceAsStream("/com/zhtm/conf/db.properties"); prop.load(is); } public static Connection getConnection() throws Exception{} public static void release(rs, stm, conn) throws Exception{}4) com.zhtm.test包 测试JdbcUtil的创建连接方法
5) com.zhtm.entity包 创建实体类
根据表结构,创建实体类
字段 属性
get/set方法
6) com.zhtm.dao包 创建PersonDao类
public void insert(Person p) throws Exception{} public void update(Person p)throws Exception{} public void delete(int no)throws Exception{} public List<Person> selectAll()throws Exception{} public Person selectOne(int no) throws Exception{}注意:写1个方法,测试1个方法
JDBC中的分层:
一、数据访问层DAO【重点】
作用: 对数据库进行增删改查操作。(ORM)
包:com.zhtm.dao
类命名规范:表名+Dao
二、业务层Service【重点】
作用:专注于实现用户的业务需求。通常业务步骤 最终落实到 增删改查操作上。
注意:业务层 必须进行事务的处理,确保所有步骤都成功业务成功;有一个步骤失败,该业务失败。
包结构:com.zhtm.service
类命名规范:和实际需求相关(BankService)
JDBC中,默认1条SQL语句执行后,事务会自动提交。
事务的提交/回滚:
1) 修改事务的提交方式 为手动提交
conn.setAutoCommit(false); //true,代表自动提交2) 事务提交/回滚
conn.commit();
conn.rollback();
业务方法的书写步骤【重点】:
1) 调用工具类,获取连接
2) 设置事务的提交方式 为手动提交
3) 分别调用DAO的不同方法,实现业务步骤
4) 事务提交/回滚
5) 调用工具类的方法,释放资源
彻底解决事务控制以及多线程并发访问的问题【重难点】:
使用线程局部变量 ThreadLocal类:
ThreadLocal t = new ThreadLocal();
t.set(obj); //往线程变量中设值
obj = t.get(); //获取线程局部变量的值
t.remove(); //删除线程局部变量的值
解决方案:
1) 修改JdbcUtil的代码:
a) 增加成员变量
private static final ThreadLocal<Connection> t = new ThreadLocal<Connection>();b) 修改getConnection方法
Connection conn = t.get(); if (conn == null){ //注册驱动 //创建连接 //给线程局部变量设值 t.set(conn); }c) 修改release方法
if (conn!=null){ conn.close(); t.remove();//删除线程局部变量中的值 *****必须要有***** }2) 在DAO层不能关闭conn,应该在service层。
三、显示层View
作用:专注于 提供用户的输入/输出界面。
该层不属于JDBC的内容,属于CoreJava的内容。
四、分层的好处
1、各司其职
2、有利于团队建设
总结,项目开发步骤:
1) com.zhtm.sql包 建表语句
2) com.zhtm.conf包 创建配置文件db.properties
3) com.zhtm.util包 创建JdbcUtil
4) com.zhtm.test包 测试JdbcUtil的getConnection方法
5) com.zhtm.entity包 根据表结构,创建实体类
6) com.zhtm.dao包 先创建接口,后定义实现类
注意,写1个方法,测试1个方法。
7) com.zhtm.service包 先创建接口,后定义实现类
注意,写1个方法,测试1个方法。
8) com.zhtm.view包 创建显示显示面类
9) 测试整个项目
相关文章推荐
- jdbc中的Statement和PreparedStatement接口对象
- JDBC 数据库常用连接 链接字符串
- JDBC连接Access数据库的几种方式介绍
- JDBC 程序的常见错误及调试方法
- Java加载JDBC驱动程序实例详解
- JSP中使用JDBC访问SQL Server 2008数据库示例
- 解析jdbc处理oracle的clob字段的详解
- JDBC数据库的使用操作总结
- java使用jdbc操作数据库示例分享
- JDBC之PreparedStatement类中预编译的综合应用解析
- 基于Java回顾之JDBC的使用详解
- 如何在Eclipse中设置Oracle的JDBC
- java使用jdbc连接数据库工具类和jdbc连接mysql数据示例
- sqlserver的jdbc配置方法
- 解析使用jdbc,hibernate处理clob/blob字段的详解
- jdbc中class.forname的作用
- 详解Java的JDBC API的存储过程与SQL转义语法的使用
- jdbc连接sqlserver数据库示例
- 基于jdbc处理Clob的使用介绍
- Java使用JDBC连接Oracle_MSSQL实例代码