.NET怎么连接一次数据库执行多条语句

protected void Button1_Click(object sender, EventArgs e)
{
string SqlStr = ConfigurationManager.ConnectionStrings["conn"].ToString();

SqlConnection conn = new SqlConnection(SqlStr);

conn.Open();
string sql3 = "select 编号 from CS where 编号 = '" + TextBox1.Text.Trim() + "'";
SqlCommand cmd3 = new SqlCommand(sql3, conn);
cmd3.CommandText = sql3;
cmd3.Connection = conn;
try
{
string BH = cmd3.ExecuteScalar().ToString();
string sql2 = "update CS set 数量 = 数量+1 where 编号 = " + TextBox1.Text.Trim();
SqlCommand cmd2 = new SqlCommand(sql2, conn);

        Response.Write("<script>alert('插入成功')</script>");
    }
    catch
    {
        string sql1 = "insert into CS (编号,索书号,书名,作者,数量) values (";
        sql1 += "'" + TextBox1.Text.Trim() + "','" + TextBox2.Text.Trim() + "','" + TextBox3.Text.Trim() +
            "','" + TextBox4.Text.Trim() + "','" + "1" + "')";
        SqlCommand cmd1 = new SqlCommand(sql1, conn);
        Response.Write("<script>alert('插入成功')</script>");
    }

    conn.Close();

}

第一条语句执行没问题,后面两条语句不报错但没有结果,我的是SQL数据库

2个回答

SqlCommand cmd = new SqlCommand(sql, conn);
你应该要在这一句后面加上 cmd.ExecuteNonQuery();
cmd.ExecuteNonQuery()才是cmd的执行,你现在只是赋值,并没有执行cmd语句

yunchen_yuan
yunchen_yuan 确实是这个问题,感谢
大约 3 年之前 回复

如果你第一条语句执行没有报异常,就不会执行后两条。一种可能出现的异常是,你没有查询到编号,那么进入catch。
如果都要执行,不要写在catch里。

