一、JDBC应用程序构建步骤
1.加载驱动
2.与数据库建立连接
3.创建Statement对象
4.发送SQL语句
5.处理结果集(只有查询语句有结果集)
6.释放资源
二、PreparedStatement(Statement的子接口)
使用占位符:insert into customers values(null,?,?);
创建:conn.prepareStatement(sql);
优势:防止sql注入
三、通过JDBC完成一个二进制文件的读写
1.确保数据库编码方式为utf8,修改数据库配置文件:首先停掉服务,修改my.ini,启动服务,登录通过status检测;
2.确保自己创建的数据库编码方式为utf8
show create database mydb;
3.创建表,确保表的编码方式为utf8
create table(id int,img longblob) character set utf8;
4.编写JDBC应用
四、JDBC元数据
1.元数据:描述数据的数据
2.元数据的获取和应用
1·数据库相关(DatabaseMetaData)
2·表相关(ResultSetMetaData)
五、JDBC中的事务控制
1.事务控制借助Connection对象完成
1·默认情况下为自动控制
2·设置为手动控制
try{
conn.setAutoCommit(false);
创建Statement发送sql;
conn.commit();
}catch(Exception e){
if(conn!=null){
try{
conn.rollback();
}catch(Exception e1){}
}
}finally{
}
2.事务与业务紧密联系,事务控制应该放在业务层。
3.事务由谁控制?
Connection对象
4.一个JDBC事务应该有几个Connection对象?
一个
5.如何保证一个JDBC事务的若干个操作使用的是一个连接对象?
将连接对象绑定到当前线程
6.如何将连接对象绑定到当前线程?
借助ThreadLocal对象
六、Statement和PreparedStatement之间的区别
1.PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程。
2.使用 Statement 对象。在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理。PreparedStatement 对象的开销比Statement大,对于一次性操作并不会带来额外的好处。
3.statement每次执行sql语句,相关数据库都要执行sql语句的编译,preparedstatement是预编译得, preparedstatement支持批处理。
4.执行许多SQL语句的JDBC程序产生大量的Statement和PreparedStatement对象。通常认为PreparedStatement对象比Statement对象更有效,特别是如果带有不同参数的同一SQL语句被多次执行的时候。PreparedStatement对象允许数据库预编译SQL语句,这样在随后的运行中可以节省时间并增加代码的可读性。
1.加载驱动
2.与数据库建立连接
3.创建Statement对象
4.发送SQL语句
5.处理结果集(只有查询语句有结果集)
6.释放资源
二、PreparedStatement(Statement的子接口)
使用占位符:insert into customers values(null,?,?);
创建:conn.prepareStatement(sql);
优势:防止sql注入
三、通过JDBC完成一个二进制文件的读写
1.确保数据库编码方式为utf8,修改数据库配置文件:首先停掉服务,修改my.ini,启动服务,登录通过status检测;
2.确保自己创建的数据库编码方式为utf8
show create database mydb;
3.创建表,确保表的编码方式为utf8
create table(id int,img longblob) character set utf8;
4.编写JDBC应用
四、JDBC元数据
1.元数据:描述数据的数据
2.元数据的获取和应用
1·数据库相关(DatabaseMetaData)
2·表相关(ResultSetMetaData)
五、JDBC中的事务控制
1.事务控制借助Connection对象完成
1·默认情况下为自动控制
2·设置为手动控制
try{
conn.setAutoCommit(false);
创建Statement发送sql;
conn.commit();
}catch(Exception e){
if(conn!=null){
try{
conn.rollback();
}catch(Exception e1){}
}
}finally{
}
2.事务与业务紧密联系,事务控制应该放在业务层。
3.事务由谁控制?
Connection对象
4.一个JDBC事务应该有几个Connection对象?
一个
5.如何保证一个JDBC事务的若干个操作使用的是一个连接对象?
将连接对象绑定到当前线程
6.如何将连接对象绑定到当前线程?
借助ThreadLocal对象
六、Statement和PreparedStatement之间的区别
1.PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程。
2.使用 Statement 对象。在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理。PreparedStatement 对象的开销比Statement大,对于一次性操作并不会带来额外的好处。
3.statement每次执行sql语句,相关数据库都要执行sql语句的编译,preparedstatement是预编译得, preparedstatement支持批处理。
4.执行许多SQL语句的JDBC程序产生大量的Statement和PreparedStatement对象。通常认为PreparedStatement对象比Statement对象更有效,特别是如果带有不同参数的同一SQL语句被多次执行的时候。PreparedStatement对象允许数据库预编译SQL语句,这样在随后的运行中可以节省时间并增加代码的可读性。