编写程序:

创建一个类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. js 给元素绑定回车事件

    经常会看到登录页面输入完账户密码,回车就登录了.实现方法: JQuery方法: $("#focus")为获取id为focus的元素 $("#focus").ke ...

  2. js动态往对象里边添加一项

    第一种方法let obj ={"name":"tom","age":16}let key = "id";let valu ...

  3. SpringMVC支持跨域请求

    一.如果项目中使用的SpringMVC4.3.9以下,就需要对该请求配置Filter,设置请求头可支持跨域.使用方法: --spring cloud zuul支持跨域---:https://blog. ...

  4. CDN之Web Cache

    1. Cache 的工作方式 Web Cache 作为一种网页缓存技术,可以在用户访问网站服务器的任何一个中间网元上实现.根据 HTTP 协议的定义,在一次网页访问中,用户从客户端发出请求到网站服务器 ...

  5. react-hook的简单的动画插件react-simple-animate(其实是react插件,但是这里只介绍react-hook的简单用法)

    1.useAnimate(普通anima动画的形式) (1)js const animate = useAnimate({ complete: { display: 'none' }, //动画完成的 ...

  6. vue如何动态绑定v-model

    如图所示有三个字段要从弹出的输入框取值点击字段会弹出上面的弹窗,输入input会响应变化,比如点击身高,弹出输入框,输入值后身高后面会跟着一个同样的值点击体重,弹出输入框,输入值后体重后面会跟着一个同 ...

  7. Faster R-CNN论文阅读摘要

    论文链接: https://arxiv.org/pdf/1506.01497.pdf 代码下载: https://github.com/ShaoqingRen/faster_rcnn (MATLAB) ...

  8. Linux下 安装jdk8

    一.文件准备 1.1 文件名称 jdk-8u121-linux-x64.tar.gz 1.2 下载地址 http://www.oracle.com/technetwork/java/javase/do ...

  9. kotlin之类构造器

    Kotlin中类允许定义个主构造器和多个第二构造器. 主构造器就是类头的一部分,紧跟在类名的后面,构造器参数是可选的 package loaderman import loaderman.bar.Pe ...

  10. mybatis之动态SQL操作之更新

    1)  更新条件不确定,需要根据情况产生SQL语法,这种情况叫动态SQL /** * 持久层*/ public class StudentDao { /** * 动态SQL--更新 */ public ...