JDBC帮助类

  

package work;

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

public class DBHelp {

/**
* 建立与数据库连接
* 1.加载驱动
* 2.建立连接
*/
public static Connection lianjie(){

//驱动
final String Driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

//数据库url jdbc:sqlserver://localhost:1433;DataBase=Pet",
String url = "jdbc:sqlserver://localhost:1433;Database=work";

//数据库用户名
String name = "sa";

//数据库密码
String pas = "123456";

Connection con = null;

try{
Class.forName(Driver);

con = DriverManager.getConnection(url,name,pas);
}catch(SQLException s){
s.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}

return con;
}

}

Student类

package work;

public class Student {

private String StudentNo;
private String name;
private String ClassName;
private int age;
private String Address;

//封装入口出口
public String getStudentNo() {
return StudentNo;
}
public void setStudentNo(String studentNo) {
StudentNo = studentNo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getClassName() {
return ClassName;
}
public void setClassName(String className) {
ClassName = className;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return Address;
}
public void setAddress(String address) {
Address = address;
}

}

Work类】

package work;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

public class work {

public static List<Student> getAll() throws SQLException{

//创建ArrayList集合
List<Student> list = new ArrayList<Student>();

Connection con = DBHelp.lianjie();

Statement st = con.createStatement();

//sql语句
String sql = "select s.StudentID,s.StudentName,c.ClassName,s.Age,S.Address from Student as s inner join Class as c on s.ClassID = c.ClassID";

ResultSet rs = st.executeQuery(sql);

while(rs.next()){

//实例化一个学生
Student stu = new Student();

stu.setStudentNo(rs.getString(1));
stu.setName(rs.getString(2));
stu.setClassName(rs.getString(3));
stu.setAge(rs.getInt(4));
stu.setAddress(rs.getString(5));

list.add(stu);
}

rs.close();
st.cancel();
con.close();

return list;

}

public static Map<String, Student> getClassInfo() throws SQLException{

//创建Map集合
Map<String, Student> map = new HashMap<String, Student>();

//获取与数据库连接
Connection con = DBHelp.lianjie();

//sql
String sql = "select s.StudentID,s.StudentName,c.ClassName,s.Age,S.Address from Student as s inner join Class as c on s.ClassID = c.ClassID";

//建立起程序和数据库的命令桥梁 预编译
PreparedStatement ps = con.prepareStatement(sql);

ResultSet rs = ps.executeQuery();

while(rs.next()){
Student stu = new Student();
stu.setStudentNo(rs.getString(1));
stu.setName(rs.getString(2));
stu.setClassName(rs.getString(3));
stu.setAge(rs.getInt(4));
stu.setAddress(rs.getString(5));

map.put(rs.getString(1), stu);
}
rs.close();
ps.close();
con.close();

return map;
}

//打印方法
public static void show() throws SQLException{

System.out.println("欢迎进入学生查询系统:");
System.out.println("1.查询学生所有信息(使用ArrayList)\t2.查询学生所有信息(使用HashMap)");

Scanner input = new Scanner(System.in);
System.out.println("请选择:");

if(input.nextInt()==1){

List<Student> list = getAll();

//迭代器遍历
Iterator<Student> i = list.iterator();

System.out.println("一共有:"+list.size()+"个学生!");

System.out.println("学号\t名字\t班级\t年龄\t地址");

while(i.hasNext()){
Student stu = i.next();

System.out.println(stu.getStudentNo()+"\t"+stu.getName()+"\t"+stu.getClassName()+"\t"+stu.getAge()+"\t"+stu.getAddress());

}
return;
}

Map<String, Student> map = getClassInfo();

System.out.println("一共有:"+map.size()+"个学生!");

System.out.println("学号\t名字\t班级\t年龄\t地址");

Set<String> set = map.keySet();

Iterator<String> i2 = set.iterator();

while(i2.hasNext()){

String temp = i2.next();

Student stu = map.get(temp);

System.out.println(stu.getStudentNo()+"\t"+stu.getName()+"\t"+stu.getClassName()+"\t"+stu.getAge()+"\t"+stu.getAddress());

}
}

public static void main(String[] args) {

try {
show();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

JDBC与ArrayList和hashmao的更多相关文章

  1. java 生成和解析xml

    本文主要使用的是Jdom.jar包(包的下载百度一下)实现了生成xml文件和解析xml文件 下面是生成xml的实现 说明:stuLists集合是一个存放着Student对象的集合 import jav ...

  2. Junit 注解 类加载器 .动态代理 jdbc 连接池 DButils 事务 Arraylist Linklist hashset 异常 哈希表的数据结构,存储过程 Map Object String Stringbufere File类 文件过滤器_原理分析 flush方法和close方法 序列号冲突问题

    Junit 注解 3).其它注意事项: 1).@Test运行的方法,不能有形参: 2).@Test运行的方法,不能有返回值: 3).@Test运行的方法,不能是静态方法: 4).在一个类中,可以同时定 ...

  3. 玩转spring boot——结合AngularJs和JDBC

    参考官方例子:http://spring.io/guides/gs/relational-data-access/ 一.项目准备 在建立mysql数据库后新建表“t_order” ; -- ----- ...

  4. Spring学习记录(十四)---JDBC基本操作

    先看一些定义: 在Spring JDBC模块中,所有的类可以被分到四个单独的包:1.core即核心包,它包含了JDBC的核心功能.此包内有很多重要的类,包括:JdbcTemplate类.SimpleJ ...

  5. java web学习总结(二十三) -------------------编写自己的JDBC框架

    一.元数据介绍 元数据指的是"数据库"."表"."列"的定义信息. 1.1.DataBaseMetaData元数据 Connection.g ...

  6. jdbc读取数据库,表相关信息(含注释)

    读取数据库中的所有的表名 private Set<String> getTableNameByCon(Connection con) { Set<String> set = n ...

  7. spring jdbc 查询结果返回对象、对象列表

    首先,需要了解spring jdbc查询时,有三种回调方式来处理查询的结果集.可以参考 使用spring的JdbcTemplate进行查询的三种回调方式的比较,写得还不错. 1.返回对象(queryF ...

  8. 数据库操作,jdbc的CRUD

    用Java代码操作数据库,可以用JDBC.首先要加载驱动,之后建立连接,再然后就可以对数据库进行操作. 1.建立连接.此处用的是MySQL数据库 public class DBUtil { publi ...

  9. 采用MVC模式JDBC演示案例

    MVC三层架构: Model 模型层,数据处理和业务逻辑 View 视图层,为客户展示内容 Control 控制层,协调控制,更新模型 案例如下: 1.获得数据库连接 package com.db; ...

随机推荐

  1. WEB前端性能优化之二——css优化

    1.把样式表置于顶部 现把样式表放到文档的< head />内部似乎会加快页面的下载速度.这是因为把样式表放到< head />内会使页面有步骤的加载显示.HTML规范清 楚指 ...

  2. devexpress设置系统全局字体(含工具栏字体)

    1.许多时候,都需要设置系统的字体.devexpress设置字体效果图比较如下: 上图比较可以看出,字体应用到了所有控件. 2.数据绑定代码: DataTable dt = new DataTable ...

  3. Docker存储驱动之Btrfs简介

    简介 Btrfs是下一代的copy-on-write文件系统,它支持很多高级特性,使其更加适合Docker.Btrfs合并在内核主线中,并且它的on-disk-format也逐渐稳定了.不过,它的很多 ...

  4. C#基础 运算符

    运算符分为5类-- 1.算数运算符[加加(++)   减减(--)  加(+)  减(-)  乘(*)  除(/)  取余(%)] (1)前++和后++的区别 using System; using ...

  5. Asp.Net MVC 之 Autofac 初步使用3 集成web api

    今天我们试着在WebApi2实现autofac的注入,关于这方面也是看了几位园友的分享省了不少时间,所以结合着前篇的demo再新建webapi进行... 一样开篇还是发下大概demo结构: 还是nug ...

  6. 【js】基本类型和引用类型的区别

    1.保存方式:(一脸懵逼???) 基本类型是按值访问的,可以在变量的生命周期改变它,但是它是储存在哪里的呢?在浏览器缓存吗?[执行环境中定义的所有变量和函数都存储在执行环境的变量对象里,变量对象我们编 ...

  7. Struts2学习笔记①

    Struts2 学习笔记① 所有的程序学习都从Hello World开始,今天先跟着书做一个HW的示例. Struts2是一套MVC框架,使用起来非常方便,接触到现在觉得最麻烦的地方是配置文件.我的一 ...

  8. ACM 阶乘的0

    阶乘的0 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 计算n!的十进制表示最后有多少个0   输入 第一行输入一个整数N表示测试数据的组数(1<=N< ...

  9. FineUIMvc随笔(6)对比WebForms和MVC中表格的数据库分页

    声明:FineUIMvc(基础版)是免费软件,本系列文章适用于基础版. 通过对比WebForms和MVC中表格数据库分页代码的不同,可以对 MVC 中的数据流转有更加深入的了解. WebForms 中 ...

  10. Python中闭包、装饰器的概念

    1.闭包(Closure)的概念: 内部函数中对enclosing作用域的变量进行引用 1 passline = 60 2 def func(val): 3 print('%x' % id(val)) ...