JDBC24homework
编写程序:
创建一个类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的更多相关文章
随机推荐
- 树形dp(灯与街道)
https://cn.vjudge.net/contest/260665#problem/E 题意: 给你一个n个点m条边的无向无环图,在尽量少的节点上放灯,使得所有边都被照亮.每盏灯将照亮以它为一个 ...
- Linux内核调试方法总结之sysrq
sysrq [用途] Sysrq被称为”魔术组合键”, 是内建于Linux内核的调试工具.只要内核没有完全锁住,不管内核在做什么事情,使用这些组合键都可以搜集包括系统内存使用.CPU任务处理.进程运行 ...
- easyUI之Layout(布局)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...
- consul ocelot
consul配置完成后 新建.netcoreapi项目, nuget安装ocelot 添加多个配置文件,.netcore中会自动合并为一个文件,global配置总的配置,其他为各个项目的配置 Serv ...
- java ldap用户密码md5加密
在这里不过多介绍ldap,因为这样的文章特别多,这里就简单直接的记录这一个问题. 在springboot中通过引入spring-boot-starter-data-ldap,使用LdapTemplat ...
- 数据库sequence的作用和用法
转: 数据库sequence的作用和用法 2016年10月14日 19:51:03 很菜很菜的鸟 阅读数 14456 标签: oracle数据库db2sequence seqence的作用: se ...
- Mac 配置vscode调试PHP
Mac系统版本:MacOS Mojave 10.14.5 vscode:1.36.0 MacOS Mojave 10.14.5 系统自带 PHP 7.1.23 1.开启php sudo vim / ...
- Scrapy+redis实现分布式爬虫
概述 什么是分布式爬虫 需要搭建一个由n台电脑组成的机群,然后在每一台电脑中执行同一组程序,让其对同一网络资源进行联合且分布的数据爬取. 原生Scrapy无法实现分布式的原因 原生Scrapy中调度器 ...
- phpfpm开启pm.status_path配置,查看fpm状态参数
php-fpm配置 pm.status_path = /phpfpm_status nginx配置 server { root /data/www; listen 80; serve ...
- 爬虫——简单处理js中嵌入的json数据
看了群里一个人提问道https://www.amazon.com/,商品分类那里无法用xpath拿得到列表.遂对其研究. 通过抓包工具可以得知,原始数据存在于js代码中,我的方式是手动解析js,从里面 ...