📄 basedaoimp.java
字号:
package org.artemis.right.jdbc.dao;
import java.util.List;
import org.artemis.right.jdbc.util.SQLUtils;
import org.artemis.right.jdbc.vo.UserVO;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.jdbc.core.JdbcTemplate;
public class BaseDAOImp implements BaseDAO {
private JdbcTemplate jdbcTemplate;
private String tableName;
private Class objectClass;
private String keyColumn;
public void setKeyColumn(String keyColumn) {
this.keyColumn = keyColumn;
}
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public void setObjectClass(Class objectClass) {
this.objectClass = objectClass;
}
public void setTableName(String tableName) {
this.tableName = tableName;
}
public int delete(Object id) {
String sql = "delete from " + tableName + " where "+keyColumn+"=?";
return jdbcTemplate.update(sql, new Object[]{id});
}
public List findAll() {
String sql = "select * from " + tableName;
return jdbcTemplate.query(sql, new DAORowMapper(objectClass));
}
public Object findByID(Object id) {
String sql = "select * from " + tableName + " where " + keyColumn + "=?";
return jdbcTemplate.queryForObject(sql, new Object[]{id}, new DAORowMapper(objectClass));
}
/*
* 这里用的Database的主键自增策略,如果想自己实现可以去看看Hibernate的主键生成方法
* 其实简单一点可以在server起来的时候定义一个存放主键的Map,然后让这些主键值递增就可以了,
* 只是要注意一下并发问题
*/
public int insert(Object obj) {
Object[] sqlAndParams = SQLUtils.generateInsert(obj, tableName);
return jdbcTemplate.update((String)sqlAndParams[0], (Object[])sqlAndParams[1]);
}
public int update(Object obj) {
Object[] sqlAndParams = SQLUtils.generateUpdate(obj, tableName, keyColumn);
return jdbcTemplate.update((String)sqlAndParams[0], (Object[])sqlAndParams[1]);
}
public static void main(String[] args){
// init factory:
XmlBeanFactory factory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));
BaseDAO userDAO = (BaseDAO)factory.getBean("userDAO");
// find all
List list = userDAO.findAll();
System.out.println("user count: "+list.size());
// find by id
UserVO userVO = (UserVO)userDAO.findByID(new Integer(2));
System.out.println("Ginger's Email: "+userVO.getEmail());
// insert
userVO = new UserVO();
userVO.setName("tester1");
userVO.setEmail("tester@gmail.com");
int insertResult = userDAO.insert(userVO);
System.out.println("insert returned: "+insertResult);
//update
userVO = new UserVO();
userVO.setId(new Integer(3));
userVO.setName("tester33");
userVO.setEmail("tester33@gmail.com");
int updateResult = userDAO.update(userVO);
System.out.println("update returned: "+updateResult);
//delete
int deleteResult = userDAO.delete(new Integer(4));
System.out.println("delete returned: "+deleteResult);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -