📄 userdao.java
字号:
package org.perfect.struts.dao;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List;
import org.perfect.struts.util.MyLog;
import org.perfect.struts.vo.User;
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
//因为所有的功能一般都涉及到增删改查,所以考虑在BaseDaoImp这个类中统一做。其它的extends就行了。
//这里面的jdbcTemplate是来自父类的。父类己经set进去了。子类继承就可以了。
public class UserDao extends BaseDaoImp {
public int fingUser(String username, String password) {
String sql = "select count(*) from user where username=? and password = ?";
if (jdbcTemplate == null) {
System.out.println("jdbcTemplate为空");
}
int i = super.jdbcTemplate.queryForInt(sql, new Object[] { username,
password });
return i;
}
// 添加一户,用于单户插入
public int insertUser(String username, String password, String rightid) {
int i = 0;
String sql = "insert into user(username,password,rightid) values(?,?,?)";
i = super.jdbcTemplate.update(sql, new Object[] { username, password,
rightid });
return i;
}
public int[] userBatch(final List users, String sqlFlag) {
int[] i = null;
if ("insert".equals(sqlFlag)) {
i = this.insertUserBatch(users);
} else if ("delete".equals(sqlFlag)) {
i = this.deleteUserBatch(users);
} else if ("update".equals(sqlFlag) || sqlFlag == null || "".equals(sqlFlag)) {
i = this.updateUserBatch(users);
} else {
System.out.println("你他妈想要执行什么操作?");
}
return i;
}
// 批量添加,用于批量插入070908
public int[] insertUserBatch(final List users) {
String sql = "insert into user (user_no,username,password,rightid) values(?,?,?,?)";
// 声明一个批量SQL设置器。
BatchPreparedStatementSetter setter = null;
// 定义一个内部类继承相关方法。不过内部类用的参数必须是final型的。不知为什么。有空研究下。
setter = new BatchPreparedStatementSetter() {
public int getBatchSize() {
return users.size();
}
public void setValues(PreparedStatement ps, int index)
throws SQLException {
User user = (User) users.get(index);
ps.setString(1, user.getUser_no());
ps.setString(2, user.getUsername());
ps.setString(3, user.getPassword());
ps.setString(4, user.getRightid());
}
};
return super.jdbcTemplate.batchUpdate(sql, setter);
}
// 批量删除070908
public int[] deleteUserBatch(final List users) {
String sql = "delete from user where id = ? ";
// 声明一个批量SQL设置器。
BatchPreparedStatementSetter setter = null;
// 定义一个内部类继承相关方法。不过内部类用的参数必须是final型的。不知为什么。有空研究下。
setter = new BatchPreparedStatementSetter() {
public int getBatchSize() {
return users.size();
}
public void setValues(PreparedStatement ps, int index)
throws SQLException {
User user = (User) users.get(index);
ps.setString(1, user.getId());
}
};
return super.jdbcTemplate.batchUpdate(sql, setter);
}
// update user set username = '崔宏峰',password = 'a', rightid = 'A'
// where username = '崔宏身'
// 批量修改070908
public int[] updateUserBatch(final List users) {
String sql = "update user set user_no = ?,username = ? ,password = ?,rightid = ? where id = ? ";
// 声明一个批量SQL设置器。
BatchPreparedStatementSetter setter = null;
// 定义一个内部类继承相关方法。不过内部类用的参数必须是final型的。不知为什么。有空研究下。
setter = new BatchPreparedStatementSetter() {
public int getBatchSize() {
return users.size();
}
// 这个设置参数的方法有点麻添。等下修改下。
public void setValues(PreparedStatement ps, int index)
throws SQLException {
User user = (User) users.get(index);
ps.setString(1, user.getUser_no());
ps.setString(2, user.getUsername());
ps.setString(3, user.getPassword());
ps.setString(4, user.getRightid());
System.out.println("user.getId()="+user.getId());
ps.setString(5, user.getId());
}
};
System.out.println(sql);
return super.jdbcTemplate.batchUpdate(sql, setter);
}
// 查询方法。写入相对应sql就行了。
public List findUserList() {
List list = (List) super.jdbcTemplate
.queryForList("select * from user");
// System.out.println("findUserList的size="+list.size());
return list;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -