如果需要访问数据库,首先要加载数据库驱动,数据库驱动只需在第一次访问数据库时加载一次。然后在每次访问数据库时创建一个Connection实例,获取数据连接,这样就可以执行操作数据库的SQL语句。最后在完成数据库操作时,释放与数据库的连接。

 

一、配置程序——让我们程序能找到数据库的驱动jar包
  1.把.jar文件复制到项目中去。
  2.在eclipse项目右击“构建路径”--“配置构建路径”--“库”--“添加外部jar”--找到数据库的驱动jar包--点击确定。会在左侧包资源管理器中出现“引用的库”,在里面就能找到我们刚才导入的jar包。这个包在这里使用的是Mysql的,这里分享一个下载地址https://pan.baidu.com/s/1bSEBIQ

二、做个数据库和表

三、写我们的程序来调用驱动包的类,对数据进行操作。
  //1.加载数据访问驱动
  Class.forName("com.mysql.jdbc.Driver");
  Mysql中的加载驱动位置是在引用的库中的com.mysql.jdbc下的Driver。

  //2.连接到数据"库"上去
  Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mydb?characterEncoding=GBK","root","");

  这里的jdbc:mysql://127.0.0.1:3306/mydb?characterEncoding=GBK是代表Mysql的Url地址。

  //3.构建执行SQL命令.....
  Statement state = conn.createStatement();
  state.executeUpdate("增删改的sql语句");
  state.executeQuery("查询的sql语句");

  conn.close();

JDBC的常用类和接口:

1.DriverManager类

  DriverManager类用来管理数据库中的所有驱动程序,是JDBC的管理层。作用于用户和驱动程序之间,跟踪可用的驱动程序,并在数据库的驱动程序之间建立连接。

方法 说明
getConnection(String url, String user, String password) 指定三个入口参数,一次是连接数据库的URL、用户名、密码,来获取与数据库的连接。

2.Connection接口

  Connection接口代表与特定的数据库的连接。要对数据表中的数据进行操作。首先要获取数据库连接。Connection实例就像在用用程序和数据库之间开辟的一条通道。

方法 说明
creatStatement() 创建Statement对象
prepareStatement() 创建预处理的prepareStatement对象
commit() 使所有上一次提交、回滚后进行的更改成为持久更改,并释放Connection对象当前持有的所有数据库锁
roolback() 取消在当前事务中进行的所有更改,并释放此Connection对象当前持有的所有数据库锁
close() 立即释放此Connection对象的数据库和JDBC资源,而不是等待它们被自动释放

3.Statement接口

  Statement接口用于创建向数据库中传递SQL语句的对象,该接口提供了一些方法可以实现对数据库的常用操作。

方法 说明
executeQuery() 执行给定的SQL语句,该语句返回单个ResultSet对象
executeUpdate() 执行给定的SQL语句, 该语句为insert into,update或delete语句
close()  释放Statement实例占用的数据库和JDBC资源

4.PreparedStatement接口

  PreparedStatement接口继承Statement,用于执行动态的SQL语句,通过PreparedStatement实例执行的SQL语句,将被预编译并保存到PreparedStatement实例中,从而可以反复地执行该SQL语句。

方法 说明
executeQuery() 在此PreparedStatement对象中执行SQL查询语句,返回结果为查询结果集ResultSet对象
executeUpdate() 在此PreparedStatement对象中执行SQL语句,该SQl语句必须是一个insert、update或者delete语句,或者是没有返回值的DDl语句
setObject(int pIndex,Object o) 将参数pIndex位置上设置为给定的Object型参数值
setString(int pIndex,String str)

将参数pIndex位置上设置为给定的String型参数值

5.ResultSet接口

  ResultSet接口类似于一个临时表,用来暂时存放数据库查询操作所获得的结果集。

方法 说明
getString() 以String形式获取ResultSet对象的当前行的指定列值。如列值是null,则返回null。
next() 将指针向下移一行
updateString() 用指定的String值更新列

  在这里,常用方法没有列举全,getInt(),getFloat(),getDate(),getBoolean(),getObject()都类似于getString()。同理,updateInt(),updateFloat(),updateObject(),updateNull,updateDate(),updateDouble()也是类似于updateString()。也同样适用与4.preparedStatement中的setString这一类。

