Java連線Oracle的JDBC插入資料操作
阿新 • • 發佈:2020-02-04
增加資料的操作
介面
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; } }