使用jdk中的java.sql包中的方法进行jdbc连接

首先说明用 java.sql包进行jdbc连接的步骤:

1.加载数据库的驱动。(一般是oracle和mysql,oracle的数据驱动名是:Oracle.jdbc.driver.OracleDriver       mysql的驱动名是:com.mysql.jdbc.Driver)

2.获得连接

3.获得预编译对象,

4.绑定参数。

5.执行sql

6.获得结果集,遍历得出结果。

7.关闭连接。

说明这里用的是mysql数据库:数据库名如下所示:

代码如下所示:

 1 package com.qls.mybatis.first;
 2
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.PreparedStatement;
 6 import java.sql.ResultSet;
 7 import java.sql.SQLException;
 8
 9 public class CrudJDBCTest {
10
11     /**
12      * 使用原生态的jdbc进行数据库连接。
13      * @throws SQLException
14      */
15     public static void main(String[] args) throws SQLException {
16         // TODO Auto-generated method stub
17         //Connection 接口,与特定数据库的连接。
18         Connection connection=null;
19         //预编译对象
20         PreparedStatement preparedStatement=null;
21         //结果集
22         ResultSet resultSet=null;
23         try {
24             //加载驱动:这里加载的是mysql驱动。mysql的驱动是:com.mysql.jdbc.Driver
25             Class.forName("com.mysql.jdbc.Driver");
26             /**
27              * wms-elite本机测试版是连接的数据库名
28              * root:是用户名。
29              * a123456:是密码。
30              */
31             connection=DriverManager.getConnection(
32                     "jdbc:mysql://localhost:3306/wms-elite本机测试版?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true",
33                     "root", "a123456");
34             //获取PreparedStatement对象:
35             String sql="SELECT *from user where address=?";
36             preparedStatement=connection.prepareStatement(sql);
37             //绑定参数:
38             preparedStatement.setString(1, "北京市");
39             //执行查询,查询出结果。
40             resultSet=preparedStatement.executeQuery();
41             while(resultSet.next()){
42                 System.out.println("用户名是:"+resultSet.getString("username")+"\n"+"性别是:"+resultSet.getString(4));
43             }
44         } catch (Exception e) {
45             e.printStackTrace();
46         }finally{
47             /**
48              * 关闭数据库连接。
49              * 关闭的顺序是:ResultSet,PreparedStatement,Connection.
50              */
51             if (resultSet!=null) {
52
53                 resultSet.close();//关闭结果集
54             }
55             if (preparedStatement!=null) {
56
57                 preparedStatement.close();//关闭预编译对象
58             }
59             if (connection!=null) {
60
61                 connection.close();//关闭连接。
62             }
63
64         }
65     }
66
67 }/*output:
68 用户名是:张三
69 性别是:1
70 *///:~

上面的代码基本上对重要的语句都进行了注释。输出结果:

用户名是:张三
69 性别是:1见下图所示:

				
时间: 2024-10-24 13:43:49

使用jdk中的java.sql包中的方法进行jdbc连接的相关文章

1.java.io包中定义了多个流类型来实现输入和输出功能,

1.java.io包中定义了多个流类型来实现输入和输出功能,可以从不同的角度对其进行分 类,按功能分为:(C),如果为读取的内容进行处理后再输出,需要使用下列哪种流?(G)   A.输入流和输出流 B.字节流和字符流 C.节点流和处理流   D.File stream E.Pipe stream F.Random stream G.Filter stream

Java io包中特殊的抽象类FilterReader和FilterWriter实践

刚才在看帮助文档的时候,发现Java io包中FilterReader和FilterWriter类没使用过,所以想实践一下. 还用以前的老方法,new一个出来,结果提示有错误: Cannot instantiate the type FilterReader 不能实例化? 一查帮助文档原来这样写道: public abstract class FilterReader extends Reader Abstract class for reading filtered character str

mybatis中的java.sql.SQLException: ORA-00942: 表或视图不存在

