- 预状态通道下的增删改查。
- 通用模板,我们不关心你操作数据表是谁,因为sql语句就是传递过来的。
- 我们不关心你链接的数据库是谁,因为我们这些链接参数是可配置的。jdbc.properties(属性文件)
- 把链接参数定义为全局的静态变量。
- 把链接的接口变量也定义在全局。
- 在静态的初始化块中,做配置文件的加载,得到链接参数的值并且赋值给全局的静态变量。
- 注册驱动,在我们的这个程序只需要加载一次。
- 还把链接和通道的创建独立出一个方法,甚至是关闭资源也是独立的一个方法。
- 在这些独立的操作方法中,都是有互相调用的关系。
- 基于状态通道的查询
- 基于状态通道的操作
- 配置文件所在位置,如果你放在了工程中src下,加载这个文件的时候就要使用的getClassLoader();如果你的配置文件在对应的包下,那就直接在当前类的Class 的对象下的加载位置去找到文件对象。
InputStream
in
= JdbcTemplate.
class
.getClassLoader()
.getResourceAsStream(
"jdbc.properties"
);
InputStream
in
= JdbcTemplate.
class
.getResourceAsStream(
"jdbc.properties"
);
- jdbc 的事务操作。事务就一个一次要完成的一个或者多个动作(事情)。
- jdbc 来讲,每一次打开一个链接,就已经开启了一个事务,在一个链接上可以开启多个事务,每一次事务提交就是下次事务的开启。
- jdbc 事务在默认情况下是自动提交的。也就是说我们每次做execute(),executeUpdate(),这样的方法调用的时候,就会自动提交。conn = DriverManager.getConnection(url, username, password); conn.setAutoCommit(true);
- 事务一般是新增修改和删除的。对查询没有影响。
- 如果没有提交,就是说明你在这个事务中所做的事情只是存储在缓存,而没有持久化到数据库的数据表中。
- 手动配置我们的提交方式,改为false。
conn
= DriverManager.
getConnection
(
url
,
username
,
password
);
//
jdbc
的事务设置
conn
.setAutoCommit(
false
);
7.如果设置为false,那么我们针对现在的通用类进行对数据表的操作,是不起作用的,除非你进行手动的提交。
/**
* 事务提交
*/
public
void
myCommit(){
try
{
conn
.commit();
}
catch
(SQLException
e
) {
e
.printStackTrace();
System.
out
.println(
"事务提交失败!"
);
}
}
8、
批处理操作。一次性执行多条sql语句,在这样的操作下,事务操作才有意义。事务是两个动作是一个事情(事务),在这个事务中两个或者多个动作,要么都成功,要么都失败。、、
9、要保证数据的一致性,完整性。