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的小知识,当然在实际工作的项目中,不太会涉及到这些过程,因为项目中都是用数据库连接池,很多方法也都是封装起来,只要知道使用就行了。
东西比较简单,当也是纯个人手码,转载请注明出处。
高手请自动屏蔽,如果错误请指教哦!
一、谈谈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的小知识,当然在实际工作的项目中,不太会涉及到这些过程,因为项目中都是用数据库连接池,很多方法也都是封装起来,只要知道使用就行了。
东西比较简单,当也是纯个人手码,转载请注明出处。
相关文章推荐
- Eclipse 在生成javadoc 编码GBK的不可映射字符
- 自定义异常类
- java exception
- 详解设计模式在Spring中的应用
- Spring集成Junit testNG
- 【LWJGL官方教程】总目录
- ognl.OgnlException: target is null for setProperty(null, "tkscName", [Ljava.lang.String;@1bf9980)
- Eclipse配置Maven
- Java监控常用工具 .
- Map线程安全
- java生产随机字符串
- Java Web开发中前后端分离的技术方案和优缺点
- Spring事务管理-回滚
- 关于java文件下载文件名乱码问题解决方案
- [转]在Eclipse中使用JUnit4进行单元测试(初级篇)
- 场景二:synchronized修饰方法
- Spring事务异常rollback-only
- Spring各jar包的作用
- 深入理解Java的接口和抽象类
- Synchronized关键词使用场景解析