zoukankan      html  css  js  c++  java
  • 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 中的下一行,使下一行成为当前行。

  • 相关阅读:
    安装tensorflow-gpu
    Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
    js,jq获取父,兄弟,子节点整理
    dos 命令
    用JavaScript实现自动点击由confirm弹出的对话框中的“确定”按钮
    解决UnicodeEncodeError: 'gbk' codec can't encode character u'u25aa' in position 344 : illegal multiby
    JS中的document.title可以获取当前网页的标题
    python中的3目运算(3元表达式)
    ajax 怎么重新加载页面
    python win32api 如何用代码模拟点击网页confirm框的确定按钮
  • 原文地址:https://www.cnblogs.com/tushengadbm/p/5492972.html
Copyright © 2011-2022 走看看