
使用List集合形式的参数的批量 *** 作
如果使用List集合来进行批量 *** 作,首先要把待添加的数据与实体类对应(一个实体类通常对应数据库里的一张表, 下面的例子中Actor类就是一个实体类, 它对应了数据库中的 "t_actor"数据表).
比如"t_actor"数据表中有id,first_name,last_name三个字段, 那么对应Actor类就要有id, firstName, lastName属性, 且都得有getter, setter方法.
spring jdbc core 包中提供了一个SqlParamterSource 对象,这个对象用于SQL语句参数的设置.
使用SqlParameterSourceUtils.createBatch这个方法,把javabean(即上面说的实体类)的list 转化成array,spring会循环的进行取值;
public class JdbcActorDao implements ActorDao {private NamedParameterTemplate namedParameterJdbcTemplate
public void setDataSource(DataSource dataSource) {
this.namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(dataSource)
}
public int[] batchUpdate(final List<Actor> actors) {
SqlParameterSource[] batch = SqlParameterSourceUtils.createBatch(actors.toArray())
int[] insertCounts = namedParameterJdbcTemplate.batchUpdate(
"INSERT INTO t_actor (id,first_name,last_name) VALUES(:id,:firstName, :lastName )",batch)
return insertCounts
}
// ... additional methods
}
http://www.tuicool.com/articles/Ar6RNr
上学期教同学时写了一个绝对适合入门的小例子 用的是asp.net mvc3+linq to entitylinq to entity和linq to sql在使用上本身差距不大 你肯定能看懂的
*razor页面中用的是弱类型的helper
还有疑问可以去此论坛.net区提问:
http://bbs.ctrlc.com.cn/
欢迎交流
原文地址:http://user.qzone.qq.com/523080653/blog/1300030445
--------------------------------------------------------------------------------------------------------------
今天给同学演示用的demo 无美工无分层无XXXXXX 三无产品 绝对适合入门...
就一张表 UserInfo{UserID,UserName,UserPassword}
逻辑写controller里了 model里就一个实体 就不列出来了
HomeController
using System
using System.Collections.Generic
using System.Linq
using System.Web
using System.Web.Mvc
using TestDemo.Models
using System.Data.Objects
namespace TestDemo.Controllers
{
public class HomeController : Controller
{
//
// GET: /Home/
public ActionResult Index()
{
TestEntities te = new TestEntities()
ObjectQuery<UserInfo>userInfos = te.UserInfoes
var users = from u in userInfos
select u
ViewData.Model = users.ToList()
return View()
}
public ActionResult Delete(int id)
{
TestEntities te = new TestEntities()
ObjectQuery<UserInfo>userInfos = te.UserInfoes
var query = userInfos.Single(u =>u.UserID == id)
te.DeleteObject(query)
te.SaveChanges()
return RedirectToAction("Index")
}
public ActionResult Add()
{
return View()
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Add(FormCollection form)
{
TestEntities te = new TestEntities()
UserInfo addUser = new UserInfo()
{
UserName = form["userName"].ToString(),
UserPassword = form["userPassword"].ToString()
}
te.UserInfoes.AddObject(addUser)
te.SaveChanges()
return RedirectToAction("Index")
}
public ActionResult Edit(int id)
{
TestEntities te = new TestEntities()
ObjectQuery<UserInfo>userInfos = te.UserInfoes
UserInfo user = userInfos.Single(u =>u.UserID == id)
ViewData.Model = user
return View()
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(FormCollection form)
{
TestEntities te = new TestEntities()
ObjectQuery<UserInfo>userInfos = te.UserInfoes
int id = Int32.Parse( form["userID"].ToString())
var query = from u in userInfos
where u.UserID == id
select u
UserInfo editUser = query.First()
UserInfo user = new UserInfo()
{
UserID=id,
UserName = form["userName"].ToString(),
UserPassword = form["userPassword"].ToString()
}
editUser.UserName = user.UserName
editUser.UserPassword = user.UserPassword
te.SaveChanges()
return RedirectToAction("Index")
}
}
}
Add.cshtml
@{
ViewBag.Title = "Add"
}
<h2>Add</h2>
@using (Html.BeginForm())
{
@Html.Label("姓名")
@Html.TextBox("userName")
<hr />
@Html.Label("密码")
@Html.TextBox("userPassword")
<input type="submit" value="提交"/>
}
Edit.cshtml
@using TestDemo.Models
@{
ViewBag.Title = "Edit"
}
<h2>
Edit</h2>
@using (Html.BeginForm())
{
UserInfo query = ViewData.Model
@Html.Label("ID", query.UserID.ToString())
<br />
@Html.Label("姓名")
@Html.TextBox("userName")<br />
@Html.Label("密码")
@Html.TextBox("userPassword")<br />
@Html.Hidden("userID", query.UserID)
<input type="submit" value="提交" />
}
Index.cshtml
@using TestDemo.Models
@{
ViewBag.Title = "Index"
}
<!DocType html />
<html>
<head>
<title></title>
<link href="@Url.Content("../Content/Test.css")" type="text/css" rel="Stylesheet" />
</head>
<body>
<div class="all" >
<div class="top">
</div>
<div class="content">
@{
List<UserInfo>users = ViewData.Model
@Html.ActionLink("添加", "Add")
<table id="qzw">
@foreach (UserInfo user in users)
{
<tr>
<td>@user.UserID
</td>
<td>@user.UserName
</td>
<td>@user.UserPassword
</td>
<td>@Html.ActionLink("删除", "Delete", new { id = user.UserID })
</td>
<td>@Html.ActionLink("修改", "Edit", new { id = user.UserID })
</td>
</tr>
}
</table>
}
</div>
</div>
</body>
</html>
分析iis日志,解决掉5xx(服务代码错误),955(页面加载过慢)
引入分布式缓存
数据库读写分离
网站优化方案大方向都很固定,具体还是根据自己网站的实际情况。可以看看淘宝,京东出的技术书。里面有他们网站的架构,各种问题有对应的解决方案,可以借鉴。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)