JDBC与ArrayList和hashmao



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的更多相关文章
- java 生成和解析xml
本文主要使用的是Jdom.jar包(包的下载百度一下)实现了生成xml文件和解析xml文件 下面是生成xml的实现 说明:stuLists集合是一个存放着Student对象的集合 import jav ...
- Junit 注解 类加载器 .动态代理 jdbc 连接池 DButils 事务 Arraylist Linklist hashset 异常 哈希表的数据结构,存储过程 Map Object String Stringbufere File类 文件过滤器_原理分析 flush方法和close方法 序列号冲突问题
Junit 注解 3).其它注意事项: 1).@Test运行的方法,不能有形参: 2).@Test运行的方法,不能有返回值: 3).@Test运行的方法,不能是静态方法: 4).在一个类中,可以同时定 ...
- 玩转spring boot——结合AngularJs和JDBC
参考官方例子:http://spring.io/guides/gs/relational-data-access/ 一.项目准备 在建立mysql数据库后新建表“t_order” ; -- ----- ...
- Spring学习记录(十四)---JDBC基本操作
先看一些定义: 在Spring JDBC模块中,所有的类可以被分到四个单独的包:1.core即核心包,它包含了JDBC的核心功能.此包内有很多重要的类,包括:JdbcTemplate类.SimpleJ ...
- java web学习总结(二十三) -------------------编写自己的JDBC框架
一.元数据介绍 元数据指的是"数据库"."表"."列"的定义信息. 1.1.DataBaseMetaData元数据 Connection.g ...
- jdbc读取数据库,表相关信息(含注释)
读取数据库中的所有的表名 private Set<String> getTableNameByCon(Connection con) { Set<String> set = n ...
- spring jdbc 查询结果返回对象、对象列表
首先,需要了解spring jdbc查询时,有三种回调方式来处理查询的结果集.可以参考 使用spring的JdbcTemplate进行查询的三种回调方式的比较,写得还不错. 1.返回对象(queryF ...
- 数据库操作,jdbc的CRUD
用Java代码操作数据库,可以用JDBC.首先要加载驱动,之后建立连接,再然后就可以对数据库进行操作. 1.建立连接.此处用的是MySQL数据库 public class DBUtil { publi ...
- 采用MVC模式JDBC演示案例
MVC三层架构: Model 模型层,数据处理和业务逻辑 View 视图层,为客户展示内容 Control 控制层,协调控制,更新模型 案例如下: 1.获得数据库连接 package com.db; ...
随机推荐
- nagios安装及监控Linux主机
服务端的操作:##################################安装lamp环境及依赖包########################## 24 rpm -ivh gd-de ...
- Fragment 学习笔记(1)
网上关于Fragment相关的博客资料很多,写关于这个知识笔记是加深记忆,大神略过: 0x01 了解Fragment 当然看官方文档(http://www.android-doc.com/refere ...
- python - bilibili(一)获取直播间标题
近几年,直播平台蛮火的.小时候,经过各种日漫的洗礼,在直播平台自然而然的就盯上了B站. 目前还是python菜鸟一枚,各位大佬请轻拍. 最终效果图: 闲话不说,我们来一步步解析B站的弹幕. 工具:py ...
- 对synchronized关键字的理解
先看两个线程同时访问一个对象的例子. public class Account { private String accountNo; private double balance; public A ...
- 在ZendStudio中增加新的php模板
步骤: 找到目录:D:\Program Files\Zend\Zend Studio 12.5.1\plugins , 这要根据自己的安装情况来找,再找到以下文件org.eclipse.php.ui_ ...
- WebApi接口传参不再困惑:传参详解
原文出处: 懒得安分 前言:还记得刚使用WebApi那会儿,被它的传参机制折腾了好久,查阅了半天资料.如今,使用WebApi也有段时间了,今天就记录下API接口传参的一些方式方法,算是一个笔记,也希望 ...
- WPF移动Window窗体(鼠标点击左键移动窗体自定义行为)
XAML代码部分:1.引用System.Windows.Interactivity 2.为指定的控件添加一个拖动的行为 3.很简单的了解行为的作用和用法 <Window xmlns=" ...
- 计算机程序的思维逻辑 (70) - 原子变量和CAS
从本节开始,我们探讨Java并发工具包java.util.concurrent中的内容,本节先介绍最基本的原子变量及其背后的原理和思维. 原子变量 什么是原子变量?为什么需要它们呢? 在理解synch ...
- 每天一个linux命令(50)--date命令
在Linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,熟练运用date 命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便. 1.命令格式: date [参 ...
- 每天一个linux命令(32)--/etc/group文件详解
Linux /etc/group 文件与 /etc/passwd 和/etc/shadow 文件都是有关于系统管理员对用户和用户组管理时相关的文件.Linux /etc/group 文件是有关于系统管 ...