举个增加数据的栗子:

  1. public static void main(String[] args) throws Exception {
  2. Scanner sc = new Scanner(System.in);
  3. System.out.print("学号:");
  4. String xh =sc.nextLine();
  5. System.out.print("姓名:");
  6. String xm =sc.nextLine();
  7. System.out.print("学校: ");
  8. String xx =sc.nextLine();
  9. // 加载数据访问驱动
  10. Class.forName("com.mysql.jdbc.Driver");
  11. // 连接到数据“库”上去
  12. java.sql.Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mydb?characterEncoding=GBK", "root", "");
  13.  
  14. //构建SQL命令
  15. Statement state =conn.createStatement();
  16. String sql = "insert into xs values('"+xh+"','"+xm+"','"+xx+"')";
  17. state.executeUpdate(sql);
  18. //state.executeUpdate(sql); //增删改
  19. //state.executeQuery(sql); //查询
  20.  
  21. conn.close();
  22.  
  23. }

输入为:

  1. 学号:110
  2. 姓名:王十
  3. 学校: 一中

显示为:

下面再是一个查询数据的例子:

  现有一个info表和nation表

现要把info表中的内容都输出出来,性别以男女区分,民族以nation表中的name显示,birthday用年月日显示:

  1. public static void main(String[] args) throws Exception {
  2. Class.forName("com.mysql.jdbc.Driver");
  3.  
  4. Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mydb?characterEncoding=GBK","root","");
  5.  
  6. String sql ="select * from info";
  7. Statement state = conn.createStatement();
  8. ResultSet rs = state.executeQuery(sql);
  9. while(rs.next()){
  10. System.out.print(rs.getString(1)+"\t");
  11. System.out.print(rs.getString(2)+"\t");
  12. System.out.print(rs.getBoolean(3)?"男\t":"女\t");
  13. System.out.print(MinZu(rs.getString(4))+"\t");
  14. System.out.print(RiQi(rs.getDate(5))+"\n");
  15. }
  16. conn.close();
  17.  
  18. }
  19. public static String MinZu(String mz) throws Exception{
  20. String mzmc="";
  21. Class.forName("com.mysql.jdbc.Driver");
  22.  
  23. Connection conn =DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mydb?characterEncoding=gbk","root","");
  24.  
  25. String sql = "select * from nation where code='"+mz+"'";
  26. Statement state = conn.createStatement();
  27. ResultSet rs = state.executeQuery(sql);
  28. while(rs.next()){
  29. mzmc=rs.getString(2);
  30. }
  31.  
  32. conn.close();
  33. return mzmc;
  34. }
  35. public static String RiQi(Date date){
  36. SimpleDateFormat simple =new SimpleDateFormat("yyyy年MM月dd日");
  37. return simple.format(date);
  38. }

输出结果为:

  1. p001 胡军 满族 19850809
  2. p002 周丹 汉族 19840417
  3. p003 吴倩 苗族 19811029
  4. p004 唐墨 汉族 19830225

