编写程序:

创建一个类DBTools,在DBTools中创建一个方法find,find方法用于对数据库进行查询操作,现在要求将结果集封装成数组线性表嵌套数组的形式:

ArrayList<String[]> rsList = new ArrayList<String[]>()形式

其中:    String[] 用于存储一行记录的所有字段(的值)

rsList存储所有的数组(String[]),即记录的总数

1,需要先创建一个用户的基本信息作为一个类,这样在其他类中可以直接定义为此类类型的对象。

 package com.xt.java.base25;

 public class User {

     private String userId;

     private String userName;

     private String password;

     private String email;

     private String telNo;

     private String gender;

     private String memo;

     private double salary;

     /**
* @return the userId
*/
public String getUserId() {
return userId;
} /**
* @param userId the userId to set
*/
public void setUserId(String userId) {
this.userId = userId;
} /**
* @return the userName
*/
public String getUserName() {
return userName;
} /**
* @param userName the userName to set
*/
public void setUserName(String userName) {
this.userName = userName;
} /**
* @return the password
*/
public String getPassword() {
return password;
} /**
* @param password the password to set
*/
public void setPassword(String password) {
this.password = password;
} /**
* @return the email
*/
public String getEmail() {
return email;
} /**
* @param email the email to set
*/
public void setEmail(String email) {
this.email = email;
} /**
* @return the telNo
*/
public String getTelNo() {
return telNo;
} /**
* @param telNo the telNo to set
*/
public void setTelNo(String telNo) {
this.telNo = telNo;
} /**
* @return the gender
*/
public String getGender() {
return gender;
} /**
* @param gender the gender to set
*/
public void setGender(String gender) {
this.gender = gender;
} /**
* @return the memo
*/
public String getMemo() {
return memo;
} /**
* @param memo the memo to set
*/
public void setMemo(String memo) {
this.memo = memo;
} /**
* @return the salary
*/
public double getSalary() {
return salary;
} /**
* @param salary the salary to set
*/
public void setSalary(double salary) {
this.salary = salary;
} /* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "User [userId=" + userId + ", userName=" + userName + ", password=" + password + ", email=" + email
+ ", telNo=" + telNo + ", gender=" + gender + ", memo=" + memo + ", salary=" + salary + "]";
} }

2,创建一个数据库databases access objected和数据库建立联系直接调用,这样写一次就行了

package com.xt.java.base25;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; public class UserDAO {
private Connection conn;
private Statement stat;
private String url="jdbc:mysql://localhost:3306/lyxdatabases";
private String dbDriver="com.mysql.jdbc.Driver";
private String userName="root";
private String password="1234";
//私有的构造方法,只有在本类中可以进行实例化一次,为了保护用户的隐私使用这种方法,切记!!!
private UserDAO(){ } private static UserDAO uda=null;
/**
* 写一个方法,从方法中获得实例,只能实例化一次。
*/ public static UserDAO getUserDAO(){
if(uda==null){
uda=new UserDAO();
}
return uda;
} public Connection getConnection() throws Exception{
try {
Class.forName(dbDriver);
return DriverManager.getConnection(url,userName,password);
} catch (ClassNotFoundException e) {
throw new ClassNotFoundException("数据库找不到驱动!!");
} catch (SQLException e) {
throw new SQLException("数据库连接异常!!");
}
} //关闭Connection
public void closeConnection(Connection conn){
try{
if(conn!=null){
conn.close();
} }catch(Exception e){
System.out.println(e);
}
} //关闭Statement
public void closeStatement(Statement stat){
try{
if(stat!=null){
stat.close();
} }catch(Exception e){
System.out.println(e);
}
}
//关闭ResultSet
public void closeResultSet(ResultSet rs){
try{
if(rs!=null){
rs.close();
} }catch(Exception e){
System.out.println(e);
}
}
}

3

创建一个类DBTools,在DBTools中创建一个方法find,find方法用于对数据库进行查询操作,现在要求将结果集封装成数组线性表嵌套数组的形式:

