⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 userdao.java

📁 很好的j2ee系统 很好的j2ee系统
💻 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 + -