获取主键:
当用自增长的主键 添加数据 时,添加成功后 需要获取当前记录的自增长的值
注册
insert into t_user(name,password) values(?,?)
展示用户个人信息
select * from t_user where id=?
预编译时期 告知 需要 获取主键:
ps = conn.prepareStatement(sql,PreparedStatement.RETURN_GENERATED_KEYS);
获取生成的主键:
rs = ps.getGeneratedKeys();
-------------------------------------------------------
批处理 batch
采用一次性发送多条sql语句的方式 来访问数据库
常用方法:
addBatch(): 添加sql到批处理中
executeBatch(): 执行批处理
--------------------------------------------------------
获取结果集的元数据 MetaData
ResultSetMetaData rsmd = rs.getMetaData();
常用方法:
getColumnCount():获取列的数量
getColumnName(int column):获取列的名称 通过下标来取
getColumnTypeName(int column):获取列的类型名称 通过下标来取
数据库连接池dbcp
database connection pool
作用: 通过连接池获取连接对象,比需要的时候再去创建连接 性能更优
jvm先在程序空闲的时候,一次性向数据库请求多个连接,存放在本地的连接池,
当需要使用连接时,直接从连接池中取出即可,用完调用close()再放回去。
实现:
需要数据源BasicDataSource 来获取连接对象
要使用BasicDataSource(不是jdk的类)是第三方的类
添加两个jar文件:
commons-dbcp.jar
commons-pool.jar 是commons-dbcp.jar的依赖包
dbcp.jar中的一些类 会 引用 到 pool.jar中的类和方法
---------------------------------------------------------
Dao 数据的操作
Dao (data access object)
dao包中的所有类 都是用来访问数据库的
这个包中的每个类 的每个方法 对应的都是对表的操作
将一张表的操作 放到同一个类中
实体类 javabean
数据库中的每一个表 都要在后台建立一个类
t_user表 User (实体类)
id Integer id
name String name
password String password
createDate Date createDate
实体类需要满足标准的规范:
1.属性私有化
2.公开的set/get方法
3.无参构造
4.所有参数构造
5.实现serializable
作业要求:
使用JDBCUtil完成Dao层代码
1.添加三个jar包
2.配置文件 db.properties
3.create.sql
create table t_user(
....
createDate date
);
4.添加 JDBCUtil