Java连接Oracle的JDBC查询数据操作

dao层接口

package dao;

import java.util.List;

import bean.User;

public interface UserDao {

    //查询
 public List<User> queryUsers(User user);
 
}

dao层实现类

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 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,USER_ACCOUNT,REAL_NAME,SEX,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");
					String userAccount=rs.getString("USER_ACCOUNT");
					int userSex=rs.getInt("SEX");
					String birthDay=rs.getString("BIRTHDAY");
					User temp=new User();
					temp.setUserId(userId);
					temp.setUsername(userName);
					temp.setUserAccount(userAccount);
					temp.setSex(userSex);
					temp.setBirthday(birthDay);
					users.add(temp);
				}
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally {
				DBUtil.closeConn(conn, ps, rs);
			}
		return users;
	}
 
}

测试类

package dao;

import java.util.List;
import java.util.Map;

import bean.User;

public class UserDaoTest {
 public static void main(String[] args) {

	  //查询语句
	 UserDao userdao=new UserDaoImpl();
	 User user=new User();
	 List <User> userlist=userdao.queryUsers(user);
	 
	 for(int i = 0;i < userlist.size();i++){
		 User u = userlist.get(i);
         System.out.println(u.getUserId()+" , "+u.getUserAccount()+" , "+u.getUsername()+" , "+u.getSex()+" , "+u.getBirthday());

		}
	
 }
 
}

查詢出所有用戶

遇到的問題:測試輸出: user_account,sex,birthday的結果為null

找到原因是

一開始只寫了紅框中的兩條,信息獲取不全。

发布了143 篇原创文章 · 获赞 92 · 访问量 8859

猜你喜欢

转载自blog.csdn.net/weixin_42995083/article/details/104176495