文章来源:IT工程信息网 http://www.systhinker.com/?action-viewnews-itemid-17232
最近做公司的网站,开发语言是。Net。本来是想用户linq来实现数据访问层的,但所用的数据库是oracle的,在网上也找了相关的资料,希望用linq来实现数据访问,最终还是放弃了,原因:没有开发工具的支持,不够稳定。所以就自己写了下些数据访问层的代码。分享给大家,高手看到往指点下。
下面是数据库链接类
1 删除
数据访问执行存储过程
2删除
数据访问过程定义
1
///
<summary>
2 /// 创建用户空间信息
3 /// </summary>
4 /// <param name="uid"></param>
5 /// <returns></returns>
6 public static ooDbProcedure CreateSpaceInfo( long uid)
7 {
8 const string sql = " insert into oouserinfo (userid,px,py,PURVIEW,BIRTHDAY,HOME,PHONE,QQ,SEX)values(:1,:2,:3,:4,:5,:6,:7,:8,:9) " ;
9 ooDbProcedure procedure = new ooDbProcedure(sql) { ComType = System.Data.CommandType.Text };
10 procedure.AddInParameter( " userid " , uid);
11 procedure.AddInParameter( " px " , 0 );
12 procedure.AddInParameter( " py " , 0 );
13 procedure.AddInParameter( " PURVIEW " , 1 );
14 procedure.AddInParameter( " BIRTHDAY " , 0 );
15 procedure.AddInParameter( " HOME " , "" );
16 procedure.AddInParameter( " PHONE " , "" );
17 procedure.AddInParameter( " QQ " , "" );
18 procedure.AddInParameter( " SEX " , 0 );
19 return procedure;
20 }
2 /// 创建用户空间信息
3 /// </summary>
4 /// <param name="uid"></param>
5 /// <returns></returns>
6 public static ooDbProcedure CreateSpaceInfo( long uid)
7 {
8 const string sql = " insert into oouserinfo (userid,px,py,PURVIEW,BIRTHDAY,HOME,PHONE,QQ,SEX)values(:1,:2,:3,:4,:5,:6,:7,:8,:9) " ;
9 ooDbProcedure procedure = new ooDbProcedure(sql) { ComType = System.Data.CommandType.Text };
10 procedure.AddInParameter( " userid " , uid);
11 procedure.AddInParameter( " px " , 0 );
12 procedure.AddInParameter( " py " , 0 );
13 procedure.AddInParameter( " PURVIEW " , 1 );
14 procedure.AddInParameter( " BIRTHDAY " , 0 );
15 procedure.AddInParameter( " HOME " , "" );
16 procedure.AddInParameter( " PHONE " , "" );
17 procedure.AddInParameter( " QQ " , "" );
18 procedure.AddInParameter( " SEX " , 0 );
19 return procedure;
20 }
可以是存储过程,也可以是sql语句,返回一个ooDbProcedure对象,这个对象就可以执行相应的sql操作。如
ooDbProcedure.ExecuteNonQuery(ooUserDal.CreateSpaceInfo(userid));
也可以执行带数据读取的sql操作
1 /// <summary>
2
///
根据用户id获取用户对象
3 /// </summary>
4 /// <param name="uid"></param>
5 /// <returns></returns>
6 public static ooDbProcedure GetUser( long uid)
7 {
8 const string sql = " select * from user " ;
9 ooDbProcedure procedure = new ooDbProcedure(sql) { ComType = System.Data.CommandType.Text };
10 procedure.AddInParameter( " p1 " , uid);
11 return procedure;
12 }
3 /// </summary>
4 /// <param name="uid"></param>
5 /// <returns></returns>
6 public static ooDbProcedure GetUser( long uid)
7 {
8 const string sql = " select * from user " ;
9 ooDbProcedure procedure = new ooDbProcedure(sql) { ComType = System.Data.CommandType.Text };
10 procedure.AddInParameter( " p1 " , uid);
11 return procedure;
12 }
数据读取方法,也是模型对应关系
1 /// <summary>
2
///
读取用户信息
3 /// </summary>
4 /// <param name="reader"></param>
5 /// <returns></returns>
6 public static ooUser ReadUser(IDataReader reader)
7 {
8 ooSafeDataReader saferader = new ooSafeDataReader(reader);
9 if (saferader.Read())
10 {
11 ooUser user = new ooUser();
12 user.I = Convert.ToInt64(saferader.GetValue( " id " ));
13 user.N = saferader.GetString( " uname " );
14 user.Pho = saferader.GetString( " PHOTO " );
15 user.Em = saferader.GetString( " email " ); 16
26 return user;
27 }
28 return null ;
29 }
3 /// </summary>
4 /// <param name="reader"></param>
5 /// <returns></returns>
6 public static ooUser ReadUser(IDataReader reader)
7 {
8 ooSafeDataReader saferader = new ooSafeDataReader(reader);
9 if (saferader.Read())
10 {
11 ooUser user = new ooUser();
12 user.I = Convert.ToInt64(saferader.GetValue( " id " ));
13 user.N = saferader.GetString( " uname " );
14 user.Pho = saferader.GetString( " PHOTO " );
15 user.Em = saferader.GetString( " email " ); 16
26 return user;
27 }
28 return null ;
29 }
那么读取数据操作就可以这样写
1
///
<summary>
2 /// 根据用户id获取用户
3 /// </summary>
4 /// <param name="id"></param>
5 /// <returns></returns>
6 public ooUser GetUser( long id)
7 {
8 return ooDbProcedure.Excute < ooUser > (ooUserDal.GetUser(id), ooUserDal.ReadUser);
9 }
2 /// 根据用户id获取用户
3 /// </summary>
4 /// <param name="id"></param>
5 /// <returns></returns>
6 public ooUser GetUser( long id)
7 {
8 return ooDbProcedure.Excute < ooUser > (ooUserDal.GetUser(id), ooUserDal.ReadUser);
9 }
获取方法也可加如些业务逻辑
文章来源:IT工程信息网 http://www.systhinker.com/?action-viewnews-itemid-17232