为什么要用到sqlhelper类?
sql+helper,应该就是数据库助手的意思吧,这里面的sql指的是数据库链接sqlconnection,sqlcommand,sqldatareader等等,你如果不引入sqlhelper你需要每次取数据库的数据的时候都要写一遍,如果把它封装了,你就只需要往里面出入一些参数入数据库链接字符串,sql参数等,就能访问数据库了,这相当于调数据库的助手了吧。
sqlhelper的优化旅程:
1.这个是牛老师开始敲得sqlhelper层,有了一堆的重复的代码,这些都是固定代码,然后需要把它提炼出来,因为这个相当于看电视,你需要先把电视打开,然后具体看哪个电视台根据你按得键来决定,然后你按完键之后剩下的电视怎么进行显示的是和你无关的,然后你不看了,你需要把电视关掉,这个整体的操作,你需要做的就是按遥控上面的数字,所以我们需要把重复的代码提炼出来....
- public class SQLHelper
- {
- public int Query()
- {
- //定义数据库连接字符串
- string connStr=@"server=peter;database=mewssystem;uid=sa;pwd=1";
- //传入数据库的连接字符串 固定语句
- SqlConnection conn=new SqlConnection(connStr);
- // 打开
- conn.open
- //数据库语句 变化语句
- string sql="insert into category(id) value('1')";
- //命令执行对象 需要sql语句和conn命令 固定语句
- SqlCommand cmd=new SqlCommand(sql,conn);
- //执行 返回int 固定语句
- int res=cmd.ExecuteNonQuery();
- //关闭连接 固定语句
- conn.Close();
- return res;
- }
- }
2.提炼后的代码
- public class SQLHelper
- { //提出常用
- private SqlConnection conn = null;
- private SqlCommand cmd = null;
- private SqlDataReader sdr = null;
-
- public SQLHelper()//初始化构造函数
- {
- string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;//②web.config中已经设置好的 connStr 为连接语句 此句为传出连接语句
- conn = new SqlConnection(connStr);
- }
- // 打开连接的方法
- private SqlConnection GetConn()
- {
- if (conn.State == ConnectionState.Closed)
- {
- conn.Open();
- }
- return conn;
- }
- public int ExecuteNonQuery(string sql)
- {
- int res;
- try
- {
- cmd = new SqlCommand(sql, GetConn());//③⑤调用上面的方法 打开连接 并传入SQL语句
- res = cmd.ExecuteNonQuery();//⑥ 执行
- }
- catch (Exception ex)
- {
- throw ex;
- }
-
- finally
- {
- if (conn.State == ConnectionState.Open)
- {
- conn.Close();//⑦ 关闭连接
- }
- }
- return res;
这样的话,你就可以只管安心的按你的键,电视就会显示出你想要的信息。
其实里面的定义数据库字符串的部分,也是可以写到配置文件中,这样也可以简化。
【总结】
1.要学会把重复的东西,抽象出来。
2.联系生活中的实例,放到计算机中,印象深刻。 |