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; ...
随机推荐
- 修改本地配置远程连接oracle数据库
当我们需要查看数据库信息时,我们更愿意通过客户端来查看,这样不仅操作方便,而且查看更精准.那么需要远程连接数据库需要在本地修改那些配置呢?以下是我个人的经验,希望大家都指正. 1.在oracle安装目 ...
- 基于Ubuntu14.04-LTS下安装docker
1.sudo apt-get update --更新系统源 2.sudo apt-get install docker.io 3.将docker库的公钥中加入到本地apt中 sudo apt-key ...
- java 文件操作 写入和读取(小结一)
参考了这篇博客并优化,谢谢:http://blog.sina.com.cn/s/blog_99201d890101b4le.html 功能: 实现通过两个类完成先写入文件,再读取数据计算显示 pac ...
- Ext Js详解指南
什么是Ext JS 走进Ext的世界 Ext JS是一款富客户端开发框架它基于javascript.HTML和CSS开发而成,无需安装任何插件即可在常用浏览器中创建出绚丽的页面效果. 个人总结Ext ...
- 负笈前行--DPDK代码风格
每个公司都会有自己代码风格或者编程规范,都旨在防范编程语言的一些陷阱或者提高代码效率,还有就是保持一致编码风格来提高代码可读性,方便code review: 或者说代码的一种美学,比如python也就 ...
- Gulp自动构建Web前端程序
这两天在一个朋友在项目上碰到了一个这样的问题,在运营过程中,用户在浏览器上对某个表单进行数据提交时,需要引入新的平台接口数据的业务,通过评估,开发团队马上修改了相关后台代码和部分的前端脚本代码,通过简 ...
- [笔记]关于支持向量机(SVM)中 SMO算法的学习(一)理论总结
1. 前言 最近又重新复习了一遍支持向量机(SVM).其实个人感觉SVM整体可以分成三个部分: 1. SVM理论本身:包括最大间隔超平面(Maximum Margin Classifier),拉格朗日 ...
- caoz大神力作、互联网从业者必读之书——《你凭什么做好互联网》深入总结
作者简介:曹政--俞军的关门弟子,CNZZ统计工具的缔造者,前百度商业产品部boss,4399CTO,微信公众号"caoz的梦呓"(yi),文后附上二维码,经常发布各种互联网干货, ...
- 第22篇 js中的this指针的用法
前面把js的相关知识总结了下,今天把js中的上下文的this,对于强类型语言,this的用法非常的单一,因为他们没有js特有的动态绑定. 首先看下面代码: function funcA() { thi ...
- Hibernate一对一主键映射
Hibernate一对一主键映射 ------------------------------ -- ...