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的更多相关文章
随机推荐
- Python中二维数组的创建
习惯了java的Matrix = [][]不知道python怎么创二维数组. 先看 python中的二维数组操作 对最后提出的二维数组创建方式存在疑问 Matrix = [([0] * 3) for ...
- JDK与CGlib动态代理的实现
应用的原型为 执行者:房屋中介Agency(分为JDKAgency.CGlibAgency) 被代理对象:程序员Programmer 被代理对象的实现接口:租户Tenement(CGlibAgency ...
- ubuntu下如何安装7z压缩工具?
答: sudo apt-get install p7zip 1. 解压 7zr x filename.7z 2. 压缩 7zr a -t7z -r filename.7z ~/filename/* 各 ...
- ubantu下docker安装
开始安装 由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本: sudo apt-get remove docker docker-engine docker-ce docke ...
- MySQL存储引擎及数据库的操作管理
一.存储引擎 存储引擎实际上就是如何存储数据.如何为存储的数据建立索引和如何更新.查询数据.存储引擎也可以称为表类型. MySQL提供了插件式(pluggable)的存储引擎,存储引擎是基于表的.同一 ...
- RabbitMQ学习之:(八)Topic Exchange (转贴+我的评论)
From: http://lostechies.com/derekgreer/2012/05/18/rabbitmq-for-windows-topic-exchanges/ RabbitMQ for ...
- RabbitMQ学习之:(三)第一个RMQ的程序 (转贴+我的评论)
RabbitMQ for Windows: Building Your First Application Posted by Derek Greer on March 7, 2012 This is ...
- FreeMarker学习2
为了处理缺失变量,FreeMarker提供了两个运算符: 用于防止对象不存在而导致的异常 !:指定缺失变量的默认值 ??:判断某个变量是否存在,返回boolean值 ${item.createtime ...
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_6-2.申请微信支付介绍和不同场景的支付方式
笔记 2.申请微信支付介绍和不同场景的支付方式 简介:介绍微信商户平台,支付方式和使用场景,申请微信支付流程 1.什么是微信商户平台: ...
- nginx反向代理cookie相关
http://blog.csdn.net/xiansky2015/article/details/51674997 http://www.jianshu.com/p/aeed2a56a3eb