博客不会写,就把一些心得,笔记写下来,这次主要是因为写mvc时发现连最基本的增删改查,都很模糊,所以一憋,一哭,决心再看看增删改查。
1.第一个例子,以前字典表时的增加
String dic_type=request.getParameter("dic_type");
String dic_name=request.getParameter("dic_name");
String dic_code=request.getParameter("dic_code");
String memo=request.getParameter("memo");
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/hotel";
Connection conn = DriverManager.getConnection(url, "root", "hangji001");
Statement stat = conn.createStatement();
String sql = "insert into tb_dic (dic_type,dic_name,dic_code,memo) values('"+dic_type+"','"+dic_name+"','"+dic_code+"','"+memo+"' )";
System.out.print(sql);
stat.executeUpdate(sql);
视图层传过来表的参数
response.sendRedirect("getData.jsp"); 重定向页面
2.学习Dao后在MySQLDao中编写业务逻辑。
public void insertUser(UserDetailInfo udi) {
}
UserMysqlDao implements UserDao顺带摘要一下Dao接口
import java.util.List;
import com.zzxtit.mvc.user.entity.UserDetailInfo;
public interface UserDao {
public void insertUser(UserDetailInfo udi);
public void updateUser(UserDetailInfo udi);
public void delUser(Integer userId);
public UserDetailInfo getUserDetailById(Integer userId);
public List<UserDetailInfo> getUserDetailByAttr(UserDetailInfo qAttr);
}
之所以提这个,是因为传参比起简单的getparameter直接(非实用),Dao下的操作,高内聚,低耦合(我也还在揣摩这句话)
Dao下的MySQLDao 调用了接口,而方法中的参数,则是实例Bean对象,还是有缺陷。
userService对Dao下的mysqlDao的操作
import java.util.List;
import com.zzxtit.mvc.user.dao.UserDao;
import com.zzxtit.mvc.user.dao.UserMysqlDao;
import com.zzxtit.mvc.user.entity.UserDetailInfo;
public class UserServiceImple implements UserService{
private UserDao ud = new UserMysqlDao();//这一句不理解,估计是借口回掉。调用的是MySQLdao对接口的
public void insertUser(UserDetailInfo udi) {
ud.insertUser(udi); //
}
public void updateUser(UserDetailInfo udi) {
}
public void delUser(Integer userId) {
}
public UserDetailInfo getUserDetailById(Integer userId) {
return null;
}
public List<UserDetailInfo> getUserDetailByAttr(UserDetailInfo qAttr) {
return null;
}
}
private UserDao ud = new UserMysqlDao();//这一句不理解,估计是借口回掉。调用的是MySQLdao对接口的
public void insertUser(UserDetailInfo udi) {
ud.insertUser(udi); //
}
public void updateUser(UserDetailInfo udi) {
}
public void delUser(Integer userId) {
}
public UserDetailInfo getUserDetailById(Integer userId) {
return null;
}
public List<UserDetailInfo> getUserDetailByAttr(UserDetailInfo qAttr) {
return null;
}
}
3.add_desk 增加餐号
int id=(int)(Math.random()*100000000); //对桌号添加一个随机ID
request.setCharacterEncoding("utf-8");
String food_name=request.getParameter("food_name");
String desk_no=request.getParameter("desk_no");
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/sys_info";
Connection conn = DriverManager.getConnection(url, "root", "hangji001");
Statement stat = conn.createStatement();
StringBuffer sql0 =new StringBuffer("select * from food_info where food_name='"+food_name+"'");
ResultSet rs = stat.executeQuery((sql0).toString());
int food_price=0;
while(rs.next()){
food_price=rs.getInt("food_price");
}
String sql = "insert into detail_info (desk_no,id,food_name,food_price)values ('"+desk_no+"','"+id+"','"+food_name+"','"+food_price+"') ";
stat.executeUpdate(sql); //excuteUpdate,增 改
response.sendRedirect("add_desk.jsp");
最初的订餐程序,只是将Java代码<%%>jsp页面中。没有用到EL和 JSTL` `
以上是增加的代码,其他的随后会更。现在有了dbUtils ,