Java-jdbc操作数据库的更多相关文章

  1. java jdbc操作数据库通用代码

    1.准备工作 1> 新建一个配置文件,名为jdbc.properties将其放入src中 2>在项目中导入jdbc驱动,注意连接不同的数据库,所用到的驱动是不一样的,这些在网上都能找到 具 ...

  2. Java jdbc 操作数据库详解

    原文地址https://www.cnblogs.com/huguodong/p/5910859.html JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...

  3. Java笔记(第七篇 JDBC操作数据库)

    JDBC是连接数据库和java程序的桥梁,通过JDBC API可以方便地实现对各种主流数据库的操作.学习java语言,必须学习JDBC技术,因为JDBC技术实在java语言中被广泛使用的一种操作数据库 ...

  4. Java基础之原生JDBC操作数据库

    前言 日常开发中,我们都习惯了使用ORM框架来帮我们操作数据库,本文复习.记录Java如何使用原生JDBC操作数据库 代码编写 封装几个简单方法 find查询方法 findOne查询方法 update ...

  5. 用于JDBC操作数据库的公共类

    /* * @(#)CommonSql.java 2011-9-5 * * Copyright 2011 Bianjing,All rights reserved. */ import java.sql ...

  6. JDBC操作数据库的学习(2)

    在上一篇博客<JDBC操作数据库的学习(1)>中通过对例1,我们已经学习了一个Java应用如何在程序中通过JDBC操作数据库的步骤流程,当然我们也说过这样的例子是无法在实际开发中使用的,本 ...

  7. JDBC操作数据库的学习(1)

    单单对数据库的操作,比如说MySQL,我们可以在命令行窗口中执行,但是一般是应用程序要操作数据库,因此我们应该在程序中的代码上体现对数据库的操作,那么使用程序应用如何操作数据库呢?那就要使用到数据库的 ...

  8. JDBC操作数据库的三种方式比较

    JDBC(java Database Connectivity)java数据库连接,是一种用于执行上sql语句的javaAPI,可以为多种关系型数据库提供统一访问接口.我们项目中经常用到的MySQL. ...

  9. Spark Streaming通过JDBC操作数据库

    本文记录了学习使用Spark Streaming通过JDBC操作数据库的过程,源数据从Kafka中读取. Kafka从0.10版本提供了一种新的消费者API,和0.8不同,因此Spark Stream ...

  10. Spring入门(十五):使用Spring JDBC操作数据库

    在本系列的之前博客中,我们从没有讲解过操作数据库的方法,但是在实际的工作中,几乎所有的系统都离不开数据的持久化,所以掌握操作数据库的使用方法就非常重要. 在Spring中,操作数据库有很多种方法,我们 ...

随机推荐

  1. 【小程序分享篇 二 】web在线踢人小程序,维持用户只能在一个台电脑持登录状态

    最近离职了, 突然记起来还一个小功能没做, 想想也挺简单,留下代码和思路给同事做个参考. 换工作心里挺忐忑, 对未来也充满了憧憬与担忧.(虽然已是老人, 换了N次工作了,但每次心里都和忐忑). 写写代 ...

  2. setTimeout 的黑魔法

    setTimeout,前端工程师必定会打交道的一个函数.它看上去非常的简单,朴实.有着一个很不平凡的名字--定时器.让年少的我天真的以为自己可以操纵未来.却不知朴实之中隐含着惊天大密.我还记得我第一次 ...

  3. Yeoman 官网教学案例:使用 Yeoman 构建 WebApp

    STEP 1:设置开发环境 与yeoman的所有交互都是通过命令行.Mac系统使用terminal.app,Linux系统使用shell,windows系统可以使用cmder/PowerShell/c ...

  4. Http请求

    HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的.HTTP有两类报文:请求报文和响应报文. 请求报文 一个HTTP请求报文由请求行(request line ...

  5. Angularjs参考框架地址

    1.Table(Grid)参考地址 https://github.com/samu/angular-table https://github.com/daniel-nagy/md-data-table ...

  6. SymmetricDS 快速和灵活的数据库复制

    开始谈谈开源的SymmetricDS,谈谈实际使用中,遇到的一些问题和解决办法.持续更新: SymmetricDS 快速和灵活的数据库复制 实际使用 和 埋过的坑 (一)知识篇 SymmetricDS ...

  7. Mysql - 增删改

    因为项目原因, mysql用了两年了, 但是一直都未曾去总结过. 最近也是领导让总结项目, 才想起把mysql的使用小结一下. 一. Create 1. 单条插入, sql格式: insert int ...

  8. ubuntu15.04 nginx1.6.5 配置虚拟主机

    1 在/etc/hosts   添加host 2 在/etc/nginx/nginx.conf中查看http里的include ****** /*.conf的路径,在此路径下添加一个新的******. ...

  9. Linux实战教学笔记06:Linux系统基础优化

    第六节 Linux系统基础优化 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 基础环境 第2章 使用网易163镜像做yum源 默认国外的yum源速度很慢,所以换成国内的. 第一步:先备份 ...

  10. QDEZ集训笔记【更新中】

    这是一个绝妙的比喻,如果青岛二中的台阶上每级站一只平度一中的猫,差不多站满了吧 自己的理解 [2016-12-31] [主席树] http://www.cnblogs.com/candy99/p/61 ...