java.sql.SQLException: ORA-00942: 表或视图不存在这个问题花了我长时间 首先说明这个是在oracle数据库中使用mybatis操作数据库的 导致这个错误的原因的可能是 1.你的sql语句有错,将你的sql语句放到命令行下执行,用户名和密码需要与配置文件中的一致: 2.检查你的权限是否满足: 3.如果你的sql语句在pl/sql中能够运行,但是你的命令行中不能运行,则是你的访问权限问题,必须保证你的配置文件的用户名和密码在你的命令行中一致才能访问同样的表,plsql

关于java同步包中ConcurrentLinkedQueue类的深入分析与理解

一,官方描述 一个基于连接节点的无界线程安全队列.这个队列的顺序是先进先出.队列头部的元素是留在队列中时间最长的,队列尾部的元素是留在队列中时间最短的.新元素被插入到元素的尾部,队列从队列的头部检索元素.当许多线程共享访问同一个集合时,这个类是不二选择.这个队列不允许有null元素. 这个实现基于一种被描述为简单,快速,实用的非阻塞和阻塞公布队列算法而提供的一种有效的空闲等待算法. 注意,不像大多数集合,size方法的操作不是常量时间的,由于是异步队列,决定了元素的数量需要遍历真个元素集. 这个

java学习--java.lang包中常用的类

java.lang包中的类是不需要import的 基本数据类型的包装类 包装类的使用相差不大,使用方法则以Integer为例 属性: MAX_VALUE 最大值 MIN_VALUE 最小值 构造方法: Integer t1 = new Integer(123); 将int构造成Integer Integer t2 = new Integer("1234"); 将数字字符串构造成Integer Integer t3 = 12345; 包装类与其对应的基本数据类型的区别是,包装类型所占用的

Java日期时间API系列8-----Jdk8中java.time包中的新的日期时间API类的LocalDate源码分析

目录 0.前言 1.TemporalAccessor源码 2.Temporal源码 3.TemporalAdjuster源码 4.ChronoLocalDate源码 5.LocalDate源码 6.总结 0.前言 通过前面Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类中主要的类关系简图如下: 可以看出主要的LocalDate, LocalTime, LocalDateTime, Instant都是实现相同的接口,这里以LocalDate为例分析jav

Java日期时间API系列11-----Jdk8中java.time包中的新的日期时间API类,使用java8日期时间API重写农历LunarDate

通过Java日期时间API系列7-----Jdk8中java.time包中的新的日期时间API类的优点,java8具有很多优点,现在网上查到的农历转换工具类都是基于jdk7及以前的类写的,下面使用java新的日期时间API重写农历LunarDate. package com.xkzhangsan.time; import java.time.Instant; import java.time.LocalDate; import java.time.LocalDateTime; import ja

Java日期时间API系列13-----Jdk8中java.time包中的新的日期时间API类,时间类转换,Date转LocalDateTime,LocalDateTime转Date

从前面的系列博客中可以看出Jdk8中java.time包中的新的日期时间API类设计的很好,但Date由于使用仍非常广泛,这就涉及到Date转LocalDateTime,LocalDateTime转Date.下面是时间类互相转换大全,包含Instant.LocalDate.LocalDateTime.LocalTime和Date的相互转换,下面是一个工具类,仅供参考: package com.xkzhangsan.time.converter; import java.time.Instant;

Java日期时间API系列17-----Jdk8中java.time包中的新的日期时间API类,java日期计算4,2个日期对比,获取相差年月日部分属性和相差总的天时分秒毫秒纳秒等

通过Java日期时间API系列9-----Jdk8中java.time包中的新的日期时间API类的Period和Duration的区别 ,可以看出java8设计非常好,新增了Period和Duration类,专用于对比2个时间场景: Period,可以获取2个时间相差的年月日的属性. Duration,可以获取2个时间相差总的天时分秒毫秒纳秒. 下面应用: /** * 获取2个日期的相差年月天的年数部分 * @param startInclusive * @param endExclusive