代码重构DBUtils工具类
1)连接管理起来(static方法)
2)资源关闭
how:
1.注册驱动 三种方式(a. DriverManager.registerDriver(new com.mysql.jdbc.Driver())
b. Class.ForName("com.mysql.jdbc.Driver") 常用这一种
c. java -Djdbc.drivers=com.mysql.jdbc.Driver.FirstJDBC)
三种方式的区别
Class.ForName("..");是通过字节码文件 .class (在硬盘)在JVM上创建类对象
DriverManager.registerDriver(new com.mysql.jdbc.Driver())的对象是 new 出来的
2.获取数据库连接
Connection conn = DriverManager.getConnection(url, username, password);
3.创建Statement对象
Statement stmt = conn.createStatement();
预编译语句 PreparedStatement pstmt = conn.createPreparedStatement(); 优点 提高效率?sql语句可以重复利用?结构相同 可以批量地处理数据,使用 ?作占位符,在执行sql语句之前必须输入参数
pstmt.setString(1,"..");
.....
pstmt.executeUpdate();
pstmt.clearParameter();
CallableStatement
调用存储过程(部署在数据库)真正的批处理
procedure
begin
....
end
缺点: 可移植性比较差
4.执行(发送)sql语句
select : ResultSet rs = stmt.executeQuerry(sql);
ResultSet rs = pstmt.execute();
update/insert into/ delete : 返回一个整数 (smst.executeUpdate(sql))
5.处理结果集
select : while(rs.next()){....}
6.关闭JDBC资源
逆序关闭 rs stmt/pstmt conn
处理结果集
select : ResultSet rs = stmt.executeQuerry(sql) 一个Statement对象在某一时刻只能有一个ResultSet对象,意味着必须处理上一次查询结果后才能做下一个查询
update/insert into/ delete : int n = stmt.executeUpdate(sql) 如果执行的是DDL,则返回0
ResultSet接口
重载的两个方法:
1)String getString(int columnIndex)
2)String getString(String columnIndex)
在不知道sql语句类型的情况下 boolean execute(String sql) 返回布尔值
如果第一结果是ResultSet对象,返回true
如果是更新计数或不存在任何结果,返回false
CallableStatement
作用:执行存储过程 (效率高,可移植性差)
设置OUT和IN参数: in:参数从Java程序传到数据库的存储过程
out:参数从数据库传到JAVA程序的存储过程
存储过程
不同数据库管理系统有各自定义的存储过程的方式
--mysql
delimiter //
drop procedure procedure_name;// --删除已有的存储过程
create procedure procedure_name(in p_字段, ...)
begin
insert into table_name(字段, ...)values(p_字段, ...)
commit;
select count(*) into total from table_name where 字段 = p_字段 and ... and ...
end;//
delimiter;
java程序调用存储过程
java数据类型和DBMS数据类型相互对应
3NF
List队列和泛型的结合使用
List<类型> list = new ArrayList<类型>();
把数据添加到List队列中 list.add(数组名);
构造器(无参和有参)的作用?
初始化
相关推荐
jdbc驱动,三个jar文件jdbc驱动,三个jar文件jdbc驱动,三个jar文件jdbc驱动,三个jar文件
在myeclipse连接SQL Server数据库的时候需要驱动的jdbc 的三个jar包
jdbc jdbc jdbc jdbc jdbc jdbc jdbc jdbc
JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单...
sqljdbc4.jar, sqljdbc41.jar, sqljdbc42.jar三个包
java web中JDBC连接SQLServer2000三个Jar包(mssqlserver.msbase.msutil)
要进行数据库连接所必备的三个包哦,里面包括msbase.jar/mssqlsever.jar/msutil.jar
本案例使用纯JDBC+三层架构,演示在业务逻辑层中使用事务的方式. 导言:如何脱离框架,在使用了dao模式的项目中在业务逻辑层中使用jdbc事务?又如何保证每个dao方法的Connection对象统一且不被关闭?如何确保在多线程环境...
JDBC代码 JDBC代码JDBC代码 JDBC代码
JDBC基础JDBC基础JDBC基础JDBC基础JDBC基础JDBC基础JDBC基础JDBC基础JDBC基础
java jdbc连接sqlserver所必须的三个jar包
JDBC笔记 JDBC笔记 JDBC笔记
SQL+Server+2000+JDBC驱动程序需要的三个jar包.rar
JDBC详解 JDBC详解JDBC详解 JDBC详解JDBC详解 JDBC详解
全面解析JDBC java JDBC java数据库连接 全面解析JDBC java JDBC java数据库连接 全面解析JDBC java JDBC java数据库连接
JDBC高级应用JDBC高级应用JDBC高级应用JDBC高级应用
JDBC连接SQLServer2000三个jar包,以及后续的一个jar包
jdbc资料jdbc资料jdbc资料jdbc资料
纯java jdbc驱动程序是独立的连接驱动程序,不需要中间服务器,与数据库实现通信的整个过程均有java语言实现,将所上传的文件解压,有三个类包:msbase.jar、mssqlserver.jar和msutil.jar,使用时将三个包放在jdk\...
hive-jdbc