一SQL查询

练习:

1.在grade表中查找80-90分的学生学号和分数

select studentid 学号,score 分数 form grade where socre between 80 and 90

2.在grade 表中查找课程编号为003学生的平均分

select AVG(score) from grade where couuseid='003'

3.在grade 表中查询学习各门课程的人数

select courseid ,COUNT(score) from grade GROUPBYcourseid;

4.查询所有姓张的学生的学号和姓名

select studentid ,studentname from grade where studentname like '张'

5.查询分数在80-90分的学生的学号、姓名、分数

select s.studentid,s.studentname,g.score from student s ,grade g

where s.studentid=g.studentid and g.score BETWEEN 80 AND 90

6.查询学习了'物理'课程的学生学号、姓名和分数

select s.studentid,s.studentname,g.socre from student s,grade g,course c

where s.studentid=g.studentid AND c.courseid=g.courseid AND c.courseName='物理'

注;from student s 这里面的s是表的别名

s.studentid=g.studentid 这个是多表链接

select studentid 学号,score 分数 别名

二 独立实现JDBCUtils获取链接

三独立实现JDBCUtils关闭资源

四独立实现JDBCUtils查询

五独立实现JDBCUtils 更新方法

localhost 不经过防火墙,不过网卡

127.0.0.0

用静态代码块加载JDBC驱动

static{

Class.forName("com.mysql.jdbc.Driver") ;

}

使用JDBC连接URL(协议:子协议:数据源标示)

private static String url="jdbc:mysql://localhost:3306/sqlDemo?useUnicode=true&characterEncoding=UTF8"

创建Connection数据库连接

String url="jdbc:mysql://localhost:3306/test";

String username="root";

Sting password ="root"

Connection conn=DriverManager.getConnection(url,user,password);

创建Statement声明

PreparedStatement pst=conn.prepareStatement(sql);

创建ResultSet结果集

ResultSet rs=pst.excuteQuery();

使用ResultSet结果集,访问查询到的数据

while(rs.next()){

String name=rs.getString("name");

String pass=rs.getString(1);

}

关闭资源,跟声明顺序相反

关闭结果集,关闭声明,关闭连接

rs.close();

pst.close();

conn.clost();

练习

写出一条sql语句查询在2015年10月12日——2015年10月18日之间有请假记录的学生名单(只要在这个时间之内有请假状态都算,即如果学生在10月10日-10月13日请假也符合要求,注意,只要两个时间段有交叉就应该查出来)

1.select *  from qingjia where startTime>"20151012" AND endTime<"20151015"

2.JDBC常用接口及其用法;

1.Connection :特定数据库连接

2.Statement:用于执行静态SQL语句并返回它所生成结果的对象

3.PreparedStatement:表示预编译的SQL语句的对象

ResultSet:表示数据库结果集的数据表

JDBC重用类及其方法

DriverManager类用于管理JDBC驱动

Class.forname(driver)加载驱动

return DriverManager.getConnection(url,username,password);

Connection 类,用于程序和数据库的连接

PreparedStatement 类:预编译SQL语句的对象

ResultSet类:存储查询数据库的结果

3.//插入一万条数据,一次插入1000条

import java.io.BufferedReader;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStreamReader;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.Scanner;

public class Student {

public static void main(String[] args) {

FileInputStream fis=null;

InputStreamReader reader=null;

BufferedReader buffreader=null;

Connection conn=null;

PreparedStatement ps=null;

try{//字节

fis=new FileInputStream("D:\\QingJia.csv");

//字符

reader=new InputStreamReader(fis);

//缓存,可以一行一行的读

buffreader=new BufferedReader(reader);

buffreader.readLine();//丢弃第一行

conn=JDBCUtils.getConnection();

conn.setAutoCommit(false);

//在一个连接中

ps=conn.prepareStatement("insert into QingJia(StudentID,StartTime,EndTime,Reason)");

String line;

int count=0;

while((line=buffreader.readLine())!=null){

//分隔成数组

String[]segments=line.split(",");

ps.clearParameters();

ps.setString(1, StudentID);

ps.setString(2, StartTime);

ps.setString(3, EndTime);

ps.setString(4, Reason);

//批量提交

ps.addBatch();

count++;

if(count%1000==0){

ps.executeBatch();

}

}

ps.executeBatch();

conn.commit();

System.out.println("导入成功");

} catch(SQLException se){

System.out.println("SQL异常"+se);

}catch(IOException ex){

}finally{

JDBCUtils.close(conn);

//和创建的顺序相反

IOUtils.closeQuietly(buffreader);

IOUtils.closeQuietly(reader);

IOUtils.closeQuietly(fis);       }  }

public static void rollback(Connection conn){

try {

conn.rollback();

} catch (SQLException e) {

System.out.println("回滚");   }

}

}

poi解析数据库到excel文件

