操作步骤:
1.加载JDBC驱动器,将JDBC驱动加载到classpath中。
2.加载JDBC驱动,并将其注册到DriverManager中。一般使用反射机制class.forName(String driverName)
3.建立数据库连接,取得Connection对象。一般通过DriverManager.getConnection(url,username,passwd)方法实现,其中url表示连接数据 库的字符串,uaername表示连接数据库的用户名,passwd表示连接数据库的密码。
4.建立Statement对象或PrepareStatement对象。
5.执行SQL语句。
6.访问结构集ResultSet对象。
7.依次访问ResultSet、Statement、PreparedStatement、Connection对象关闭,释放掉所占用的资源。
另:Java自带api唯二基一:
查询语句获取第二列数据:resultSet.get(2)
PreapredStatement设置参数:ps.setInt(3, 50)
3种执行方法:
execuetQuery:
用于产生单个结果集(ResultSet)的语句,例如 SELECT 语句。另:ResultSet对象维持一个指向当前行的指针。最初,这个指针指向第一行之前。
executeUpdate:
用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一个整数(int),指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。
execute:
可用于执行任何SQL语句,返回一个boolean值,表明执行该SQL语句是否返回了ResultSet。true表示执行的是查询语句,执行查询语句时可以通过getResultSet,把结果集取出来;false表示执行的是insert,delete,update等等
其它特殊操作:
获取自增长id:ResultSet rs = ps.getGeneratedKeys();
获取表的元数据:
事务:
在事务中的多个操作,要么都成功,要么都失败
通过 c.setAutoCommit(false);关闭自动提交
使用 c.commit();进行手动提交
ORM DAO
数据库连接池:
与传统方式不同,连接池在使用之前,就会创建好一定数量的连接。
如果有任何线程需要使用连接,那么就从连接池里面借用,而不是自己重新创建.
使用完毕后,又把这个连接归还给连接池供下一次或者其他线程使用。
倘若发生多线程并发情况,连接池里的连接被借用光了,那么其他线程就会临时等待,直到有连接被归还回来,再继续使用。
整个过程,这些连接都不会被关闭,而是不断的被循环使用,从而节约了启动和关闭连接的时间。
数据库连接池链接:https://www.cnblogs.com/xdp-gacl/p/4002804.html
参考:https://blog.csdn.net/u010297791/article/details/52637868
https://www.cnblogs.com/xiaoxiaohui2015/p/5814624.html