使用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数据库:数据库名如下所示:

代码如下所示:
package com.qls.mybatis.first; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; public class CrudJDBCTest { /**
* 使用原生态的jdbc进行数据库连接。
* @throws SQLException
*/
public static void main(String[] args) throws SQLException {
// TODO Auto-generated method stub
//Connection 接口,与特定数据库的连接。
Connection connection=null;
//预编译对象
PreparedStatement preparedStatement=null;
//结果集
ResultSet resultSet=null;
try {
//加载驱动:这里加载的是mysql驱动。mysql的驱动是:com.mysql.jdbc.Driver
Class.forName("com.mysql.jdbc.Driver");
/**
* wms-elite本机测试版是连接的数据库名
* root:是用户名。
* a123456:是密码。
*/
connection=DriverManager.getConnection(
"jdbc:mysql://localhost:3306/wms-elite本机测试版?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true",
"root", "a123456");
//获取PreparedStatement对象:
String sql="SELECT *from user where address=?";
preparedStatement=connection.prepareStatement(sql);
//绑定参数:
preparedStatement.setString(1, "北京市");
//执行查询,查询出结果。
resultSet=preparedStatement.executeQuery();
while(resultSet.next()){
System.out.println("用户名是:"+resultSet.getString("username")+"\n"+"性别是:"+resultSet.getString(4));
}
} catch (Exception e) {
e.printStackTrace();
}finally{
/**
* 关闭数据库连接。
* 关闭的顺序是:ResultSet,PreparedStatement,Connection.
*/
if (resultSet!=null) { resultSet.close();//关闭结果集
}
if (preparedStatement!=null) { preparedStatement.close();//关闭预编译对象
}
if (connection!=null) { connection.close();//关闭连接。
} }
} }/*output:
用户名是:张三
性别是:1
*///:~
上面的代码基本上对重要的语句都进行了注释。输出结果:
用户名是:张三
69 性别是:1
见下图所示:

使用jdk中的java.sql包中的方法进行jdbc连接的更多相关文章
- java.io包中的字节流—— FilterInputStream和FilterOutputStream
接着上篇文章,本篇继续说java.io包中的字节流.按照前篇文章所说,java.io包中的字节流中的类关系有用到GoF<设计模式>中的装饰者模式,而这正体现在FilterInputStre ...
- 1.java.io包中定义了多个流类型来实现输入和输出功能,
1.java.io包中定义了多个流类型来实现输入和输出功能,可以从不同的角度对其进行分 类,按功能分为:(C),如果为读取的内容进行处理后再输出,需要使用下列哪种流?(G) A.输入流和输出流 B ...
- 集合框架的类和接口均在java.util包中。 任何对象加入集合类后,自动转变为Object类型,所以在取出的时候,需要进行强制类型转换。
集合框架的类和接口均在java.util包中. 任何对象加入集合类后,自动转变为Object类型,所以在取出的时候,需要进行强制类型转换.
- Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类
因为Jdk7及以前的日期时间类的不方便使用问题和线程安全问题等问题,2005年,Stephen Colebourne创建了Joda-Time库,作为替代的日期和时间API.Stephen向JCP提交了 ...
- Java日期时间API系列13-----Jdk8中java.time包中的新的日期时间API类,时间类转换,Date转LocalDateTime,LocalDateTime转Date等
从前面的系列博客中可以看出Jdk8中java.time包中的新的日期时间API类设计的很好,但Date由于使用仍非常广泛,这就涉及到Date转LocalDateTime,LocalDateTime转D ...
- Java日期时间API系列19-----Jdk8中java.time包中的新的日期时间API类,ZonedDateTime与ZoneId和LocalDateTime的关系,ZonedDateTime格式化和时区转换等。
通过Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类中时间范围示意图:可以很清晰的看出ZonedDateTime相当于LocalDateTime+ZoneI ...
- Java日期时间API系列8-----Jdk8中java.time包中的新的日期时间API类的LocalDate源码分析
目录 0.前言 1.TemporalAccessor源码 2.Temporal源码 3.TemporalAdjuster源码 4.ChronoLocalDate源码 5.LocalDate源码 6.总 ...
- Java日期时间API系列11-----Jdk8中java.time包中的新的日期时间API类,使用java8日期时间API重写农历LunarDate
通过Java日期时间API系列7-----Jdk8中java.time包中的新的日期时间API类的优点,java8具有很多优点,现在网上查到的农历转换工具类都是基于jdk7及以前的类写的,下面使用ja ...
- Java日期时间API系列12-----Jdk8中java.time包中的新的日期时间API类,日期格式化,常用日期格式大全
通过Java日期时间API系列10-----Jdk8中java.time包中的新的日期时间API类的DateTimeFormatter, 可以看出java8的DateTimeFormatter完美解决 ...
随机推荐
- VMware中Ubuntu开机时停在启动界面,不进入X-window的解决办法
启动Ubuntu虚拟机时,停在这个画面不动: 试了若干次,都是这样.尝试了新建一个虚拟机然后把.vmdk文件拷过去启动,无法解决. 尝试重启,在这个界面按esc进入grub: 选择恢复模式 recov ...
- .NET领域驱动设计系列(12)
[.NET领域驱动设计实战系列]专题十一:.NET 领域驱动设计实战系列总结 摘要: 一.引用 其实在去年本人已经看过很多关于领域驱动设计的书籍了,包括Microsoft .NET企业级应用框架设计. ...
- js开发中常用小技巧
1.获取指定范围内的随机数 function getRadomNum(min,max){ return Math.floor(Math.random() * (max - min + 1)) + mi ...
- Python学习之set集合
set集合以{}保存一组可迭代对象,如列表,字符串,set集合本身.集合内的元素若有重复的,将自动去除重复元素 a=set([1,2,3]) print(a) b=set('hello python' ...
- js调用js的方法
a.js文件调用b.js文件时,需要在a.js的第一行添加代码 document.write(" <script language=\"javascript\" s ...
- android singleTop 不起作用
今天,排查问题,发现设置了singleTop 的activity, 多次启动依然是多个acitivity,而不是一个. 明明在清单里面设置了,但是就是启动了多个. 可能是因为启动的太快,导致系统判断有 ...
- Android启动屏全屏显示
1.为首页面设置一个theme <style name="app_start" > <item name="android:windowNoTitle& ...
- loj2472 「九省联考 2018」IIIDX
ref #include <algorithm> #include <iostream> #include <cstdio> using namespace std ...
- python学习笔记十二:类的定义
demo #!/usr/bin/python class Person: name = 'jim' age = 25 def say(self): print 'My name is ' + self ...
- chromedriver版本支持的Chrome版本
下载chromedriver,链接:http://chromedriver.storage.googleapis.com/index.html chromedirver版本 支持的Chrome版本 ...