【牛腩】——sqlhelper层的优化旅程

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 17:17   2141   0

为什么要用到sqlhelper类?

sql+helper,应该就是数据库助手的意思吧,这里面的sql指的是数据库链接sqlconnection,sqlcommand,sqldatareader等等,你如果不引入sqlhelper你需要每次取数据库的数据的时候都要写一遍,如果把它封装了,你就只需要往里面出入一些参数入数据库链接字符串,sql参数等,就能访问数据库了,这相当于调数据库的助手了吧。

sqlhelper的优化旅程:

1.这个是牛老师开始敲得sqlhelper层,有了一堆的重复的代码,这些都是固定代码,然后需要把它提炼出来,因为这个相当于看电视,你需要先把电视打开,然后具体看哪个电视台根据你按得键来决定,然后你按完键之后剩下的电视怎么进行显示的是和你无关的,然后你不看了,你需要把电视关掉,这个整体的操作,你需要做的就是按遥控上面的数字,所以我们需要把重复的代码提炼出来....

  1. public class SQLHelper
  2. {
  3. public int Query()
  4. {
  5. //定义数据库连接字符串
  6. string connStr=@"server=peter;database=mewssystem;uid=sa;pwd=1";
  7. //传入数据库的连接字符串 固定语句
  8. SqlConnection conn=new SqlConnection(connStr);
  9. // 打开
  10. conn.open
  11. //数据库语句 变化语句
  12. string sql="insert into category(id) value('1')";
  13. //命令执行对象 需要sql语句和conn命令 固定语句
  14. SqlCommand cmd=new SqlCommand(sql,conn);
  15. //执行 返回int 固定语句
  16. int res=cmd.ExecuteNonQuery();
  17. //关闭连接 固定语句
  18. conn.Close();
  19. return res;
  20. }
  21. }

2.提炼后的代码

  1. public class SQLHelper
  2. { //提出常用
  3. private SqlConnection conn = null;
  4. private SqlCommand cmd = null;
  5. private SqlDataReader sdr = null;
  6. public SQLHelper()//初始化构造函数
  7. {
  8. string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;//②web.config中已经设置好的 connStr 为连接语句 此句为传出连接语句
  9. conn = new SqlConnection(connStr);
  10. }
  11. // 打开连接的方法
  12. private SqlConnection GetConn()
  13. {
  14. if (conn.State == ConnectionState.Closed)
  15. {
  16. conn.Open();
  17. }
  18. return conn;
  19. }
  20. public int ExecuteNonQuery(string sql)
  21. {
  22. int res;
  23. try
  24. {
  25. cmd = new SqlCommand(sql, GetConn());//③⑤调用上面的方法 打开连接 并传入SQL语句
  26. res = cmd.ExecuteNonQuery();//⑥ 执行
  27. }
  28. catch (Exception ex)
  29. {
  30. throw ex;
  31. }
  32. finally
  33. {
  34. if (conn.State == ConnectionState.Open)
  35. {
  36. conn.Close();//⑦ 关闭连接
  37. }
  38. }
  39. return res;

这样的话,你就可以只管安心的按你的键,电视就会显示出你想要的信息。

其实里面的定义数据库字符串的部分,也是可以写到配置文件中,这样也可以简化。

【总结】

1.要学会把重复的东西,抽象出来。

2.联系生活中的实例,放到计算机中,印象深刻。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP