dao的在封装

package com.xlh.vo;

public class User {
private int userno;
private String userName;
private String password;
private String realName;
public int getUserno() {
	return userno;
}
public void setUserno(int userno) {
	this.userno = userno;
}
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 String getRealName() {
	return realName;
}
public void setRealName(String realName) {
	this.realName = realName;
}
@Override
public String toString() {
	return "User [userno=" + userno + ", userName=" + userName + ", password="
			+ password + ", realName=" + realName + "]";
}
public User(int userno, String userName, String password, String realName) {
	super();
	this.userno = userno;
	this.userName = userName;
	this.password = password;
	this.realName = realName;
}
public User() {
	super();
}
public User(String userName, String password, String realName) {
	super();
	this.userName = userName;
	this.password = password;
	this.realName = realName;
}
	
	
	
	
}
package com.xlh.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;

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

public class BaseDao {
	private static final String URL="jdbc:mysql://localhost:3306/boooks";
	private static final String USERNAME="root";	
	private static final String PASSWORD="tiger";	
	
//加载驱动
	static{
		try {
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
protected Connection getConnection(){
		 Connection conn=null;
		 try {
			conn=DriverManager.getConnection(URL,USERNAME,PASSWORD);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return  conn;
	}
protected void close(Connection conn){
	if(conn!=null){
		try {
			conn.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}
protected void close(Connection conn,Statement ps){
	if(ps!=null){
		try {
			ps.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	if(conn!=null){
		try {
			conn.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
private void close(Connection conn,Statement ps,ResultSet rs){
	if(rs!=null){
		try {
			rs.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
this.close(conn, ps);
} 

	//执行任何sql语句,不建议执行查询
   //sql:要执行的sql语句,可以传递预编译的sql
//object:传递的参数
	public void executeSql(String sql,Object...objs){
this.executedDML(sql, objs);
		
		
	}
	
	public void executedDML(String sql,Object[]objs){
		
		Connection conn=this.getConnection();
		PreparedStatement ps=null;
		try{
			ps=conn.prepareStatement(sql);
			
		//赋值
			if(objs!=null){
				for(int i=0;i<objs.length;i++){
					ps.setObject(i+1, objs[i]);
				}
			}
			ps.execute();
			
			
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			this.close(conn,ps);
		}
		
	}
	


	
	public List<Object[]> executeQuery(String sql,Object...objs){
		Connection conn=this.getConnection();
		PreparedStatement ps=null;
		ResultSet rs=null;
		List<Object[]>list=new ArrayList<Object[]>();
		try{
			ps=conn.prepareStatement(sql);
			if(objs!=null){
				for(int i=0;i<objs.length;i++){
					ps.setObject(i+1, objs[i]);
				}
			}
			rs=ps.executeQuery();
			//将resultSet转换成List<Object[]>
			ResultSetMetaData rsmd=rs.getMetaData();
			while(rs.next()){
				Object[]obj=new Object[rsmd.getColumnCount()];
				for(int i=0;i<=obj.length;i++){
					obj[i]=rs.getObject(i+1);
				}
				list.add(obj);
			}
			
			
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			this.close(conn,ps,rs);
		}
		return list;		
	}
}

package com.xlh.dao;

import java.util.List;

import com.xlh.vo.User;

public interface UserDao {
	
public void insert(User user);
	
public void update(User user);	
	
public void delete(int userno);		
	
public void delete(Integer[] userno);	

public List<User> getAll();
}

package com.xlh.dao.impl;
import java.util.ArrayList;
import java.util.List;

import com.xlh.dao.BaseDao;
import com.xlh.dao.UserDao;
import com.xlh.vo.User;

public class UserDaoImpl extends BaseDao implements UserDao {

	@Override
	public void insert(User user) {
	String sql="insert into tb_user values(null,?,?,?)";
    this.executeSql(sql, user.getUserName(),user.getPassword(),user.getRealName());
	}

	@Override
	public void update(User user) {
		
		this.executeSql("update tb_user set userName=?,password=?,realName=? where userno=?",user.getUserName(),user.getPassword(),user.getRealName(),user.getUserno());
	}

	@Override
	public void delete(int userno) {
		this.executeSql("delete from tb_user where userno=?", userno);
	}

	//批量删除多个用户
	@Override
	public void delete(Integer[] userno) {
	//拼装sql语句;
		StringBuffer sql=new StringBuffer("delete from tb_user where userno in(");
		for(int i=0;i<userno.length;i++){
			if(i==(userno.length-1)){
			sql.append("?)");	
			}else{
			sql.append("?,");}
		}
		System.out.println(sql);
		this.executedDML(sql.toString(),userno );
	}

	@Override
	public List<User> getAll() {
	List<Object[]>olist=this.executeQuery("select * from tb_user");
		List<User>list=new ArrayList<User>();
		for(Object[]obj:olist){
			User user=new User();
			user.setUserno((Integer)obj[0]);
			user.setUserName((String)obj[1]);
			user.setPassword((String)obj[2]);
			user.setRealName((String)obj[3]);
			list.add(user);
		}
		
		return list;
	}

}

package com.xlh.text;

import java.util.List;

import com.xlh.dao.UserDao;
import com.xlh.dao.impl.UserDaoImpl;
import com.xlh.vo.User;

public class TestUser {

	public static void main(String[] args) {
		UserDao dao=new UserDaoImpl();
	//User user=new User(3,"lla","125345","对不对");
  // dao.insert(user);
//	dao.delete(11);
	//dao.update(user);
	//	dao.delete(new Integer[]{5,7});
		
	List<User>list=dao.getAll();	
	for(User u:list){
		System.out.println(u);
	}
		
	
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值