ArrayList<String[]> rsList = new ArrayList<String[]>()形式

package com.xt.java.base25;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Iterator; /**
* 创建一个类DBTools,在DBTools中创建一个方法find,find方法用于对数据库进行查询操作,
* 现在要求将结果集封装成数组线性表嵌套数组的形式:
ArrayList<String[]> rsList = new ArrayList<String[]>()形式
其中: String[] 用于存储一行记录的所有字段(的值)
rsList存储所有的数组(String[]),即记录的总数 * @author LENOVO
*
*/
public class DBtools {
Connection conn;
Statement stat;
ResultSet rs;
UserDAO udao=UserDAO.getUserDAO(); public void find(String userID){
ArrayList<String> rsList=new ArrayList<String>(20);
String sql="select*from user where userID="+userID; try {
conn=udao.getConnection();
stat=conn.createStatement();
rs=stat.executeQuery(sql);
while(rs.next()){
User user=new User();
user.setUserId(rs.getString(1));
user.setUserName(rs.getString(2));
user.setPassword(rs.getString(3));
user.setEmail(rs.getString(4));
user.setTelNo(rs.getString(5));
user.setGender(rs.getString(6));
user.setMemo(rs.getString(7));
user.setSalary(rs.getDouble(8)); rsList.add(user.toString());
}
Iterator<String> iterator=rsList.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
udao.closeResultSet(rs);
udao.closeStatement(stat);
udao.closeConnection(conn);
} }
public static void main(String[] args) {
DBtools dbt=new DBtools();
dbt.find("123"); } }

JDBC24homework的更多相关文章

随机推荐

  1. LeetCode 41. 缺失的第一个正数(First Missing Positive)

    题目描述 给定一个未排序的整数数组,找出其中没有出现的最小的正整数. 示例 1: 输入: [1,2,0] 输出: 3 示例 2: 输入: [3,4,-1,1] 输出: 2 示例 3: 输入: [7,8 ...

  2. Qt 插件学习(一)

    插件是什么 注意:这儿暂时不考虑静态插件(潜意识中总觉得它根本就不算插件). 插件是一个动态库(共享库).动态库是一个独立的文件中的独立模块,可被多个程序访问. 先看动态库的两种用法 1. 程序链接时 ...

  3. Eureka参数配置项详解

    Eureka涉及到的参数配置项数量众多,它的很多功能都是通过参数配置来实现的,了解这些参数的含义有助于我们更好的应用Eureka的各种功能,下面对Eureka的配置项做具体介绍,供大家参考. Eure ...

  4. Django连接MySQL出错

    错误一:No module named 'MySQLdb' 原因:python3连接MySQL不能再使用mysqldb,取而代之的是pymysql. 解决方法:在python的MySQL包中,即路径: ...

  5. 【论文学习】A Fuzzy-Rule-Based Approach for Single Frame Super Resolution

    加尔各答印度统计研究所,作者: Pulak Purkait (pulak_r@isical.ac.in) 2013 年 代码:CodeForge.cn http://www.codeforge.cn/ ...

  6. driver.implicitly_wait不起作用的排错方法

    环境是python3.6+selenium 3.4.3+chrome64 在编写前端自动化脚本时使用implicitly_wait时不起作用 1.确认自己是否正确使用,可用简单的例子来测试,比如: 此 ...

  7. easyUI之Messager(消息窗口)

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...

  8. Node.JS数组及For 语句

    for Each语句: var arr = ["Zhang San", "Li Si", "Wang Wu"] arr.forEach(fu ...

  9. linux 基础学习常见问题

    1.当命令行还在运行不能输入任何东西时,按ctrl+c       停掉那个正在运行.

  10. 一百二十七:CMS系统之添加轮播图前后台逻辑

    后台逻辑 模型 from exts import dbfrom datetime import datetime class BannerModel(db.Model): __tablename__ ...