mySQL一次插入多条记录

niaowxf 2008-11-19 10:45:26
我想在数据库一次插入多条数据,现在是这样的情况(一个邮件表)
表字段:[id],[收件人],[发件人],[内容],[标题]
其中 发件人是我自己的[id],收件人是我从列表中获取的[id](比如为(1,2,3,4,5,6,7)),现在我想把这些记录一次性插入数据库,怎么写,那位兄弟帮下忙 谢谢
...全文
605 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjlwjn 2011-08-23
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 niaowxf 的回复:]

弄好了 我是这样写的
public void sentEamilToTruf(EmailBean emailbean,String SelectedID) throws Exception
{
StringBuffer sqlstr = new StringBuffer();
int RecipientID=0;
String[] id=SelectedID.split(",");
……
[/Quote]
LZ,能具体交流下么?你的DBDataSource里怎么写啊?可否留下联系方式。我邮箱:wjl_lx@163.com
tujiyue 2008-11-19
  • 打赏
  • 举报
回复
可以写sql语句,也可以写在.sql文件里,这样不就一次性解决了?
niaowxf 2008-11-19
  • 打赏
  • 举报
回复
没用什么 就是普通的sql语句
getdate 2008-11-19
  • 打赏
  • 举报
回复
LZ用的是什么技术啊?
hibernate?
boy_wh520 2008-11-19
  • 打赏
  • 举报
回复
public int[] add_Batch_Leaguer(ArrayList al) throws Exception {
conn = da.getConnection();
LeaguerBean lb = new LeaguerBean();
String sql = "insert into YDZJ_COMMON_ENT_MEMBER_INFO(s_id,F_CALLOUT,F_LDTEL,FEE_FLAG,USER_NAME,NAME_INDEX,PHONENUM,SHORTNUM,POSITION,display_flag) values (?,?,?,?,?,?,?,?,?,?)";//sql
int[] a = new int[al.size()];
try {
conn.setAutoCommit(false);
stmt = conn.prepareStatement(sql);
for (int i = 0; i < al.size(); i++) {//这是多收件人是我从列表中获取的[id](比如为(1,2,3,4,5,6,7)),
lb = (LeaguerBean) al.get(i);
//这里是你需要绑定的参数
stmt.addBatch();
}
a = stmt.executeBatch();
conn.commit();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
da.close(conn, stmt, rs);
}
return a;
}
xzh_endless 2008-11-19
  • 打赏
  • 举报
回复
收件人字段变成 text 里面存储所有的收件人ID。以某个分隔符分隔
niaowxf 2008-11-19
  • 打赏
  • 举报
回复
弄好了 我是这样写的
public void sentEamilToTruf(EmailBean emailbean,String SelectedID) throws Exception
{
StringBuffer sqlstr = new StringBuffer();
int RecipientID=0;
String[] id=SelectedID.split(",");
ArrayList sql=new ArrayList();
for(int i=0;i<id.length;i++)
{
RecipientID=Tools.parseInt(id[i].toString());
sqlstr.append("Insert into EMAIL(Title,Content,Recipient,Fromer,Time,IsFriendLetter,IsTurfLetter)values(");
sqlstr.append(Tools.SqlStr(emailbean.getTitle())+",");
sqlstr.append(Tools.SqlStr(emailbean.getContent())+",");
sqlstr.append(RecipientID+",");
sqlstr.append(Tools.parseInt(emailbean.getFromer())+",");
sqlstr.append("now(),");
sqlstr.append("0,");
sqlstr.append("1");
sqlstr.append(")");
sql.add(sqlstr.toString());
sqlstr.delete(0, sqlstr.capacity());
}
DBDataSource.executeSQL(sql, con);
}
Warrior_hsn 2008-11-19
  • 打赏
  • 举报
回复
写个脚本啊。
steryzone 2008-11-19
  • 打赏
  • 举报
回复
可以像1楼说的那样阿。或者麻烦一些的可以用循环,拿取每一个id时给添加一条信息(插入一条信息),但是这样会加大数据库的负担。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