数据库基础和JDBC的更多相关文章

  1. Java数据库基础(JDBC)

    JDBC(Java Data Base Connectivity):SUN公司为了简化统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC: 这样应用程序就不需要关注数据库底层的详细 ...

  2. JDBC连接MySQL数据库基础

    主要内容 MySQL的基本操作和基本SQL语法 使用JDBC进行MySQL数据库的开发 使用DriverManager.Connection.PreparedStatement.ResultSet对数 ...

  3. Java面试题精选(二)线程编程、数据库理论和Jdbc部分

    —— 线程编程.数据库理论和Jdbc部分内容 ——     数据库的开发应用想必是我们日常所碰到最多的知识点了,大致可分为:oracle.MySQL.SQL Server.Hadoop. NoSQL. ...

  4. java基础(11) -JDBC

    java基础(11) -JDBC jdbc 1.装载驱动 载入跟数据库建立连接的驱动 /* sql server: String className ="com.microsoft.sqls ...

  5. JavaSE基础之JDBC

    JavaSE基础之JDBC 1.JDBC 的步骤: ①加载数据库驱动: a.MySQL:com.mysql.jdbc.Driver: b.SQLServer:com.microsoft.jdbc.sq ...

  6. 转 MySQL数据库基础

    http://lib.csdn.net/article/mysql/57883 1 数据库基础 一.数据库与数据库管理系统 1.数据库(DB):存放数据的仓库,从广义来说,数据不仅包括数字,还包括了文 ...

  7. 【Java基础】JDBC简明教程

    目录 1. 常用类 2. JDBC编程步骤 3. 事务处理 4. 数据库连接池 5. JDBC列子代码 6. 使用Apache的JDBC工具类 虽然在平时的开发过程中我们不会直接使JDBC的API来操 ...

  8. 数据库基础,表及SQL语句

    数据库基础及T-SQL语句 字符类型: int 整型 float 小数 double 小数 varchar(20) 字符串 bit 布尔型数据 datetime 日期时间类型 text 长文本 (以下 ...

  9. Oracle 数据库基础——安装

    一.数据库基础知识 1.概念 数据库全称数据库管理系统,简称DBMS,是一种在计算机中,针对数据进行管理.存储.共享的一种技术. 2.分类 数据库的发展过程中,按逻辑模型可分为以下几种: 3.关系型数 ...

随机推荐

  1. CSS常用浮出层的写法

    点此查看实例展示 是的,我们即将实现的就是以上功能,是不是很生动? 贴上HTML: <div class="poptip"> <span class=" ...

  2. 拿什么拯救你,我的代码--c#编码规范实战篇

    此文为译文,原文地址请点击. 本文通过重构一个垃圾代码,阐述了如何写出优秀的代码.开发人员及代码审核人员需按照此规范开发和审核代码.此规范以C#为例,JAVA的童鞋一并参考,C++的童鞋自行脑补吧. ...

  3. ionic 开发笔记

    1.AngularJS 外部的控制器(DOM 事件.外部的回调函数如 jQuery UI 空间等)调用了 AngularJS 函数之后,必须调用$apply.在这种情况下,你需要命令 AngularJ ...

  4. canvas缓动3

    这次缓动的是旋转旋转,写完之后才知道原来rotate是绕原点旋转,而且还带着rect本身的X与Y一起,所以我采用了translate达到位移效果,以免旋转到画布外面去,画完之后效果惨不忍睹,原来是忘记 ...

  5. Android Studio中JNI程序的单步调试和日志打印

    近日有个算法(检测碰撞)需要用C++实现,目的是IOS和ANDROID中共享同一段程序. 下面说说android调用这段程序过程中遇到的一些事情.(过程中网上搜索了一些相关文章,大部分说的是eclip ...

  6. java 部分注解说明(待补充)

    内容 所代表的意思 @RequestMapping(params = "save") @ResponseBody 将内容或对象作为http响应正文返回,并调用适合HttpMessa ...

  7. MYSQL存储过程、游标、触发器

    MySQL5 中添加了存储过程的支持. 大多数SQL语句都是针对一个或多个表的单条语句.并非所有的操作都怎么简单.经常会有一个完整的操作需要多条才能完成  存储过程简单来说,就是为以后的使用而保存的一 ...

  8. 转-ArcGIS Engine中的License设置

    AE开发中的License有两种方法进行设置,一种是通过LicenseControl控件,另一种是通过IAoInitialize接口设置.整个应用程序中只能有一种方式存在,如果进行了两种License ...

  9. 添加删除表格append或 createElement

    方法一: js代码:增加一行五列的表格 function AddList(){ $len= document.getElementsByName('goods_name[]').length; obj ...

  10. Tomcat基本入门知识及发布,虚拟访问及启动碰到的错误,虚拟目录,虚拟路径,各种Tomcat的配置

    Tomcat容器入门介绍 转自javaresearch.com由timgball 整理 Tomcat是一个免费的开源Web服务器,最新版本是5.5.1,支持Servlet2.4,JSP2.0,非常适合 ...