caozhy
每个人都有一个梦才不会孤单的说话就有天堂 回复yunchen_yuan: 另外你cmd1和cmd2没有执行。加上 cmd1.ExecuteScalar(); 和 cmd2.ExecuteScular();
大约 3 年之前 回复
yunchen_yuan
yunchen_yuan 感谢回答,问题找到了,少写了一句返回执行行数的语句,结果没有被执行
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
请问在mybatis连接oracle数据库中,能否一个个方法执行多条语句,该如何操作?
请问在mybatis连接oracle数据库中,能否一个个方法执行多条语句,该如何操作? 其中有truncate,delete,insert等操作
数据库优化问题,数据未修改的时候执行update语句,数据库有自我优化吗
我有个疑问,在数据未修改的时候执行update语句,数据库会自我判断还是无脑执行? 我用的oracle11g。如果不同数据库的结果不同麻烦指出。 举个栗子,有条数据,数据库中name是张三,我又执行了一个update set name = ‘张三’,数据库会怎么操作? 是无脑的执行我的语句,还是会自我优化判断一下相同就不执行了? 当很多条数据未修改的时候数据库会自我优化吗? 新人币子不多 = = 别嫌少
为什么Python调用Pymysql执行sql查询语句比数据库中慢得很多很多?
1、问题:简单查询数据库用户表中的用户ID,用户表比较大,有一千多万条记录,用Mysql查询select uid as 用户ID from ucenter.usr_user 即可解决,但是用Python调用Pymysql链接数据库查询的时候非常慢,等了十分钟也没解决,但是加上限制查询条数select uid as 用户ID from ucenter.usr_user limit 100很快就能得到结果,具体原因是什么呢? ``` # 打开数据库连接(ip/数据库用户名/登录密码/数据库名) db = pymysql.connect(host = "", user = "", passwd = "",\ db = "", port = ) #使用cursor()方法获取操作游标 cursor = db.cursor() sql = ''' select uid as 用户ID from ucenter.usr_user ''' #使用execute方法执行SQL语句 cursor.execute(sql) # 使用 fetchone() 方法获取一条数据 data=cursor.fetchall() # 关闭数据库连接 db.close() ```
执行Delect好像未连接上数据库
package edu.jmi.xyh.view; import java.awt.BorderLayout; public class DeleteView extends JFrame { private JPanel contentPane; private JTextField txID; private JTextField txName; private JPasswordField txPw; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { DeleteView frame = new DeleteView(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public DeleteView() { setTitle("\u5220\u9664\u5B66\u751F\u4FE1\u606F"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); JLabel label = new JLabel("\u5220 \u9664 \u5B66 \u751F \u4FE1 \u606F"); label.setFont(new Font("宋体", Font.PLAIN, 16)); label.setBounds(140, 22, 147, 15); contentPane.add(label); JLabel lblId = new JLabel("\u7528 \u6237 ID\uFF1A"); lblId.setBounds(95, 55, 69, 15); contentPane.add(lblId); txID = new JTextField(); txID.setBounds(174, 52, 113, 21); contentPane.add(txID); txID.setColumns(10); JLabel label_2 = new JLabel("\u7528 \u6237 \u540D\uFF1A"); label_2.setBounds(95, 98, 66, 15); contentPane.add(label_2); JLabel label_3 = new JLabel("\u5BC6 \u7801\uFF1A"); label_3.setBounds(95, 143, 54, 15); contentPane.add(label_3); txName = new JTextField(); txName.setBounds(174, 95, 113, 21); contentPane.add(txName); txName.setColumns(10); JButton button = new JButton("\u5220\u9664"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String id=txID.getText(); String pw=txPw.getText(); String name=txName.getText(); Student student=new Student(); student.setStuId(id); student.setStuName(name); student.setStuPwd(pw); StudentDao studentDao=new StudentDao(); int result=studentDao.delete(id); if(result==0){ JOptionPane.showMessageDialog(null, "删除成功!"); } else{ JOptionPane.showMessageDialog(null, "删除失败!"); } System.out.println("id="+id+"pw="+pw); } }); button.setBounds(75, 189, 93, 23); contentPane.add(button); JButton button_1 = new JButton("\u53D6\u6D88"); button_1.setBounds(232, 189, 93, 23); contentPane.add(button_1); txPw = new JPasswordField(); txPw.setBounds(174, 140, 113, 21); contentPane.add(txPw); } } package edu.jmi.xyh.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import edu.jmi.xyh.bean.Student; public class StudentDao { //测试用 //ORM object relation mapping hibernate,ibaits //每一条记录映射每一个对象,记录集合映射成对象集合List //Dao data access object //save将一个java对象存储到数据库表中,就是将对象转换为记录 public int save(Student student){ //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dboperation= new DBOperation(); //获取数据库连接 Connection connection=null; try{ connection=dboperation.getConnection(); Statement st=connection.createStatement(); //字符串拼接 String sql="insert into student(stuId,stuName,stuPwd)values('" +student.getStuId()+"','"+student.getStuName()+"','"+student.getStuPwd()+"')"; //用来在程序中指挥sql命令执行 st.execute(sql); System.out.println(sql); return 0; }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return -1; }finally{ dboperation.closeConnect(connection); } } public int update(Student student){ //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dboperation= new DBOperation(); //获取数据库 Connection connection=null; try{ connection=dboperation.getConnection(); Statement st=connection.createStatement(); //字符串拼接 String sql="update student set stuName='"+student.getStuName()+ "', stuPwd='"+student.getStuPwd()+"' where stuId='"+ student.getStuId()+"'"; st.execute(sql); System.out.println(sql); return 0; }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return -1; }finally{ dboperation.closeConnect(connection); } } public int delete(Student student){ //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dboperation= new DBOperation(); //获取数据库连接 Connection connection=null; try{ connection=dboperation.getConnection(); String sql="delete from student where stuId='?'"; PreparedStatement pst=connection.prepareStatement(sql); pst.setString(1, student.getStuId()); pst.execute(); /* Statement st=connction.createStatement(); //字符串拼接 String sql="delete from student where Stuid='"+student.getStuid()+"'"; st.execute(sql);*/ System.out.println(sql); return 0; }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return -1; }finally{ dboperation.closeConnect(connection); } } //查询结果放到集合中,集合中的每一个对象都是student <>是泛型 public List<Student> query(){ //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dboperation= new DBOperation(); //获取数据库 Connection connection=null; List<Student> list = new ArrayList<Student>(); try{ connection=dboperation.getConnection(); Statement st=connection.createStatement(); //查询语句 String sql="select* from student"; //查询语句执行exuecuteQuery,不是execte,执行后放回结果集resultset,把resultsest变成list,通过遍历实现 ResultSet rs=st.executeQuery(sql); //rs.next向下移动一行,刚开始在第0行。如果该行存在,返回true,否则会返回false, //每一行对应一个student对象,全部记录对应list //getInt,getString,getDate,getBoolean,获取该字段的值 //getInt(1),getInt("stuId") //可能有多条用while,最多用一条用if if(rs.next()){ Student student=new Student(); String stuId=rs.getString("stuId"); String stuName=rs.getString("stuName"); String stuPwd=rs.getString("stuPwd"); student.setStuId(stuId); student.setStuName(stuName); student.setStuPwd(stuPwd); //最后将student对象存放到集合中 list.add(student); } System.out.println(sql); return list; }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return null; }finally{ dboperation.closeConnect(connection); } } //重载 public static Student query(String id) { // TODO Auto-generated method stub //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dbOperation=new DBOperation(); //获取数据库连接 Connection connction=null; try{ connction=dbOperation.getConnection(); Statement st=connction.createStatement(); //查询语句 String sql="select * from student where stuid='"+id+"'"; //查询语句执行exuecuteQuery,不是execute,执行后放回结果集resultset,把resultset变成list,通过遍历实现 ResultSet rs=st.executeQuery(sql); //可能有多条用while,最多一条就用if可以了。码农 Student student=null; if(rs.next()){ //如果有记录,新建一个student对象,将查到的结果封装到student对象中。 student=new Student(); String stuId=rs.getString("stuId"); String stuName=rs.getString("stuName"); String stuPwd=rs.getString("stuPwd"); student.setStuId(stuId); student.setStuName(stuName); student.setStuPwd(stuPwd); } return student; }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return null; }finally{ dbOperation.closeConnect(connction); } } public static void main(String args[]){ StudentDao studentDao=new StudentDao(); List<Student> list=studentDao.query(); //for each语句 iterator for(Student student:list){ System.out.println(student.getStuName()); } /*Student student=new Student(); student.setStuId("152118130235"); student.setStuName("徐耀辉"); student.setStuPwd("979194874");*/ } public int delete(String id) { // TODO Auto-generated method stub return 0; } }
实时大数据写入数据库
项目:IOCP的多线程(工作线程)解析大量客户端发送过来的数据;这个数据量是非常大的,上千个客户端,每50MS发送一个数据包过来,要把他们写入数据库。以下是我做的两种设计,均不能成功。 1.简单地通过程序一条一条地执行SQL语句写入数据库,失败,效率极低,淘汰。 2.我目前的处理是把这个SQL语句做一个拼接(...+SQL语句+;+SQL 语句+;+...),然后一并执行,写入数据库,但是这么设计的话,内存会一直涨,因为写入数据库的速率小于IOCP解析出来的数据所形成的SQL语句,它是占内存。 需解决的问题如下: 在不做分布式数据库设计的情况,有什么高性能的写数据库的方法, 我是用的数据库是SQL server 2008 ,用VC++ 实现,因为C#的话,微软封装了相应的类。求高手指教
adodb.recordset获取多个数据结果集
  asp的adodb.recordset如何获取支持返回多个数据库数据结果的数据集合,如ms sqlserver支持一次返回多个数据结合,adodb.recordset如何获取多个结果集合。   平常用adodb.recordset时一般只返回一个结果结合,直接遍历recordset即可。如下 ``` sConnectString = "DRIVER={sql server};SERVER=localhost;" & _ "DATABASE=northwind;UID=sa;PWD=" set oRS = Server.CreateObject("ADODB.Recordset") oRS.Open "SELECT categoryId, categoryName FROM Categories " & _ "WHERE categoryId > 3", sConnectString Do While Not oRs.EOF '相关操作。。 oRs.MoveNext Loop oRS.Close ```  但是如果要执行多条sql select语句,一次性获取多个数据结合,该如何处理?
同一条SQL语句,myBatis查出来的数据和Navicat查出来的数据不同
通过日志打印的mybatis执行的SQL语句,原原本本复制到数据库,可以查出来很多条数据,但是mybatis要么查不到,要么少数据。 1.已尝试过写死传入参数,证明不是参数问题 2.尝试过select *,无效 3.尝试过查询的数据不小于resultMap里面的数据,也无效 4.写一个POJO类(是叫DTO吧?)来接收数据,也无效 5.SQL语句很简单,而且是通过复制到数据库,以及属性名都是通过复制,不存在写错。 走投无路了。。 以下是代码段以及日志: 日志: ``` 2018-07-02 14:05:00,244 DEBUG [org.mybatis.spring.SqlSessionUtils] - Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5f2b1d49] 2018-07-02 14:05:00,244 DEBUG [org.mybatis.spring.SqlSessionUtils] - Fetched SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5f2b1d49] from current transaction 2018-07-02 14:05:00,244 DEBUG [com.talk915.liveManagement.webapp.dao.group.VideoRecordDao.getDataByRoomIdforquery] - ==> Preparing: select v.VideoStream videoStream,v.FileSize fileSize,v.Quality quality,v.UserType userType from vod_videorecord v where trim(v.RoomID) = ? 2018-07-02 14:05:00,244 DEBUG [com.talk915.liveManagement.webapp.dao.group.VideoRecordDao.getDataByRoomIdforquery] - ==> Parameters: 9(Integer) 2018-07-02 14:05:00,316 DEBUG [com.talk915.liveManagement.webapp.dao.group.VideoRecordDao.getDataByRoomIdforquery] - <== Total: 17 2018-07-02 14:05:00,316 DEBUG [org.mybatis.spring.SqlSessionUtils] - Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5f2b1d49] 2018-07-02 14:05:00,316 DEBUG [org.mybatis.spring.SqlSessionUtils] - Fetched SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5f2b1d49] from current transaction 2018-07-02 14:05:00,316 DEBUG [com.talk915.liveManagement.webapp.dao.group.VideoRecordDao.getDataByRoomIdforquery] - ==> Preparing: select v.VideoStream videoStream,v.FileSize fileSize,v.Quality quality,v.UserType userType from vod_videorecord v where trim(v.RoomID) = ? 2018-07-02 14:05:00,316 DEBUG [com.talk915.liveManagement.webapp.dao.group.VideoRecordDao.getDataByRoomIdforquery] - ==> Parameters: 3(Integer) 2018-07-02 14:05:00,393 DEBUG [com.talk915.liveManagement.webapp.dao.group.VideoRecordDao.getDataByRoomIdforquery] - <== Total: 1143 2018-07-02 14:05:00,394 DEBUG [org.mybatis.spring.SqlSessionUtils] - Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5f2b1d49] 2018-07-02 14:05:00,394 DEBUG [org.mybatis.spring.SqlSessionUtils] - Fetched SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5f2b1d49] from current transaction 2018-07-02 14:05:00,394 DEBUG [com.talk915.liveManagement.webapp.dao.group.VideoRecordDao.getDataByRoomIdforquery] - ==> Preparing: select v.VideoStream videoStream,v.FileSize fileSize,v.Quality quality,v.UserType userType from vod_videorecord v where trim(v.RoomID) = ? 2018-07-02 14:05:00,394 DEBUG [com.talk915.liveManagement.webapp.dao.group.VideoRecordDao.getDataByRoomIdforquery] - ==> Parameters: 2(Integer) 2018-07-02 14:05:00,472 DEBUG [com.talk915.liveManagement.webapp.dao.group.VideoRecordDao.getDataByRoomIdforquery] - <== Total: 36 2018-07-02 14:05:00,472 DEBUG [org.mybatis.spring.SqlSessionUtils] - Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5f2b1d49] 2018-07-02 14:05:00,472 DEBUG [org.mybatis.spring.SqlSessionUtils] - Fetched SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5f2b1d49] from current transaction 2018-07-02 14:05:00,472 DEBUG [com.talk915.liveManagement.webapp.dao.group.VideoRecordDao.getDataByRoomIdforquery] - ==> Preparing: select v.VideoStream videoStream,v.FileSize fileSize,v.Quality quality,v.UserType userType from vod_videorecord v where trim(v.RoomID) = ? 2018-07-02 14:05:00,472 DEBUG [com.talk915.liveManagement.webapp.dao.group.VideoRecordDao.getDataByRoomIdforquery] - ==> Parameters: 1(Integer) 2018-07-02 14:05:00,546 DEBUG [com.talk915.liveManagement.webapp.dao.group.VideoRecordDao.getDataByRoomIdforquery] - <== Total: 575 ``` 以最后一条查询语句为例 : select v.VideoStream videoStream,v.FileSize fileSize,v.Quality quality,v.UserType userType from vod_videorecord v where trim(v.RoomID) = ? 参数:1 返回条数:575条 数据库数据: 594条 这是差的少的情况,差的多了,直接差了几百,一千条数据都是.. 数据库数据: ![图片说明](https://img-ask.csdn.net/upload/201807/02/1530513646_410092.png) mapper里面代码段: ![图片说明](https://img-ask.csdn.net/upload/201807/02/1530513593_738695.png)
执行delete没有报错,就是删不掉数据,sql语句也有,求大神
package edu.jmi.xyh.view; import java.awt.BorderLayout; public class DeleteView extends JFrame { private JPanel contentPane; private JTextField txID; private JTextField txName; private JPasswordField txPw; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { DeleteView frame = new DeleteView(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public DeleteView() { setTitle("\u5220\u9664\u5B66\u751F\u4FE1\u606F"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); JLabel label = new JLabel("\u5220 \u9664 \u5B66 \u751F \u4FE1 \u606F"); label.setFont(new Font("宋体", Font.PLAIN, 16)); label.setBounds(140, 22, 147, 15); contentPane.add(label); JLabel lblId = new JLabel("\u7528 \u6237 ID\uFF1A"); lblId.setBounds(95, 55, 69, 15); contentPane.add(lblId); txID = new JTextField(); txID.setBounds(174, 52, 113, 21); contentPane.add(txID); txID.setColumns(10); JLabel label_2 = new JLabel("\u7528 \u6237 \u540D\uFF1A"); label_2.setBounds(95, 98, 66, 15); contentPane.add(label_2); JLabel label_3 = new JLabel("\u5BC6 \u7801\uFF1A"); label_3.setBounds(95, 143, 54, 15); contentPane.add(label_3); txName = new JTextField(); txName.setBounds(174, 95, 113, 21); contentPane.add(txName); txName.setColumns(10); JButton button = new JButton("\u5220\u9664"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String id=txID.getText(); String pw=txPw.getText(); String name=txName.getText(); Student student=new Student(); student.setStuId(id); student.setStuName(name); student.setStuPwd(pw); StudentDao studentDao=new StudentDao(); int result=studentDao.delete(id); if(result==0){ JOptionPane.showMessageDialog(null, "删除成功!"); } else{ JOptionPane.showMessageDialog(null, "删除失败!"); } System.out.println("id="+id+"pw="+pw); } }); button.setBounds(75, 189, 93, 23); contentPane.add(button); JButton button_1 = new JButton("\u53D6\u6D88"); button_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //生成一个对象 MainView mainView = new MainView(); //隐藏窗口 DeleteView.this.setVisible(false); mainView.setVisible(true); } }); button_1.setBounds(232, 189, 93, 23); contentPane.add(button_1); txPw = new JPasswordField(); txPw.setBounds(174, 140, 113, 21); contentPane.add(txPw); } public void setMainView(MainView mainView) { // TODO Auto-generated method stub } public void setID(Object id) { // TODO Auto-generated method stub } } 2.package edu.jmi.xyh.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import edu.jmi.xyh.bean.Student; public class StudentDao { //测试用 //ORM object relation mapping hibernate,ibaits //每一条记录映射每一个对象,记录集合映射成对象集合List //Dao data access object //save将一个java对象存储到数据库表中,就是将对象转换为记录 public int save(Student student){ //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dboperation= new DBOperation(); //获取数据库连接 Connection connection=null; try{ connection=dboperation.getConnection(); Statement st=connection.createStatement(); //字符串拼接 String sql="insert into student(stuId,stuName,stuPwd)values('" +student.getStuId()+"','"+student.getStuName()+"','"+student.getStuPwd()+"')"; //用来在程序中指挥sql命令执行 st.execute(sql); System.out.println(sql); return 0; }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return -1; }finally{ dboperation.closeConnect(connection); } } public int update(Student student){ //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dboperation= new DBOperation(); //获取数据库 Connection connection=null; try{ connection=dboperation.getConnection(); Statement st=connection.createStatement(); //字符串拼接 String sql="update student set stuName='"+student.getStuName()+ "', stuPwd='"+student.getStuPwd()+"' where stuId='"+ student.getStuId()+"'"; st.execute(sql); System.out.println(sql); return 0; }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return -1; }finally{ dboperation.closeConnect(connection); } } public int delete(Student student){ //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dboperation= new DBOperation(); //获取数据库连接 Connection connection=null; try{ connection=dboperation.getConnection(); String sql="delete from student where stuId='?'"; //准备执行sql语句 PreparedStatement pst=connection.prepareStatement(sql); //替换上面的问号 pst.setString(1, student.getStuId()); pst.execute(); /* Statement st=connction.createStatement(); //字符串拼接 String sql="delete from student where Stuid='"+student.getStuid()+"'"; st.execute(sql);*/ //把sql语句打出来 System.out.println(sql); //返回值 return 0; //异常处理 }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return -1; }finally{ //关闭与数据库连接 dboperation.closeConnect(connection); } } //查询结果放到集合中,集合中的每一个对象都是student <>是泛型 public List<Student> query(){ //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dboperation= new DBOperation(); //获取数据库 Connection connection=null; List<Student> list = new ArrayList<Student>(); try{ connection=dboperation.getConnection(); Statement st=connection.createStatement(); //查询语句 String sql="select* from student"; //查询语句执行exuecuteQuery,不是execte,执行后放回结果集resultset,把resultsest变成list,通过遍历实现 ResultSet rs=st.executeQuery(sql); //rs.next向下移动一行,刚开始在第0行。如果该行存在,返回true,否则会返回false, //每一行对应一个student对象,全部记录对应list //getInt,getString,getDate,getBoolean,获取该字段的值 //getInt(1),getInt("stuId") //可能有多条用while,最多用一条用if if(rs.next()){ Student student=new Student(); String stuId=rs.getString("stuId"); String stuName=rs.getString("stuName"); String stuPwd=rs.getString("stuPwd"); student.setStuId(stuId); student.setStuName(stuName); student.setStuPwd(stuPwd); //最后将student对象存放到集合中 list.add(student); } System.out.println(sql); return list; }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return null; }finally{ dboperation.closeConnect(connection); } } //重载 public static Student query(String id) { // TODO Auto-generated method stub //建立一个DBOperation,通过这个对象完成数据库的连接操作 DBOperation dbOperation=new DBOperation(); //获取数据库连接 Connection connction=null; try{ connction=dbOperation.getConnection(); Statement st=connction.createStatement(); //查询语句 String sql="select * from student where stuid='"+id+"'"; //查询语句执行exuecuteQuery,不是execute,执行后放回结果集resultset,把resultset变成list,通过遍历实现 ResultSet rs=st.executeQuery(sql); //可能有多条用while,最多一条就用if可以了。码农 Student student=null; if(rs.next()){ //如果有记录,新建一个student对象,将查到的结果封装到student对象中。 student=new Student(); String stuId=rs.getString("stuId"); String stuName=rs.getString("stuName"); String stuPwd=rs.getString("stuPwd"); student.setStuId(stuId); student.setStuName(stuName); student.setStuPwd(stuPwd); } return student; }catch(Exception ex){ ex.printStackTrace(); //返回上层判断 return null; }finally{ dbOperation.closeConnect(connction); } } public static void main(String args[]){ StudentDao studentDao=new StudentDao(); List<Student> list=studentDao.query(); //for each语句 iterator for(Student student:list){ System.out.println(student.getStuName()); } /*Student student=new Student(); student.setStuId("152118130235"); student.setStuName("徐耀辉"); student.setStuPwd("979194874");*/ } public int delete(String id) { // TODO Auto-generated method stub return 0; } }
jsp执行sql查询并取出结果 怎么实现循环遍历?求例子 初学
如题 sql表中有很多很多数据,想要查询并用表格的形式来显示出结果 已经连接上了数据库,可以执行查询语句,就是不知道该用什么方式把整个语句查询语句结果传递到显示结果的页面并且以表格的形式展现出来 String all="select sum(iNumb) as iNumbHj,sum (rMoney) as rMoneyHj from [Data_ShopDailyBill_View] group by sShopCode"; Statement stmt1 = conn.createStatement(); ResultSet c = stmt1.executeQuery(all); 就像上面的语句 怎么把执行查询语句得出来的这样一个数据 传到另一个显示界面中 并且用表格展现出来 我之前想用session一条一条传 发现根本不可能 数据很多条 求大神解答!!!急
关于怎么快速执行10000条sql语句
由于我的数据库有几千万条数据,每一条查询都会花费0.5秒,但是10000条查询需要半个多小时,所以希望有快速一点的方法,求各位大神指点,下面是我的函数。 /** * 这是一个横着的for循环,图的缩放级别是13,11*10方格,不同区域到不同区域的上车点数量 */ public static void CountListPointsOfOnetoOne() { ArrayList<String> ListSql = new ArrayList<String>(); double f_l_u_lon = 112.897715-0.012279;//首先区域的左上的经度 double f_l_u_lat = 28.249313-0.002519;//首先区域的左上的纬度 double lon_range = 0.01649; //0.014003/2;//经度区间0.007001 double lat_range = 0.0149787; //0.011176/2;//纬度区间 Connectjdbc connectjdbc = new Connectjdbc(); String sql = ""; for(int i=0;i<10;i++) { for(int j=0;j<11;j++) { double f_l_u_lon2 = (f_l_u_lon+lon_range); //首先区域的格子右下的经度 double f_l_u_lat2 = (f_l_u_lat-lat_range);//首先区域的格子右下的纬度 double s_l_u_lon = 112.897715-0.012279;//第二区域的左上的经度 double s_l_u_lat = 28.249313-0.002519;//第二区域的左上的纬度 for(int ii=0;ii<10;ii++) { for(int jj=0;jj<11;jj++) { double s_l_u_lon2 = (s_l_u_lon+lon_range); //第二区域的格子右下的经度 double s_l_u_lat2 = (s_l_u_lat-lat_range);//第二区域的格子右下的纬度 sql= "SELECT Count(ONTIME) FROM T_BUSINESSHISTORY where " + " ONTIME between TO_DATE('2013-01-1 00:00:00','yyyy-mm-dd hh24-mi-ss') " + " and TO_DATE('2013-1-31 23:59:59','yyyy-mm-dd hh24-mi-ss') " + " and ONLON between "+ f_l_u_lon*3600000+" and "+f_l_u_lon2*3600000+" " + " and ONLAT between "+ f_l_u_lat2*3600000+" and "+f_l_u_lat*3600000 + " and OFFLON between "+ s_l_u_lon*3600000+" and "+s_l_u_lon2*3600000+" " + " and OFFLAT between "+ s_l_u_lat2*3600000+" and "+s_l_u_lat*3600000 ; ListSql.add(sql); } s_l_u_lon = 112.897715-0.012279;//左上的经度 s_l_u_lat = s_l_u_lat - lat_range; } // System.out.println(sql); f_l_u_lon = f_l_u_lon + lon_range; } f_l_u_lon = 112.897715-0.012279;//左上的经度 f_l_u_lat = f_l_u_lat - lat_range; } ArrayList<String> ListCount = new ArrayList<String>(); try { ListCount = connectjdbc.GetListCount(ListSql); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
急急急,请教JSP如何调用数据库mysql的java文件。
各位好,我实在是菜鸟,在网上找个JAVA文件,连接mysql数据库,经过测试,已经成功,现在用JSP页面来调用,就是不通过,真心请各位指点,急急急,下面把JAVA文件和JSP页面发出来,小弟谢过! JAVA文件 import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Connection; import java.sql.Statement; public class DB { public static void main(String[] args) throws Exception { Connection conn = null; String sql; // MySQL的JDBC URL编写方式:jdbc:mysql://主机名称:连接端口/数据库的名称?参数=值 // 避免中文乱码要指定useUnicode和characterEncoding // 执行数据库操作之前要在数据库管理系统上创建一个数据库,名字自己定, // 下面语句之前就要先创建javademo数据库 String url = "jdbc:mysql://localhost:3306/数据库名字?" + "user=数据库用户名&password=数据库密码&useUnicode=true&characterEncoding=UTF8"; try { // 之所以要使用下面这条语句,是因为要使用MySQL的驱动,所以我们要把它驱动起来, // 可以通过Class.forName把它加载进去,也可以通过初始化来驱动起来,下面三种形式都可以 Class.forName("com.mysql.jdbc.Driver");// 动态加载mysql驱动 // or: // com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver(); // or: // new com.mysql.jdbc.Driver(); System.out.println("成功加载MySQL驱动程序"); // 一个Connection代表一个数据库连接 conn = DriverManager.getConnection(url); // Statement里面带有很多方法,比如executeUpdate可以实现插入,更新和删除等 Statement stmt = conn.createStatement(); sql = "create table student(NO char(20),name varchar(20),primary key(NO))"; int result = stmt.executeUpdate(sql);// executeUpdate语句会返回一个受影响的行数,如果返回-1就没有成功 if (result != -1) { System.out.println("创建数据表成功"); sql = "insert into student(NO,name) values('2012001','陶伟基')"; result = stmt.executeUpdate(sql); sql = "insert into student(NO,name) values('2012002','周小俊')"; result = stmt.executeUpdate(sql); sql = "select * from student"; ResultSet rs = stmt.executeQuery(sql);// executeQuery会返回结果的集合,否则返回空值 System.out.println("学号\t姓名"); while (rs.next()) { System.out .println(rs.getString(1) + "\t" + rs.getString(2));// 入如果返回的是int类型可以用getInt() } } } catch (SQLException e) { System.out.println("MySQL操作错误"); e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } finally { conn.close(); } } } JSP页面 <%@ page contentType="text/html;charset=gb2312" %> <%@ page import="java.sql.*" %> <%@ page import="java.util.*"%> <%@ page import="org.cmcc.databaseconnection.*"%> <% request.setCharacterEncoding("utf-8"); %> <% DB conn=new DB(); Statement stmt = conn.createStatement(); String str1 = "select * from yh"; ResultSet result=stmt.executeQuery(str1); if(result.next()) { %> <%=result.getString(2)%>; <% } else { %> <script language="javascript"> alert("XX"); history.back(); </script> <% } %>
mysql 授权 多个库 的同一个表
场景:多租户,每个用户一个库。每个库有张bi表。 问题:如何赋权,让数据库账号 mysql\_user 只能对所有库的bi表进行读写, 每创建一个数据库就执行一次grant赋权语句是可以满足,但可以通过一条语句就给所有库都赋权吗?
mysql数据库的PASSWORD函数在数据库的表中设置密码有什么限制?
SELECT ID,Name,PASSWORD(Pass),LoginType,CinemaID,MainAccountType from t_web_account WHERE Pass=PASSWORD( '01996666' ) and Name= 'quanguohengdian' ;同一条sql语句在mysql数据中执行有数据,在java代码中执行无数据。但我在数据库中将密码改为11996666后,java代码执行sql有记录,一切正常,求解! 初步认为PASSWORD函数中密码不能以0开头,很多密码我试了都可以。
挑战:java 批量查询SQL语句
现有一批SQL语句集,此集合中的SQL语句格式不固定,但都执行的是select 查询。 <br /> <br />要求:和数据库只建立一次连接,多次执行,每条SQL语句执行完之后都能有一个返回值。 <br /> <br />在批量操作数据方面,java提供了批量更新,但是更新要求SQL语句格式是固定的,变的只是参数。 <br /> <br />此问题,是一个挑战!欢迎各位献策! <br /> <br />
java 多线程 批量执行JDBC的 executeBatch会产生脏数据嘛
java多线程并发,每个线程中会生成多个sql语句,利用JDBC的executeBatch方法 对每个线程的产生的sql语句进行入库操作,这样会不会导致写入脏数据: 比如:A线程正在写入100条数据,B线程也正在写入100条数据,当执行JDBC的批量执行SQL的时候,会不会把B的数据复制到A的数据 中: JDBC的 方法如下: String sql="insert into xxx(id,ratio,date,status,close)" + "values(?,?,?,?,?)"; PreparedStatement pst=conn.prepareStatement(sql); String code=""; for(Today ts:tslist){ pst.setString(1, ts.getxxx); pst.setDouble(2, ts.getxxx); pst.setInt(3, ts.getxxx); pst.setInt(4, ts.getxxx); pst.setInt(5, ts.getxxx ); pst.addBatch(); } int arr[]=pst.executeBatch(); 这种数据库的批量操作,在多线程下,是不是会产生脏数据,请大牛们解答一下:
EF效率为什么捉摸不定?
**先说一下背景** 1、网站类型:wcf服务 2、框架:.NET Framwork 4.0 3、EF版本:EntityFramework.6.2.0 4、数据库:SQL Server 2008 R2 **表内数据500万+,一个普通的查询,带表连接(join),带分页(skip take),具体先不管这个查询怎么写的,因为神奇之处好像和查询本身并没有太大关系了,这个查询的作用是以管理员的ID为条件查询订单列表,表现为以下特点:** 1、有的用户很快(毫秒级),有的用户很慢(30秒超时) 2、慢的用户的订单并不是都比快的用户的订单多(此处毫无规律,有的用户订单很少,反而很慢) 3、使用Sql server Profiler可以跟踪到慢语句,Duration确实是30秒+ 4、把跟踪到的慢语句拷到查询分析器里执行,结果是毫秒级,也就是说只有在程序里慢 5、我发现语句执行的快慢和分页有关系,都是查询第一页的情况下,30条一页(take(30))就慢,29条一页就快(take(29)),关键问题是31条一页也快 _有没有大牛可以给一些指导意见,造成此问题的原因大概可能是什么,或者朝哪个方向寻找思路和解决方案,谢谢_
ODBC INSERT语句怎么向多个表插入数据,有主键和外键引用的。怎么可以不用一条一条插
怎么向多个表中插入数据。。比如有五六个表,类似student,course,speciality,teacher这些表。 一条一条插入很麻烦吧,应该有更好的方法。但我只会用一条一条插入 能不能用循环一次性插很多条。我只能实现一次插一条记录 SQLCHAR sqlInsertDe1[100] = "insert department(dno,dept_name) values('d01', '软件学院')"; SQLCHAR sqlInsertDe2[100] = "insert department(dno,dept_name) values('d02', '计算机学院')"; SQLCHAR sqlInsertSpe1[100] = "insert speciality values('s01', 'd01', '软件工程')"; SQLCHAR sqlInsertSpe2[100] = "insert speciality values('s02', 'd02', '计算机科学')"; SQLCHAR sqlInsertTe1[100] = "insert teacher(t_no, t_name, dno) values('t01', 'Tang', 'd01') "; SQLCHAR sqlInsertTe2[100] = "insert teacher(t_no,t_name,dno) values('t02', 'chen', 'd01')"; SQLCHAR sqlInsertStu1[100] = "insert student values('20130001', 'Tom', '男', '19940101', 'd01', 's01', 'rg1')"; SQLCHAR sqlInsertStu2[100] = "insert student values('20130002', 'Jane', '女', '19940201', 'd01', 's01', 'rg1')"; SQLCHAR sqlInsertCou1[80] = "insert course(cno,cname,spno) values('c1', '数据库', 's01')"; SQLCHAR sqlInsertCou2[80] = "insert course(cno,cname,spno) values('c2', '数据结构', 's02')"; SQLCHAR sqlInsertSt_Cou1[100] = "insert student_course values('20130001', 1, 85)"; SQLCHAR sqlInsertSt_Cou2[100] = "insert student_course values('20130002', 2, 78)"; result = SQLPrepare(hStmt, sqlInsertDe1, SQL_NTS); if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) { SQLFreeHandle(SQL_HANDLE_STMT, hStmt); SQLFreeHandle(SQL_HANDLE_DBC, hDbc); SQLFreeHandle(SQL_HANDLE_ENV, hEnv); printf("绑定失败!"); getchar(); exit(0); } // 执行SQL语句 result = SQLExecute(hStmt); if (result == SQL_ERROR) { SQLFreeHandle(SQL_HANDLE_STMT, hStmt); SQLFreeHandle(SQL_HANDLE_DBC, hDbc); SQLFreeHandle(SQL_HANDLE_ENV, hEnv); printf("执行sql失败!"); getchar(); exit(0); } // 执行完sql语句之后,要读取数据 /* while ((result = SQLFetch(hStmt)) != SQL_NO_DATA) cout << szName << endl; */ // 释放句柄和断开连接 SQLFreeHandle(SQL_HANDLE_STMT, hStmt); SQLDisconnect(hDbc); SQLFreeHandle(SQL_HANDLE_DBC, hDbc); SQLFreeHandle(SQL_HANDLE_ENV, hEnv); 只会这么用。前面的那些环境,句柄都设置好了 更多
关于数据库批处理的问题
一般的批处理都是这样的: //使用PreparedStatement进行批处理 PreparedStatement psStatement = connect.prepareStatement("你的SQL语句(?)"); psStatement.setString(1,"Jennie"); psStatement.addBatch(); //根据需要添加多条批处理语句 psStatement.setString(1,"Tom"); psStatement.addBatch(); //获得批处理的结果 int[] uCounts = psStatement.executeBatch(); //和上面一样可以一次性执行 connect.commit(); 现在呢 我想向多个表插入数据也用批处理 并且他们可能交叉在一起不知道能不能实现 那位高人给我一共一个例子看看。 如果我用下方这种方式可不可以提个意见 //使用PreparedStatement进行批处理 PreparedStatement psStatement1 = connect.prepareStatement("你的SQL语句(?)"); psStatement1.setString(1,"Jennie"); psStatement1.addBatch(); //根据需要添加多条批处理语句 PreparedStatement psStatement2 = connect.prepareStatement("你的SQL语句(?)"); psStatement2.setString(1,"Tom"); psStatement2.addBatch(); //获得批处理的结果 int[] uCounts1 = psStatement1.executeBatch(); int[] uCounts2 = psStatement2.executeBatch(); //和上面一样可以一次性执行 connect.commit(); [b]问题补充:[/b] 我只是想用 prepareStatement 这种方法 不知道用这种方法可不可以处理
已设置id自增长,数据库输入也实现,但在注册页面依旧只能输入一条数据,多输就会出错
<%@page import="com.sun.corba.se.spi.orbutil.fsm.Guard.Result"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@ page import= "edu.jmi.db.*" %> <%@ page import= "edu.jmi.dao.*" %> <%@ page import= "edu.jmi.model.*" %> <%@ page import= "java.sql.*" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <style type="text/css"> </style> <body> <center> <% //1设置解码 request.setCharacterEncoding("utf-8"); //2获取参数 String str=request.getParameter("name"); String str1=request.getParameter("password"); String str2=request.getParameter("password2"); String str3=request.getParameter("mail"); System.out.println(str+str1+str2+str3); if(str==null){//如果初次加载页面,直接返回,不会执行下面存取数据库的代码 //return; }else{ session.setAttribute("usr", str); response.sendRedirect("regok.jsp"); //3存取数据库 //3.1获取数据库链接 Connection conn=DB.getConnection(); //3.2准备插入sql语句 String sql="insert into user values(?,?,?,?)"; PreparedStatement pst=conn.prepareStatement(sql); pst.setInt(1,1); //id pst.setString(2,str);//name pst.setString(3,str1);//pass pst.setString(4,str3);//email //3.3执行插入 int res=pst.executeUpdate(); System.out.println("插入结果是:"+res); pst.close(); conn.close(); } %> <form action="" > <p>用户名:<input type="text" value="" name="name"></p> <p>密码:<input type="password" value="" name="password"></p> <p>确认密码:<input type="password" value="" name="password2"></p> <p>邮箱:<input type="text" value="" name="mail"></p> <input type="submit" value="注册"> <input type="reset" value="重置"> </form> </center> </body> </html> pst.setInt(1,1); //id pst.setString(2,str);//name pst.setString(3,str1);//pass pst.setString(4,str3);//email 应该是此处错了,怎么改
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
在中国程序员是青春饭吗?
今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...
《MySQL 性能优化》之理解 MySQL 体系结构
本文介绍 MySQL 的体系结构,包括物理结构、逻辑结构以及插件式存储引擎。
python自动下载图片
近日闲来无事,总有一种无形的力量萦绕在朕身边,让朕精神涣散,昏昏欲睡。 可是,像朕这么有职业操守的社畜怎么能在上班期间睡瞌睡呢,我不禁陷入了沉思。。。。 突然旁边的IOS同事问:‘嘿,兄弟,我发现一个网站的图片很有意思啊,能不能帮我保存下来提升我的开发灵感?’ 作为一个坚强的社畜怎么能说自己不行呢,当时朕就不假思索的答应:‘oh, It’s simple. Wait for me for a ...
一名大专同学的四个问题
【前言】   收到一封来信,赶上各种事情拖了几日,利用今天要放下工作的时机,做个回复。   2020年到了,就以这一封信,作为开年标志吧。 【正文】   您好,我是一名现在有很多困惑的大二学生。有一些问题想要向您请教。   先说一下我的基本情况,高考失利,不想复读,来到广州一所大专读计算机应用技术专业。学校是偏艺术类的,计算机专业没有实验室更不用说工作室了。而且学校的学风也不好。但我很想在计算机领...
复习一周,京东+百度一面,不小心都拿了Offer
京东和百度一面都问了啥,面试官百般刁难,可惜我全会。
达摩院十大科技趋势发布:2020 非同小可!
【CSDN编者按】1月2日,阿里巴巴发布《达摩院2020十大科技趋势》,十大科技趋势分别是:人工智能从感知智能向认知智能演进;计算存储一体化突破AI算力瓶颈;工业互联网的超融合;机器间大规模协作成为可能;模块化降低芯片设计门槛;规模化生产级区块链应用将走入大众;量子计算进入攻坚期;新材料推动半导体器件革新;保护数据隐私的AI技术将加速落地;云成为IT技术创新的中心 。 新的画卷,正在徐徐展开。...
轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API ...
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
python爬取百部电影数据,我分析出了一个残酷的真相
2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%;国产电影总票房411.75亿元,同比增长8.65%,市场占比 64.07%;城市院线观影人次17.27亿,同比增长0.64%。 看上去似乎是一片大好对不对?不过作为一名严谨求实的数据分析师,我从官方数据中看出了一点端倪:国产票房增幅都已经高达8.65%了,为什...
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试,面试官没想到一个ArrayList,我都能跟他扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
C++(数据结构与算法):62---搜索树(二叉搜索树、索引二叉搜索树)
一、搜索树的复杂度分析 本文考察二叉搜索树和索引二叉搜索树 二叉搜索树的渐进性能可以和跳表媲美: 查找、插入、删除操作所需的平均时间为Θ(logn) 查找、插入、删除操作的最坏情况的时间为Θ(n) 元素按升序输出时所需时间为Θ(n) 虽然在最坏情况下的查找、插入、删除操作,散列表和二叉搜索树的时间性能相同,但是散列表在最好的情况下具有超级性能Θ(1) 不过,对于一个指定的关键...
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
最全最强!世界大学计算机专业排名总结!
我正在参与CSDN200进20,希望得到您的支持,扫码续投票5次。感谢您! (为表示感谢,您投票后私信我,我把我总结的人工智能手推笔记和思维导图发送给您,感谢!) 目录 泰晤士高等教育世界大学排名 QS 世界大学排名 US News 世界大学排名 世界大学学术排名(Academic Ranking of World Universities) 泰晤士高等教育世界大学排名 中国共...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
那些年,我们信了课本里的那些鬼话
教材永远都是有错误的,从小学到大学,我们不断的学习了很多错误知识。 斑羚飞渡 在我们学习的很多小学课文里,有很多是错误文章,或者说是假课文。像《斑羚飞渡》: 随着镰刀头羊的那声吼叫,整个斑羚群迅速分成两拨,老年斑羚为一拨,年轻斑羚为一拨。 就在这时,我看见,从那拨老斑羚里走出一只公斑羚来。公斑羚朝那拨年轻斑羚示意性地咩了一声,一只半大的斑羚应声走了出来。一老一少走到伤心崖,后退了几步,突...
立即提问