目录
前情提要
請不傷人 人自傷感悟天地,故而创出三层架构DVD管理系统使伙伴灵超进化,如今已然可以压着对方使者打,而又恐对方援兵到来,故而主角转身投入对之前的感悟中,隐约觉得这次可能能让灵得到那传说中令人又高兴又恐惧的序列武器-优化
一、准备
这次是优化,之前发的代码就不再发了。这次的也会上传
自创增删改查工具类
//通用修改(增删改)
public int upDate(String sql,Object ...args) throws Exception{
//用来连接驱动的
Connection connection=null;
//预处理,省时间,加快速度
PreparedStatement pstmt=null;
connection=JDBCutil.getConnection();
pstmt=connection.prepareStatement(sql);
for (int i = 0; i < args.length; i++) {
pstmt.setObject(i+1,args[i]);
}
int rows=pstmt.executeUpdate();
return rows;
}
//查
public List<Object> select(String sql, RowMapper rowmap, Object ...args) throws Exception{
Connection connection=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
connection=JDBCutil.getConnection();
pstmt=connection.prepareStatement(sql);
List<Object> list=new ArrayList<>();
for (int i = 0; i < args.length; i++) {
pstmt.setObject(i+1,args[i]);
}
rs=pstmt.executeQuery();
while (rs.next()){
Object object=rowmap.getRow(rs);
list.add(object);
}
return list;
}
}
二、部分代码
1.RowMapper
创建一个接口以及一个类
@Override
public Object getRow(ResultSet resultSet) throws SQLException {
//获取当前行每一列的值
Dvd d=null;
int id=resultSet.getInt("id");
String name=resultSet.getString("name");
double price=resultSet.getDouble("price");
Date jc_date=resultSet.getDate("jc_date");
int status=resultSet.getInt("status");
int count=resultSet.getInt("count");
d=new Dvd(id,name,price,jc_date,status,count);
return d;
2.dao层
/**
* 删除DVD
* @param name
*/
@Override
public int deleteDvd(String name) throws Exception {
String sql = "delete from dvd where name=? ";
return cruDutil.upDate(sql, name);
}
/**
* 修改DVD
* @param d
*/
@Override
public int updateDvd(Dvd d) throws Exception {
String sql = "update dvd set id=?,price=?,jc_date=?,status=?, count =? where name=?";
Object[] args={d.getId(),d.getPrice(),d.getJc_date(),d.getStatus(),d.getCount(),d.getName()};
return cruDutil.upDate(sql,args);
}
/**
* 新增DVD
* @param d
* @return
*/
private CRUDutil cruDutil=new CRUDutil();
@Override
public Integer insertDvd(Dvd d) throws Exception{
String sql = "insert into dvd values (null,?,?,null,0,0)";
Object[] args={ d.getName(),d.getPrice()};
return cruDutil.upDate(sql,args);
}
/**
* 根据名字查询dvd
* @param name
* @return
*/
@Override
public Dvd queryDvdByName(String name) throws Exception {
try{
String sql = "select * from dvd where name=? ";
List<Object> list=cruDutil.select(sql, new RowMapperImpl() ,name);
if(list.isEmpty()){
return null;
}else {
return (Dvd)list.get(0);
}
}catch (Exception e){
e.printStackTrace(); }
return null;
}
三 图片
四 总结
武器已优化完成,但是怎么感觉是换汤不换药呢,似乎还可以用反射来做,直指本质,
不好,对面援兵快要到了,灵儿的眉头忽然紧凑,又忽而舒展开来,还好,我们的援兵虽然没有到达,但是却传来了一种强大的工具,有了它,我们再会很轻松的。