1. 程式人生 > 資料庫 >Java連線Oracle的JDBC插入資料操作

Java連線Oracle的JDBC插入資料操作

增加資料的操作

介面

package dao;

import java.util.List;

import bean.User;

public interface UserDao {
	//插入
 public int insertUser(User user);
    //查詢
 public List<User> queryUsers(User user);
}

實現類

package dao;

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

import bean.User;
import util.DBUtil;

public class UserDaoImpl implements UserDao {

	@Override
	public int insertUser(User user) {
		
		Connection conn=DBUtil.getConnection();
		PreparedStatement ps=null;
		ResultSet rs=null;
		String sql="INSERT INTO T_USER(USER_ID,USER_ACCOUNT,REAL_NAME,SEX,BIRTHDAY) VALUES(SEQ_T_USER.NEXTVAL,?,TO_DATE(?,'yyyy-mm-dd'))";
		try {
			ps=conn.prepareStatement(sql);
			ps.setString(1,user.getUserAccount());
			ps.setString(2,user.getUsername());
			ps.setInt(3,user.getSex());
			ps.setString(4,user.getBirthday());
			return ps.executeUpdate();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return 0;
	}

	@Override
	public List<User> queryUsers(User user) {
		List<User> users=new ArrayList<User>();
		Connection conn=DBUtil.getConnection();
		PreparedStatement ps=null;
		ResultSet rs=null;
		String sql="SELECT USER_ID,BIRTHDAY FROM T_USER WHERE 1=1";
			try {
				//這是動態拼接查詢條件
				if(user.getUsername()!=null && user.getUsername().equals("")) {
					sql+= "AND REAL_NAME LIKE ?";
				}
				ps=conn.prepareStatement(sql);
				//有多個條件+多個條件的判斷
				if(user.getUsername()!=null && user.getUsername().equals("")) {
					ps.setString(1,"%"+user.getUsername()+"%");
				}
				rs=ps.executeQuery();
				while(rs.next()) {
					String userName=rs.getString("REAL_NAME");
					int userId=rs.getInt("USER_ID");
					User temp=new User();
					temp.setUserId(userId);
					temp.setUsername(userName);
					users.add(temp);
				}
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally {
				DBUtil.closeConn(conn,ps,rs);
			}
		return users;
	}
 
}