자바 에서 JDBC 는 Oacle 데이터 베 이 스 를 연결 하고 패키지 추가 삭제 검사,단일 조회,다 중 조회(최종 버 전)

아 날로 그 Atm 인출,테스트 코드
Sql 의 시 계 는 다음 과 같 습 니 다.
username
password
balance
 
 
 
 
 
 
 
1.데이터베이스 조회 패 키 지 는 포장 의 삭제 와 검 사 를 실 현 했 고 여러 가지 조 회 를 실 현 했 습 니 다.그 중에서 세 가지 방법 은 증가,삭제,수정,단일 조회,여러 가지 조 회 를 실현 할 수 있 습 니 다.
package util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import AtmoPo.Rowmapper;
import AtmoPo.RowmapperAll;
//  ,          
public class JdbcTemplament {
	//      
	public Connection getConn() {
		Connection conn=null;
		try {
			//    
			Class.forName("oracle.jdbc.driver.OracleDriver");
			conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "123456");
		} catch (ClassNotFoundException e) {
			System.out.println("      !");
			e.printStackTrace();
		} catch (SQLException e) {
			System.out.println("       !");
			e.printStackTrace();
		}
		return conn;
	}
	//update()       ,          sql   ;
	public void update (String sql,Object[] values) {
		Connection conn=getConn();
		PreparedStatement ps=null;
		try {
			ps=conn.prepareStatement(sql);
			for(int i=0;i queryAll(String sql,Object[] values,RowmapperAll ra) {
		Connection conn=getConn();
		PreparedStatement ps=null;
		List list=new ArrayList();
		try {
			ps=conn.prepareStatement(sql);
			for(int i=0;i

2.인터페이스 연결,단일 조회 와 여러 개의 조회 가 의존 하 는 두 개의 인터페이스,단일 선택 또는 여러 개의 정보의 매 핑 실현
package AtmoPo;

import java.sql.ResultSet;

public interface Rowmapper {
		//      , rs           ;
		 public Object rowMapper(ResultSet rs);
}
package AtmoPo;

import java.sql.ResultSet;
import java.util.List;

public interface RowmapperAll {
	public List rowMapperAll(ResultSet rs);
}

3.Atm 맵
package AtmoPo;

public class Atm {
	private String username;
	private String password;
	private int balance;
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public int getBalance() {
		return balance;
	}
	public void setBalance(int balance) {
		this.balance = balance;
	}
	@Override
	public String toString() {
		return "Atm [username=" + username + ", password=" + password + ", balance=" + balance + "]";
	}
}

4.데이터 링크 층,상기 두 개의 인 터 페 이 스 를 실현
package ATMDao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import AtmoPo.Atm;
import AtmoPo.Rowmapper;
import AtmoPo.RowmapperAll;
import util.JdbcTemplament;

public class AtmDao implements Rowmapper,RowmapperAll {
	//  
	public void cunkuanDao(String username,int money) {
		JdbcTemplament jtl=new JdbcTemplament();
		Atm atm=load(username);
		atm.setBalance(atm.getBalance()+money);
		String sql1="update tb_atm set balance=? where username=?";
		jtl.update(sql1, new Object[] {atm.getBalance(),atm.getUsername()});
	}
	//  
	public void quqianDao(String username,int money) {
		JdbcTemplament jtl=new JdbcTemplament();
			Atm atm=load(username);
			if(atm.getBalance()>money) {
				atm.setBalance(atm.getBalance()-money);
				String sql1="update tb_atm set balance=? where username=?";
				jtl.update(sql1, new Object[] {atm.getBalance(),atm.getUsername()});
		}else {
				System.out.println("    !");
			}
	}
	//  
	public void zhuanzhangDao(String username,int money,String rusername) {
		JdbcTemplament jtl=new JdbcTemplament();
			Atm atm=load(username);
			if(atm.getBalance()>money) {
				atm.setBalance(atm.getBalance()-money);
				String sql1="update tb_atm set balance=? where username=?";
				jtl.update(sql1, new Object[] {atm.getBalance(),atm.getUsername()});
				//        
				Atm atm1=load(rusername);
				atm1.setBalance(atm1.getBalance()+money);
				String sql3="update tb_atm set balance=? where username=?";
				jtl.update(sql3, new Object[] {atm1.getBalance(),atm1.getUsername()});
				
		}else {
				System.out.println("    !");
			}
	}
	//    
	public int chaxunyue(String username) {
		Atm atm=load(username);
		return atm.getBalance();
	}
	
	//      
	public Atm  load(String username) {
		JdbcTemplament jtl=new JdbcTemplament();
		String sql="select * from tb_atm where username=?";
		Atm atm=(Atm)jtl.load(sql, new Object[] {username}, this);
		return atm;
	}
	//    
	public List queryAllDao(int start,int end){
		JdbcTemplament jtl=new JdbcTemplament();
		String sql="Select * from(select rownum r ,tb_atm.* from tb_atm)t where t.r between ? and ?";
		List list=jtl.queryAll(sql, new Object[] {start,end}, this);
		return list;
	}
	@Override
	public Object rowMapper(ResultSet rs) {
		Atm atm=null;
		try {
			if(rs.next()) {
				atm=new Atm();
				atm.setUsername(rs.getString("username"));
				atm.setPassword(rs.getString("pasword"));
				atm.setBalance(rs.getInt("balance"));
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return atm;
	}
	@Override
	public List rowMapperAll(ResultSet rs) {
		List list= new ArrayList();
		Atm atm=null;
		try {
			while(rs.next()) {
				atm=new Atm();
				atm.setUsername(rs.getString("username"));
				atm.setPassword(rs.getString("pasword"));
				atm.setBalance(rs.getInt("balance"));
				list.add(atm);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return list;
	}

}

5.업무 층
package Service;
import ATMDao.AtmDao;
import AtmoPo.Atm;

public class AtmService {
	public void cunkuan(String username,int money) {
		AtmDao ad=new AtmDao();
		ad.cunkuanDao(username, money);
	}
	public void zhuanzhang(String username,int money,String rusername) {
		AtmDao ad=new AtmDao();
		ad.zhuanzhangDao(username, money, rusername);
	}
	public void qukuan(String username,int money) {
		AtmDao ad=new AtmDao();
		ad.quqianDao(username, money);
	}
	public int  yue(String username) {
		AtmDao ad=new AtmDao();
		return ad.chaxunyue(username);
	}
	public void queryAll(int start,int end){
		AtmDao ad=new AtmDao();
		for(Object arr: ad.queryAllDao(start, end)){
			System.out.println((Atm)arr);
		}
	}
}

6.테스트
package test;
import Service.AtmService;
public class Test {
	public static void main(String[] args) {
		AtmService as=new AtmService();
		System.out.println("         :"+as.yue("  "));
		as.cunkuan("  ", 10000);
		System.out.println("         :"+as.yue("  "));
		System.out.println("        :"+as.yue("  "));
		as.zhuanzhang("  ", 2000, "  ");
		System.out.println("         :"+as.yue("  "));
		System.out.println("        :"+as.yue("  "));
		as.qukuan("  ", 1000);
		System.out.println("        :"+as.yue("  "));
		as.queryAll(1, 2);
	}
}

좋은 웹페이지 즐겨찾기