当前位置: 首页 > news >正文

JAVA数据库编程

1,关系型数据库简介

  关系模型是由Codd提出,它是考虑数据和数据间关系而得到的数据逻辑模型 。

  一个关系型数据库通常由一个或多个表格的对象组成,数据库中的所有数据都被保存在这些表中。所有表都有一个表名,包含行和列,每列包含该列的名称,数据类型以及其他属性。而每一行则包含某列的具体数值。

2,SQL语句

  创建表格

例,创建student表,包含姓名和年龄。

create table  if not exists student(

id int primary key auto_increment,

stu_name varchar(20),

stu_age samllInt

);

其中if not exists 为保护语句,如果有student表存在也不会报错。primary key 为主键。auto_increment为主键自增长。

  删除表格注意:这里不用delete,delete是用于删除数据。)

drop table student;

  查询数据

例:select * from student;(查询student表里的所有数据)

  select name from student;(查询student表里name列的数据)

  select * from student where age>20;(查询student表里年龄大于20 的人的数据)

  向表中插入数据

例:有学生zhangsan,年龄为18

insert into student(name,age) values(‘zhangsan’,18);

3,Java数据库连接

JDBC简介
    JDBC是Java DataBase Connection的简称,是一种用Java实现的数据库接口技术
JDBC由两层组成。
    上面一层是JDBC API,负责与Java应用程序通信,向Java应用程序提供数据(Java应用程序通过JDBC中提供的相关来管理JDBC的驱动程序)。
    下面一层是JDBC Driver API,主要负责和具体数据环境的连接。

如图所示:

 

用JDBC连接数据库
    建立数据源
    加载Java应用程序所用的数据库的驱动程序。在这里你可以选择前面讲的三种方法中的一种。
    建立连接 
    与数据库建立连接的标准方法是调用方法:
    Drivermanger.getConnection(String url,String user,String password)。
        Drivermanger类用于处理驱动程序的调入,并且对新的数据库连接提供支持 
    执行SQL语句  

package com.wode.test;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;


public class Test01 {
  public static void main(String[] args) {
    Properties properties=new Properties();

    try {
        properties.load(new FileInputStream("./src/user.properties"));
        String name=properties.getProperty("name");
        String pwd=properties.getProperty("pwd");
        String url=properties.getProperty("url");
        Class.forName("com.mysql.jdbc.Driver");//通过反射获得mysql驱动
        Connection con=DriverManager.getConnection(url,name,pwd);//通过驱动管理器连接数据库
        String sql="select * from student";//准备SQL语句
        Statement st=con.createStatement();//发送SQL语句
        ResultSet rst=st.executeQuery(sql);//接收结果集
       while(rst.next()){
        String userName=rst.getString("name");
        System.out.println(userName);
                }
      } catch (ClassNotFoundException e) {
          // TODO Auto-generated catch block
              e.printStackTrace();
      } catch (SQLException e) {
          // TODO Auto-generated catch block
              e.printStackTrace();
      } catch (FileNotFoundException e) {
          // TODO Auto-generated catch block
              e.printStackTrace();
      } catch (IOException e) {
          // TODO Auto-generated catch block
              e.printStackTrace();
    }
  }
}

DriverManager
    DriverManager 类是 JDBC 的管理层,作用于用户和驱动程序之间。它在数据库和相应驱动程序之间建立连接 
    DriverManager 类包含一列 Driver 类,它们已通过调用方法DriverManager.registerDriver对自己进行了注册 
    例:Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
        String url = "jdbc:odbc:company";
           Connection con=
                   DriverManager.getConnection(url, "userID", "passwd");
Statement 
    Statement 对象用于将 SQL 语句发送到数据库中 
    例:
    Connection con = DriverManager.getConnection(url,"userID","passwd"); 
    Statement stmt = con.createStatement(); 
    ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table2"); 
ResultSet
    ResultSet 包含符合 SQL 语句中条件的所有行,
    它通过一套 get 方法提供了对这些行中数据的访问 
    ResultSet.next 方法用于移动到 ResultSet 中的下一行,使下一行成为当前行。

转载于:https://www.cnblogs.com/tushengadbm/p/5492972.html

相关文章:

  • DEDECMS之三 首页、列表页怎么调用文章内容
  • 在opencv中实现中文输出
  • 使用wget下载xcode
  • Java接口中的字段
  • jar包启动与停止
  • 怎么使用微信JSSDK的自定义分享功能
  • YII学习
  • 因为安迪的一句话,这2万5千人凭空多出9亿财富!_财经_腾讯网
  • Ant编译Hadoop 1.0.3的eclipse-plugin插件包
  • [译]使用jquery.cookie操作Cookie说明
  • Linux下Nginx源码安装
  • PHP之路——MySql基础操作语句
  • windows下读取Linux分区软件
  • Angular.js Services
  • 折腾Openoffice---解决中文和注册问题(原创)
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • Javascripit类型转换比较那点事儿,双等号(==)
  • Linux后台研发超实用命令总结
  • markdown编辑器简评
  • pdf文件如何在线转换为jpg图片
  • python学习笔记 - ThreadLocal
  • select2 取值 遍历 设置默认值
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • Webpack 4 学习01(基础配置)
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 前端知识点整理(待续)
  • 物联网链路协议
  • 学习ES6 变量的解构赋值
  • 一天一个设计模式之JS实现——适配器模式
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • 阿里云ACE认证之理解CDN技术
  • 交换综合实验一
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • #每日一题合集#牛客JZ23-JZ33
  • ${factoryList }后面有空格不影响
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (二)JAVA使用POI操作excel
  • (利用IDEA+Maven)定制属于自己的jar包
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)http协议
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .net 7 上传文件踩坑
  • .net mvc部分视图
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .net生成的类,跨工程调用显示注释
  • [ C++ ] STL---仿函数与priority_queue
  • [AutoSar]工程中的cpuload陷阱(三)测试