您的位置:首页 > 编程语言 > Java开发

java-jdbc

2015-10-28 18:48 295 查看
最近突然有一个想写写关于java基础的东西,本人也是经验有限,理解的可能也不太完全,一方面希望写写东西能增加自己对技术的了解,另一方面也希望能给不了解的同学一些帮助。

高手请自动屏蔽,如果错误请指教哦!

一、谈谈JDBC之前,觉得有必要区分一下JDBC和ODBC。

1、ODBC即OPEN DATABASE CONNECTIVITY(开放数据库互联),建立的一组访问数据库的规范,并提供的对数据库访问的标准API,这些API是利用绝大部分SQL来完成其任务。用户可以将SQL直接推送给ODBC。

2、JDBC即JAVA DATABASE CONNECTIVITY(java数据库连接),是执行SQL语句的JAVA API,用户可以用纯java进行连接和执行。

3、java不能直接使用ODBC,因为ODBC使用C语言接口,如果用java调用会在安全性、可移植性等方面带来困难。

4、JDBC的java api提供了存java的解决方法,在所有平台上都具有可移植性。

二、JAVA中关于JDBC连接数据库(文章都以mysql为例子)

1、加载数据库驱动:

Class.forName("com.mysql.jdbc.Driver")
;

2、提供连接JDBC的URL

jdbc:mysql://localhost:3306/databaseName?useUnicode=true&characterEncoding=gbk;

localhost:ip地址。

3306:msql默认端口号。

databaseName:数据库名称。

useUnicode:标示使用字符集。如果在characterEncoding为gbk等情况下必须设为true。

3、连接数据库:(建立一个连接对象需要提供url
username password)

Connection connect = DriverManager.getConnection(url
username password);

4、向数据库发送sql语句

这里要讲到Statement、PrepareStatement、CallableStatement,其中PrepareStatement跟Statement执区别在于,PrepareStatement一般用于动态sql,可以进行参数设置。也可以进行预编译,有效的防止sql注入,所以一般来说都使用PrepareStatement。而CallableStatement一般在调用存储过程时使用。

这里使用PrepareStatement预编译做例子。

String sql = “select * from user
where userId = ? and userName=?”;

PrepareStatement ps = con.preparestatement(sql);

ps.setString(1,’第一个问号值‘);

ps.setString(2,'第二个问号值');

ResultSet rs = ps.executequery();

5、处理结果集

首先取得结果集:ResultSet rs = ps.executequery();

通过rs.hasNext()判断是否有下一行

while(rs.hasNext){

//去除一行数据字段

String userName = rs.getString('数据库username字段名');

//在得知phone为第二个字段的时候也可以用一下方法,这种方法比 较高效率。

String phone = rs.getString(2);

}

以上几个步骤就是整个连接数据库并执行sql的过程。

三、添加说明:

1、在数据库连接中为了不浪费资源,我们在处理完sql语句后应该记得关闭连接。因为在这个过程中会有异常处理的行为,所以一般把关闭连接卸载异常处理的final中。如下图,用idea写了个简单的小demo,凑合可以看看。


2、以上只讲到了对数据库的查询操作为ps.executeQuery();觉得得提一下关于数据库的删除和添加都是通过执行ps.executeUpdate()这个方法来实现的,ps.executeUpdate()返回值则是成功更新或删除的条数。

--------------好了 以上就是关于最简单数据库JDBC的小知识,当然在实际工作的项目中,不太会涉及到这些过程,因为项目中都是用数据库连接池,很多方法也都是封装起来,只要知道使用就行了。

东西比较简单,当也是纯个人手码,转载请注明出处。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: