
ioc->log->代码
1、先了解项目数据库的表结构,这个方面是最容易忘记 的,有时候我们只顾着看每一个方法是怎么进行的,却没
有去了解数据库之间的主外键关联。其实如果先了解数据 库表结构,再去看一个方法的实现会更加容易。
2、然后需要过一遍web.xml,知道项目中用到了什么拦
截器,监听器,过滤器,拥有哪些配置文件。如果是拦截 器,一般负责过滤请求,进行AOP 等如果是监 可能是定时任务,初始化任务配置文件有如使用了 spring
后的读取mvc 相关,db 相关,service 相关,aop 相关的文件。
3、查看拦截器,监听器代码,知道拦截了什么请求,这
个类完成了怎样的工作。有的人就是因为缺少了这一步, 自己写了一个action,配置文件也没有写错,但是却怎么
调试也无法进入这个action,直到别人告诉他,请求被拦
4、接下来,看配置文件,首先一定是mvc相关的,如 springmvc
中,要请求哪些请求是静态资源,使用了哪些 view 策略,controller 注解放在哪个包下等。 然后是db 相关配置文件,看使用了什么数据库,使用了
什么orm框架,是否开启了二级缓存,使用哪种产品作 为二级缓存,事务管理的处理,需要扫描的实体类放在什 么位置。最后是spring 核心的ioc
功能相关的配置文件, 知道接口与具体类的注入大致是怎样的。当然还有一些如 apectj 置文件,也是在这个步骤中完成
5、log
相关文件,日志的各个级别是如何处理的,在哪些 地方使用了log 记录日志
6、从上面几点后知道了整个开源项目的整体框架,阅读 每个方法就不再那么难了。
7、当然如果有项目配套的开发文档也是要阅读的。
网站环境不同,不同程序有不同的数据库配置位置以discuz为例,其他的随机应变:
Discuz论坛的数据库在程序中有设置文件对应查询账号密码,目录位置:
/config/config_global.php
/uc_server/data/config.inc.php
/config/config_ucenter.php
文件都含有Discuz论坛数据库的登录账号密码信息,可以参考查询数据库信息。
网站本身的数据库是和程序分开的,大部分主机都是储存在两个空间。小型虚拟主机,没有权限查看数据库文件,但是会提供在线管理的工具,一般在空间后台有提供链接。
云主机,快云VPS,云服务器,以及独立主机,都有远程服务器管理权限的,直接登录远程,就可以查看数据库位置。
目前的情况看,快云VPS都自带云数据库,也有管理平台,可以后台直接打开,登录管理数据库。
全是自己一步一步手敲出来的 ,表为User,字段有 编号: int id,用户名:string UserName,密码:string UserPwd/// <summary>
/// 添加
/// </summary>
/// <param name="name">用户名</param>
/// <param name="pwd">密码</param>
/// <returns></returns>
[WebMethod]
public int Add(string name,string pwd)
{
SqlConnection conn = new SqlConnection("连接字符串")
conn.Open()
string sql = "intsert into User (UserName,UsersPwd) values(@UserName,@UsersPwd)"
SqlCommand cmd = new SqlCommand(sql, conn)
SqlParameter parn = new SqlParameter("@UserName", name)
cmd.Parameters.Add(parn)
SqlParameter parp = new SqlParameter("@UsersPwd", pwd)
cmd.Parameters.Add(parp)
int result = cmd.ExecuteNonQuery()
conn.Close()
cmd.Dispose()
return result
}
/// <summary>
/// 修改
/// </summary>
/// <param name="name">用户名</param>
/// <param name="pwd">密码</param>
/// <param name="id">编号</param>
/// <returns></returns>
[WebMethod]
public int Update(string name, string pwd, int id)
{
SqlConnection conn = new SqlConnection("连接字符串")
conn.Open()
string sql = "update User set UserName=@UserName,UsersPwd=@UsersPwd where id=@id"
SqlCommand cmd = new SqlCommand(sql, conn)
SqlParameter parn = new SqlParameter("@UserName", name)
cmd.Parameters.Add(parn)
SqlParameter parp = new SqlParameter("@UsersPwd", pwd)
cmd.Parameters.Add(parp)
SqlParameter pari = new SqlParameter("@id", id)
cmd.Parameters.Add(pari)
int result = cmd.ExecuteNonQuery()
conn.Close()
cmd.Dispose()
return result
}
/// <summary>
/// 删除
/// </summary>
/// <param name="id">编号</param>
/// <returns></returns>
[WebMethod]
public int Delete(int id)
{
SqlConnection conn = new SqlConnection("连接字符串")
conn.Open()
string sql = "delete from User where id=@id"
SqlCommand cmd = new SqlCommand(sql, conn)
SqlParameter pari = new SqlParameter("@id", id)
cmd.Parameters.Add(pari)
int result = cmd.ExecuteNonQuery()
conn.Close()
cmd.Dispose()
return result
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)