唯倚社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 224|回复: 5

配置数据库连接及数据库操作

[复制链接]

59

主题

169

帖子

754

积分

版主

Rank: 7Rank: 7Rank: 7

积分
754
发表于 2017-9-16 17:40:27 | 显示全部楼层 |阅读模式

轻松玩转社区

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

主外键说明:
  主键:是表中一行的一个唯一标识,通过主键我们可以快速的查询一条数据!
  主键特性:唯一(unique),not null,可以被引用!

表的关联:
  1.一对一
 

  2.一对多
    经典案例:部门和员工的关系:一个部门有多个员工,但是一个员工只能在一个部门中
    对于一对多的关系表:我们通常是在多的一端维护一个外键,这个外键指向一的主键

    CREATE TABLE dept(
    dept_id INT PRIMARY KEY AUTO_INCREMENT,
    dept_name VARCHAR(50)
    )

    CREATE TABLE employee(
    id INT PRIMARY KEY AUTO_INCREMENT,
    NAME VARCHAR(50),
    dept_id INT,
    FOREIGN KEY(dept_id) REFERENCES dept(dept_id)
    )

    SHOW TABLES;
    INSERT INTO dept VALUES(NULL,"后勤部")
    SELECT * FROM dept;
    INSERT INTO employee VALUES(NULL,"郭富城",4)
    SELECT * FROM employee
    DELETE FROM employee WHERE id = 4;
  3.多对多
    经典案例:老师和学生,选课
    单表查询:
      SELECT SUM(score),id
      FROM stu
      WHERE id > 2
      GROUP BY snum
      HAVING SUM(score) > 90
      ORDER BY id ASC
      LIMIT 1,2;
    多表查询

      纵向连接(union ,union all)
        select name from stu1
        UNION all
        select name from stu2
      注意:union会对数据进行过滤,保证数据唯一,而union all不会对数据进行
      横向连接
        join on来完成横向连接
        inner join :只会显示满足条件的数据
        select * from ( person p) inner join (orders o) on p.id = o.oid

           1)左向外联接:LEFT  JOIN或LEFT OUTER JOIN     
      左向外联接的结果集包括  LEFT OUTER子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
       select   a.*,b.*   from   a   left   join   b     on   a.id=b.parent_id  

          2)右向外联接:RIGHT  JOIN 或 RIGHT  OUTER  JOIN     
      右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。
      select   a.*,b.*   from   a   right   join   b     on   a.id=b.parent_id      

          3)完整外部联接:FULL  JOIN 或 FULL OUTER JOIN
       完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。   
      select   a.*,b.*   from   a   full   join   b     on   a.id=b.parent_id

jdbc简介
  通过jdbc连接数据库的基本步骤
    导入jar包驱动类
    jdbc语法:jdbc:子协议:厂商内容
    对于mysql而言:?jdbc:mysql://主机地址:端口号/库名
             ?        jdbc:mysql://localhost:3306/test


  jdbc获取数据库连接:
    //准备四个参数

    //加载数据库驱动类

    //利用DriverManager的getConnection方法获取数据库连接

    示例代码:

[Java] 纯文本查看 复制代码
package com.neuedu.manage.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCUtil {
    
      private static Connection connection=null;
      private static String url="jdbc:mysql://localhost:3306/republic";
      private static String username="root";
      private static String password="123456";
      private static String driverClass="com.mysql.jdbc.Driver";
    
    public Connection getConnection(){
        try {
            Class.forName(driverClass);
            connection = DriverManager.getConnection(url, username, password);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return connection;
    }
    
    public static void close(Connection con,Statement statement,ResultSet rSet){
        if(rSet!=null){
            try {
                rSet.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(statement!=null){
            try {
                statement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(con!=null){
            try {
                con.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }   CREATE TABLE `husband` (    `id` INT(11) PRIMARY KEY AUTO_INCREMENT,    `hname` VARCHAR(50)    )     DROP TABLE wife;     SELECT * FROM wife     CREATE TABLE `wife` (    `id` INT(11) PRIMARY KEY,    `wname` VARCHAR(50),    FOREIGN KEY(id) REFERENCES husband(id)    )     INSERT INTO husband VALUES(NULL,"武大郎");    INSERT INTO wife VALUES(1,"潘金莲")     SELECT * FROM husband;    SELECT * FROM wife;    INSERT INTO wife VALUES(2,"xi");
}




[发帖际遇]: 芒果酱 捡了钱没交公 成长 降了 2 . 幸运榜 / 衰神榜

1

主题

100

帖子

79

积分

版主

Rank: 7Rank: 7Rank: 7

积分
79
发表于 2017-9-23 00:35:31 | 显示全部楼层
我就看看
回复

使用道具 举报

132

主题

302

帖子

3693

积分

LV3

Rank: 3Rank: 3

积分
3693

最佳新人

发表于 2017-9-23 19:39:38 | 显示全部楼层
卧槽,我居然看完了
回复

使用道具 举报

33

主题

160

帖子

434

积分

版主

Rank: 7Rank: 7Rank: 7

积分
434
发表于 2017-9-23 20:20:18 | 显示全部楼层
不怕神一样的对手,就怕猪一样的队友
回复

使用道具 举报

35

主题

176

帖子

2383

积分

LV3

Rank: 3Rank: 3

积分
2383
发表于 2017-9-23 21:05:11 | 显示全部楼层
不求风骚惊天下,但求猥琐动世人!
回复

使用道具 举报

1

主题

100

帖子

79

积分

版主

Rank: 7Rank: 7Rank: 7

积分
79
发表于 2017-9-23 21:22:47 | 显示全部楼层
白领算个屁,养猪才洋气
回复

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|weiecn ( 湘ICP备14002058号 )

GMT+8, 2018-10-23 10:00 , Processed in 0.106278 second(s), 20 queries , Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表