java如何連接數(shù)據(jù)庫(kù)executeUpdate()和executeQuery()
executeUpdate
Update
//沒(méi)有返回值
public void update(int count){
conn=DBUtil.getConn();
String sql="update counter set count=?";
try {
PreparedStatement ps = conn.prepareStatement(sql);
//傳進(jìn)去的
ps.setInt(1,count);
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally{
DBUtil.closeConn();
}
}Insert
//沒(méi)有返回值,參數(shù)是個(gè)字符串部門名稱就ok了,因?yàn)閕d的話是自增
public void insert(String departmentname) {
conn = ConnectionFactory.getConnection();
String sql = "insert into department (departmentname) values(?)";
try {
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, departmentname);
pstmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
ConnectionFactory.closeConnection();
}
} //因?yàn)閑mployeeid自增,所以不用設(shè)置
public void insert(Employee employee){
conn=ConnectionFactory.getConnection();
String sql="insert into employee"
+
"(employeename,username,password,phone,email,departmentid,status,role)" +
" values(?,?,?,?,?,?,?,?)";
try {
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1,employee.getEmployeename());
pstmt.setString(2,employee.getUsername());
pstmt.setString(3,employee.getPassword() );
pstmt.setString(4,employee.getPhone() );
pstmt.setString(5,employee.getEmail());
pstmt.setInt(6,employee.getDepartmentid());
//注冊(cè)成功后,默認(rèn)為正在審核,status為0
pstmt.setString(7,"0");
//注冊(cè)時(shí),默認(rèn)為員工角色,role值為2
pstmt.setString(8,"2");
pstmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
ConnectionFactory.closeConnection();
}
}Delete
//刪除不用返回值
public void delete(int departmentid) {
conn = ConnectionFactory.getConnection();
String sql = "delete from department where departmentid=?;";
try {
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, departmentid);
pstmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
ConnectionFactory.closeConnection();
}
}select
//返回int類型
public int select(){
int count=0;
conn=DBUtil.getConn();
String sql = "select * from counter";
try{
PreparedStatement ps = conn.PreparedStatement(sql);
ResultSet rs =ps.excuteQuery();
if(rs.next()){
count=rs.getInt("visitcount");
}
}catch{
}finally{
DBUtil.closeConn();
}
return count;
}//返回部門集合
public List<Department> selectAll() {
conn = ConnectionFactory.getConnection();
// 新建一個(gè)集合departmentsList
List<Department> departmentsList = new ArrayList<Department>();
try {
Statement st = null;
String sql = "select * from department";
st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
Department department;
while (rs.next()) {
// 新建一個(gè)department來(lái)接收數(shù)據(jù)庫(kù)的信息
department = new Department();
department.setDepartmentid(rs.getInt("departmentid"));
department.setDepartmentname(rs.getString("departmentname"));
departmentsList.add(department);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
ConnectionFactory.closeConnection();
}
// 返回集合
return departmentsList;
}
//返回員工
public List<Employee> selectAllEmployee(){
conn=ConnectionFactory.getConnection();
List<Employee> employeeslist=new ArrayList<Employee>();
Employee employee=null;
try {
PreparedStatement st=null;
//只查詢已注冊(cè)且未審批 且 角色是員工的
String sql="select * from employee where role='2' and status='0'";
st = conn.prepareStatement(sql);
ResultSet rs =st.executeQuery(sql);
while(rs.next()){
employee=new Employee();
employee.setEmployeeid(rs.getInt("employeeid"));
employee.setEmployeename(rs.getString("employeename"));
employee.setUsername(rs.getString("username"));
employee.setPhone(rs.getString("phone"));
employee.setEmail(rs.getString("email"));
employee.setStatus(rs.getString("status"));
employee.setDepartmentid(rs.getInt("departmentid"));
employee.setPassword(rs.getString("password"));
employee.setRole(rs.getString("role"));
employeeslist.add(employee);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
//最后總要關(guān)閉連接
ConnectionFactory.closeConnection();
}
return employeeslist;
}
public Employee selectByNamePwd(String username, String pwd) {
Employee employee = null;
try {
//創(chuàng)建PreparedStatement對(duì)象
PreparedStatement st = null;
//查詢語(yǔ)句
String sql = "select * from employee where username='" + username + "' and password='" + pwd + "'";
st = conn.prepareStatement(sql);
ResultSet rs = st.executeQuery(sql);
//判斷結(jié)果集有無(wú)記錄,如果有:則把內(nèi)容取出來(lái),變成一個(gè)employee對(duì)象,并且返回它
if (rs.next() == true) {
employee = new Employee();
employee.setEmployeeid(rs.getInt("employeeid"));
employee.setEmployeename(rs.getString("employeename"));
employee.setUsername(rs.getString("username"));
employee.setPhone(rs.getString("phone"));
employee.setEmail(rs.getString("email"));
employee.setStatus(rs.getString("status"));
employee.setDepartmentid(rs.getInt("status"));
employee.setPassword(rs.getString("password"));
employee.setRole(rs.getString("role"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
ConnectionFactory.closeConnection();
}
return employee;
} public Employee selectByUsername(String username){
conn=ConnectionFactory.getConnection();
Employee employee=null;
try {
PreparedStatement st=null;
String sql="select * from employee where username='"+username+"'";
st = conn.prepareStatement(sql);
ResultSet rs =st.executeQuery(sql);
if(rs.next()==true){
employee=new Employee();
employee.setEmployeeid(rs.getInt("employeeid"));
employee.setEmployeename(rs.getString("employeename"));
employee.setUsername(rs.getString("username"));
employee.setPhone(rs.getString("phone"));
employee.setEmail(rs.getString("email"));
employee.setStatus(rs.getString("status"));
employee.setDepartmentid(rs.getInt("status"));
employee.setPassword(rs.getString("password"));
employee.setRole(rs.getString("role"));
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
ConnectionFactory.closeConnection();
}
return employee;
}需要注意的點(diǎn)
1.字符串的拼接必須在雙引號(hào)的基礎(chǔ)上被單引號(hào)套住
上面有個(gè)小陷阱
如果加了

會(huì)正常執(zhí)行,如果沒(méi)有加,會(huì)因?yàn)樽侄尾皇亲址鴪?bào)錯(cuò).

結(jié)果集為空



2.在Bean類,默認(rèn)的構(gòu)造方法還與參數(shù)順序有關(guān)
也就是說(shuō)public Employee(String user,int id, String pwd){}
和 public Employee(int id,String user,String pwd){} 是不一樣的構(gòu)造方法
測(cè)試main方法里,插入的數(shù)據(jù)的類型順序決定了調(diào)用哪個(gè)構(gòu)造方法.

3.構(gòu)造方法的方法名就是類名....

4.system.out.println 里打印加不加toString的區(qū)別

看起來(lái)沒(méi)有區(qū)別(這個(gè)不敢肯定)
5.sql語(yǔ)句里,雙引號(hào)的里面套雙引號(hào),會(huì)有歧義

會(huì)報(bào)錯(cuò)
應(yīng)該在里面放單引號(hào)

execute()和executeUpdate()主要區(qū)別
execute()返回一個(gè)boolean類型值,true表示第一個(gè)結(jié)果是ResultSet對(duì)象,false表示第一個(gè)結(jié)果是沒(méi)有結(jié)果的更新語(yǔ)句(insert,delete,update)。executeUpdate()返回一個(gè)int類型值,表示有幾條數(shù)據(jù)受到了影響。
此外,execute()還可以通過(guò)getResultSet()獲得執(zhí)行語(yǔ)句后的結(jié)果;
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java實(shí)現(xiàn)矩陣順時(shí)針旋轉(zhuǎn)90度的示例
今天小編就為大家分享一篇Java實(shí)現(xiàn)矩陣順時(shí)針旋轉(zhuǎn)90度的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
springboot2?使用activiti6?idea插件的過(guò)程詳解
這篇文章主要介紹了springboot2?使用activiti6?idea插件,本文通過(guò)截圖實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
idea中Java實(shí)體類怎樣生成序列化的版本號(hào)的方法
這篇文章主要介紹了idea中Java實(shí)體類怎樣生成序列化的版本號(hào)的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11

