如何用SQL查询表A的字段中是包含集合B中的某个元素

表A字段
图片说明

集合B
图片说明

如何使用sql查询语句查询出表A包含集合B子元素的数据

sql

1个回答

这个类似指定单词的worldCount,相当于在表A中遍历寻找B中的元素,你可以封装一个函数,功能是传入一个参数(B中的一个元素)在A中返回出现的次数,利用循环就可以求出所有B中元素在A中出现的次数;如果全为0则没有,否则也很直观的求出了B中元素在A中出现的次数。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
SQL查询两个表中相同字段值的集合并且去重
假设 A B 两个表 都有字段 id,要求查出A B两个表id的并集,并且去重,A B两个表本身id也可能有重复
js已连接上sqlserver,怎么取表里的字段值存为数组?
不考虑安全问题,需求是这样的。代码如下:但是不能取得表里面的值,我在sql查询器里试过没问题,function dataconnect(sql){ // 创建数据库对象 var objdbConn = new ActiveXObject("ADODB.Connection"); // DSN字符串 var strdsn = "Driver={SQL Server};SERVER=192.168.0.107,1433;UID=sa;PWD=dv;DATABASE=db"; // 打开数据源 objdbConn.Open(strdsn); // 执行SQL的数据库查询 //var objrs = objdbConn.Execute("SELECT * FROM njshq"); var sql="select 经度,纬度 from njshq where 测量 like '路%'"; var objrs = objdbConn.Execute(sql); // 获取字段数目 var fdCount = objrs.Fields.Count - 1; // 检查是否有记录 if (!objrs.EOF){ // 显示数据库内容 var sArray = new Array(); while (!objrs.EOF){ // document.write("<tr>"); // 显示每笔记录的字段 var b=""; for (i=0; i <= fdCount; i++) { b =objrs.Fields(i).Value; alert(b); } objrs.moveNext(); // 移到下一个记录 sArray.push(b); } return sArray; } else objrs.Close(); // 关闭记录集合 objdbConn.Close(); // 关闭数据库链接 }
高分求解决一个 linq join 多表查询问题
![图片说明](https://img-ask.csdn.net/upload/201705/26/1495793172_987498.png) ![图片说明](https://img-ask.csdn.net/upload/201705/26/1495793182_1881.png) ![图片说明](https://img-ask.csdn.net/upload/201705/26/1495793190_662254.png) ![图片说明](https://img-ask.csdn.net/upload/201706/05/1496629098_939061.png) ![图片说明](https://img-ask.csdn.net/upload/201706/05/1496631072_119414.png) ![图片说明](https://img-ask.csdn.net/upload/201706/05/1496631085_558382.png) ![图片说明](https://img-ask.csdn.net/upload/201706/05/1496631093_533536.png) A 表是要查询的表 A表是申购单明细 B表是采购单明细 C表是采购单 B表和A表有字段关联 我需要查询 A 表的所有字段数据 条件是 A表和D表联合查询 条件是 D表TypeNo等于传进来的TypeNo And A 表的 Count != (C表 Status = 0 的B子表集合(B子表RequisitionDetailId=A表ID)B表 Count字段统计和 加上 C表 Status = 1 的B子表集合(B子表RequisitionDetailId=A表ID)B表 Count字段统计和) 查询语句怎么写 简单的说就是 查询出没有采购完的申购单 通过界面传入供应商TypeNo过滤
mysql中 一对多关联查询sql语句
我现在有两张表 table1,table2,其中table1的字段(id,name),表table2的字段(id, table1_Id,status) 需要查询出来 (name和status为0的总数)的集合该怎么写sql?status的值只有0或者1. table1的id和table2的table1_Id是主外键关联的。
请问php怎么能把某一表中按条件查询到的结果集合成一条新纪录插入到新表中?求告知,谢谢!
想通过gwc表中的“username“字段查询表内相关记录,并赋值给新变量,结合成一条记录插入到dingdan表中! 应该怎么写php语言? 下面是数据表及试验的语句及结果: **表:** ![图片说明](https://img-ask.csdn.net/upload/201903/24/1553429266_969033.jpg) **代码:** ![图片说明](https://img-ask.csdn.net/upload/201903/24/1553439993_508867.jpg) **测试结果:** ![图片说明](https://img-ask.csdn.net/upload/201903/24/1553440008_643637.png) 麻烦哪位好心人能帮忙看看是哪里出错了? 语句应该怎么改才对?谢谢!
hibernate 一对多查询集合封装的问题
<p>首先祝大家端午节快乐。 <br>最近学习hibernate,正用用他做博客,遇到个问题研究两天了也没研究出个什么。 <br>hibernate一对多集合封装的问题,看文档一对多关联set配置中是主键和外键关联, <br>能不能设置这两个表中任意两个字段关联。google也没搜到(可能是我笨)。 <br>不过有种方法通过HQL关联:</p> <pre name="code" class="sql">select tableone ,tablemany from tableone tablemany where tableone.uuid=tablemany.uuid </pre> <p> <br>可这样代表多的关系的那个表(tablemany)hibernate怎么给他封装成成集合? <br>如果我没说明白回复下我在补充。 <br>研究东西总受折。程序员真不易啊。 <br>秀下博客,快做完了就差这块了。 <br><br><br><img src="/upload/attachment/108737/96f678da-9f65-38ca-92f8-0bfa2217591d.jpg" alt=""><br><br><br><img src="/upload/attachment/108739/7b89e181-2b67-3f15-a2bf-33e74f7bbe49.png" alt=""><br> 晕了,没人回答?<br></p>
关于VS2005对SqlServer数据库操作的问题
对数据库Student进行查询时运行到msado.tli文件中的下面这个函数中的raw_Open时就崩溃掉。 ``` inline HRESULT Recordset15::Open ( const _variant_t & Source, const _variant_t & ActiveConnection, enum CursorTypeEnum CursorType, enum LockTypeEnum LockType, long Options ) { HRESULT _hr = raw_Open(Source, ActiveConnection, CursorType, LockType, Options); if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this)); return _hr; } ``` 调用代码: ``` CString strsql = _T("select * from LoginInfo where Name='"); strsql+=name; strsql+="' and Password='"; strsql+=psw; strsql+="'"; MessageBox(hwnd, strsql, _T("查询字符串"), MB_OK); CString strcolumn[6] = {_T("Name"),_T("Sex"),_T("Password"),_T("School"),_T("Major"),_T("Number")}; int ncolumn = 6; CStringArray strvalue; theApp.m_dao.GetData(strsql,strcolumn,ncolumn,strvalue); ``` ``` BOOL CDao::GetData(CString strSql,CString *strQueryCloum,int nCloumNum,CStringArray& strDataValue) { HRESULT het; //_bstr_t 字符串 _variant_t 多种数据类型集合 vt类型 ..value值 //com _bstr_t bstrSql = strSql; //执行sql _bstr_t bstrConnect = m_strConnect; //连库串 _bstr_t bstrQueryCloum; //列名 Fields *fields; FieldPtr fieldPtr; CString strValue; _variant_t varBLOB; try { //1.打开表 /*m_pRecordset->Open(查询SQL语句,连接串,打开方式,数据源更新时如何锁定结果集,以什么形式传入) 打开方式: adOpenUnspecified = -1, 默认的方式打开 adOpenForwardOnly = 0, 向前移动的游标打开 adOpenKeyset = 1, 以键值打开 adOpenDynamic = 2, 当你添加数据时别人也有可能往这个表添加数据,谁在前谁添加到前面(多人用数据库时) adOpenStatic = 3 别人也想往里面添加数据一直停留在打开时候 锁定结果集方式: adLockReadOnly = 1, 只读的不能改变数据 adLockPessimistic = 2, (保守式锁定)逐个 – 编辑时立即锁定数据源的纪录 adLockOptimistic = 3, (开放式锁定)逐个 – 只在调用update方法时才锁定纪录 adLockBatchOptimistic = 4 开方式 可以更新一批数据更新模式 + bstrConnect {"Driver={SQL Native Client};Server=192.168.1.92,2433;Uid=sa;Pwd=sa;Database=colin0716" (1)} _bstr_t + bstrSql {"select * from student" (1)} _bstr_t */ het = m_pRecordset->Open(bstrSql,bstrConnect,adOpenDynamic,adLockOptimistic,adCmdText); if (!SUCCEEDED(het)) { AfxMessageBox(_T("打开表失败")); m_strErrorMsg = _T("查询表失败"); return FALSE; } //循环结果 while(!m_pRecordset->ADOEOF) { //按行遍历 for(int i=0;i<nCloumNum;i++) { bstrQueryCloum = strQueryCloum[i]; fields = m_pRecordset->GetFields(); //fields 结果集中的字段集合。由于一行记录中可以包含多个字段,因此fileds属性是一个数组形式,数组中每一个元素代表一个字段 fieldPtr = fields->GetItem(bstrQueryCloum);//field对象表示记录集中数据的某个单独的列。 varBLOB = fieldPtr->GetValue();//获得当前列的值 //long nSize =fieldPtr->ActualSize; //注意图片名称必须为图片流的前一个字段 //strValue = DataToCStringType(varBLOB,nSize,strValue); strValue = DataToCStringType(varBLOB); strDataValue.Add(strValue); //varBLOB.Detach(); } m_pRecordset->MoveNext(); } m_pRecordset->Close(); } catch(_com_error *e) { m_strErrorMsg = e->ErrorMessage(); AfxMessageBox(e->ErrorMessage()); } return TRUE; } ``` 那个_hr是总是返回E_FAIL,然后return的时候就崩溃掉。 这几天在写一个对数据库操作的项目,但是这几天被这个问题给卡住了,实在是找不到如何解决了,还请各位大神指点迷津。![图片说明](https://img-ask.csdn.net/upload/201507/21/1437472591_187681.png)
java基础高手看这里了,这几道基础性的面试题求解答。
同学出去应聘,笔试的时候遇到这几道基础题不会做,拿给我看,发现自己也不怎么会,java基础好多都有些忘了,来帮忙解答一下吧。 1、实现一个函数,函数有一个形参,类型为整数,功能是将形参的十进制数的二进制序列打印到控制台上。 2、实现一个函数,函数有一个形参,类型为集合,功能是将集合中的内容按照每行3个输出(写出两种以上方法)。 3、有数据表,字段定义为如下: 客户 商品 报价 报价日期 表中存放着不同客户,不同商品,不同日期的报价。 请写一条sql语句。查出不同客户,不同商品,最新和最老的报价。 (结果包括:客户,商品,最新报价,最老报价)提示:需用子查询。 4、先有一个树形数据集合,集合中保存有所有树节点数据,节点类型包括两个属性,即子节点ID(child),父节点ID(parent) n个无序的节点组成此集合。请实现一个函数,将集合中的无序节点整理,将数据按树形结构输出,格式不限。
sql练习题,求大神解答
用户表: 包含字段 用户id,用户名,登录密码,性别,年龄,注册时间 行程表: 包含字段 行程id,用户关联id,标题,出发地,目的地,出发时间,结束时间,行程发布时间 日记表: 包含字段 日记id,行程关联id,日记详情,图片地址,日记发布时间 需求1:根据上面的说明,创建好对应的表 需求2:查出行程还没有开始的记录。 显示内容为:用户名,用户id,行程标题,出发地,目的地,出发时间,结束时间,行程id,日记id,日记详情,图片地址。 排序规则:首先按照行程出发时间进行升序,然后在按照日记发布时间进行降序。 需求3:查出行程正在进行的记录 显示内容为:用户名,用户id,行程标题,出发地,目的地,出发时间,结束时间,行程id,日记id,日记详情,图片地址。 排序规则:首先按照行程出发时间进行升序,然后在按照日记发布时间进行降序。 需求3:先查询行程正在进行的记录,并按结束时间进行升序,然后在查询行程还没有开始的记录,并按开始时间进行升序,然后在查询行程已过期的,并按出发时间进行降序。 显示内容为:用户名,用户id,行程标题,出发地,目的地,出发时间,结束时间,行程id,日记id,日记详情,图片地址。 排序规则:首先按照行程出发时间进行升序,然后在按照日记发布时间进行降序。 最终的数据实体bean结构为: public class Trip ---行程类 private int tripId;//行程id private String title;//行程标题 private String startAddress;//出发地 private String endAddress;//结束地 private int userId;//用户id private String userName;//用户名称 private String startDate;//出发时间 private String endDate;//结束时间 private List<Diary> diary;//日记的实体bean public class Diary ---日记类 private int diaryId;//日记id private String details;//日记详情 private List<String> imagesUrl;//图片集合 最后结果在Jsp页面显示
java几千万行数据做查询的时候?
我的数据库是:mysql <br />一张表的数据上了千万行,而且每天都以10几万行在增张。 <br /> <br />目前需要解决的问题,我的页面在做几个字段的查询的时候显示出来居慢,我用的是java,没用 <br />什么框架,直接JDBC查询。 <br /> <br />大家有什么好方法没? <br />我目前想这样搞下:写个存储过程,JAVA调存储过程返回的数据集(集合),应该快的多, <br />但是mysql可以返回来数据集吗,java代码怎么得到?又不太好搞? <br /> <br /> <br />这样的问题大家应该碰到过,有经验的朋友们请告诉下,谢谢大家?<br /><strong>问题补充:</strong><br />我的SQL语句里面用了日期函数判断,在日期上建立索引,会失效吗? <br />比如:......where ((TRUNC(IMMS_REPORT_REALSEND.DATCREATE) &gt;= TRUNC(sysdate)) <br />
java连接数据库返回数据为空
package servlet; import java.sql.*; import java.util.ArrayList; import java.util.List; public class Demo2 { /* 查询所有student对象 */ public static void main(String[] args){ List<Student> list = new Demo2().findAll(); System.out.println(list); } public List<Student> findAll(){ Connection conn = null; Statement stmt = null; ResultSet rs = null; List<Student> list = null; try { //注册驱动 Class.forName("com.mysql.jdbc.Driver"); //获取连接 conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/kaorou","root", "root"); //定义sql String sql = "select * from user "; //获取执行sql的对象 stmt = conn.createStatement(); //执行sql rs = stmt.executeQuery(sql); //便利结果集,封装对象,装载集合 Student stu = null; list = new ArrayList<Student>(); while(rs.next()){ //rs如果有下一个就循环,括号中的参数与数据库中的字段名一致 int id = rs.getInt("id"); String name = rs.getString("name"); int email = rs.getInt("email"); int age = rs.getInt("age"); //创建stu对象 stu = new Student(); stu.getId(id); stu.getName(name); stu.getEmail(email); stu.getAge(age); //装载集合 list.add(stu); } } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); }finally { //先声明的后关 if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (stmt != null){ try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } return list; } } package servlet; /* 封装student表数据 */ public class Student { private int id; private String name; private int email; private int age; public int getId(int id) { return this.id; } public void setId(int id) { this.id = id; } public void getName(String name) { } public void setName(String name) { this.name = name; } public int getEmail(int email) { return this.email; } public void setEmail(int email) { this.email = email; } public int getAge(int age) { return this.age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Student{" + "id=" + id + ", name='" + name + '\'' + ", sex='" + email + '\'' + ", age=" + age + '}'; } } 控制台报错: [Student{id=0, name='null', sex='0', age=0}, Student{id=0, name='null', sex='0', age=0}, Student{id=0, name='null', sex='0', age=0}, Student{id=0, name='null', sex='0', age=0}, Student{id=0, name='null', sex='0', age=0}]
执行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; } }
执行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; } }
数据中设计允许为NULL,但当用vs运行时不填数据是就会报错的问题你????
using System; using System.Windows.Forms; using System.Data.SqlClient; using System.Collections.Generic; namespace 通过控制台修改数据库文件 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } //窗体加载事件 private void Form1_Load(object sender, EventArgs e) { //将TblClass1表中数据读取到一个List<T>中 LoadData(); } private void LoadData() { List<TblClass1> list = new List<TblClass1>(); string constr = "Data source=USER-20141030QL;initial catalog=ASP.net;integrated security=true"; using (SqlConnection con = new SqlConnection(constr)) { string sql = "select *from Employees"; using (SqlCommand cmd = new SqlCommand(sql, con)) { con.Open(); using (SqlDataReader reader = cmd.ExecuteReader()) { //判断是否查询到了数据 if (reader.HasRows) { //一条一条读取数据 while (reader.Read()) { TblClass1 model = new TblClass1(); model.empID = reader.GetInt32(0); model.empNumber = reader.GetString(1); model.empName = reader.GetString(2); model.empGender = reader.IsDBNull(3)?null:reader.GetString(3); model.empJoinData = reader.GetString(4); model.empAge = reader.GetInt32(5); model.empAddress = reader.GetString(6); model.empPhone = reader.GetString(7); model.empDepartmentID=reader.GetInt32(8); model.empEmail = reader.GetString(9); list.Add(model);//把model对象加到List集合中 } } } } }//数据绑定的时候,只认"属性"不认"字段",内部通过反射来实现 this.dataGridView1.DataSource =list;//数据绑定 } //增加一条数据 private void button1_Click(object sender, EventArgs e) { //采集用户的输入 string empNumber = textBox1.Text.Trim(); string empName = textBox2.Text.Trim(); string empGender = textBox3.Text.Trim(); string empJoinData = textBox4.Text.Trim(); string empAge = textBox5.Text.Trim(); string empAddress = textBox6.Text.Trim(); string empPhone = textBox7.Text.Trim(); string empDepartmentID = textBox8.Text.Trim(); string empEmail = textBox9.Text.Trim(); //执行插入操作 string constr = "data source=USER-20141030QL;initial catalog=ASP.net;integrated security=true"; using (SqlConnection con = new SqlConnection(constr)) { string sql = string.Format(@"Insert into Employees values(N'{0}',N'{1}',N'{2}',N'{3}',{4},N'{5}', N'{6}',{7},N'{8}')",empNumber,empName,empGender,empJoinData,empAge, empAddress,empPhone,empDepartmentID,empEmail); using (SqlCommand cmd = new SqlCommand(sql,con)) { con.Open(); int r = cmd.ExecuteNonQuery(); if (r > 0) { this.Text = "插入成功!"; LoadData(); } else { this.Text = "插入了"+r+"行!"; } } } } //获取焦点事件 private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e) { //获取当前选中的对象 DataGridViewRow currentrow=this.dataGridView1.Rows[e.RowIndex]; //获取当前航中绑定的TblClass数据对象 TblClass1 model=currentrow.DataBoundItem as TblClass1; if (model != null) { label19.Text = model.empID.ToString(); textBox10.Text = model.empNumber; textBox11.Text = model.empName; textBox12.Text = model.empGender; textBox13.Text = model.empJoinData; textBox14.Text = model.empAge.ToString(); textBox15.Text = model.empAddress; textBox16.Text = model.empPhone; textBox17.Text = model.empDepartmentID.ToString(); textBox18.Text = model.empEmail; } } //保存数据 private void button2_Click(object sender, EventArgs e) { //采集用户输入 TblClass1 model = new TblClass1(); model.empID = Convert.ToInt32(label19.Text); model.empNumber =textBox10.Text.Trim(); model.empName = textBox11.Text.Trim(); model.empGender = textBox12.Text.Trim(); model.empJoinData = textBox13.Text.Trim(); model.empAge = Convert.ToInt32(textBox14.Text); model.empAddress = textBox15.Text.Trim(); model.empPhone = textBox16.Text.Trim(); model.empDepartmentID = Convert.ToInt32(textBox17.Text); model.empEmail = textBox18.Text.Trim(); //连接数据库,指向删除操作 string constr = "data source=USER-20141030QL;initial catalog=ASP.net;integrated security=true"; using (SqlConnection con= new SqlConnection(constr)) { string sql = string.Format(@"update Employees set empNumber='{0}',empName='{1}',enpGender='{2}',empJoinData='{3}', empAge={4},empAddress='{5}',empPhone='{6}',empDepartmentID={7},empEmail='{8}' where empID={9}", model.empNumber,model.empName,model.empGender, model.empJoinData, model.empAge, model.empAddress, model.empPhone, model.empDepartmentID, model.empEmail,model.empID); using (SqlCommand cmd = new SqlCommand(sql, con)) { con.Open(); int r = cmd.ExecuteNonQuery(); this.Text = "更新了" + r + "行数据。"; //重新加载绑定控件 LoadData(); } } } //删除数据 private void button3_Click(object sender, EventArgs e) { DialogResult result=MessageBox.Show("确定要删除吗","操作提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Warning); if (result == System.Windows.Forms.DialogResult.OK) { int empID = Convert.ToInt32(label19.Text); string constr = "data source=USER-20141030QL;initial catalog=ASP.net;integrated security=true "; using (SqlConnection con = new SqlConnection(constr)) { string sql = string.Format("delete from Employees where empID={0}",empID); using (SqlCommand cmd = new SqlCommand(sql, con)) { con.Open(); int r = cmd.ExecuteNonQuery(); this.Text="删除了"+r+"条数据"; //重新绑定数据 LoadData(); } } } } } } 数据库设计截图: ![图片说明](https://img-ask.csdn.net/upload/201605/24/1464078859_635950.png) 运行界面截图: ![图片说明](https://img-ask.csdn.net/upload/201605/24/1464078918_284005.png)
急求java任务解决方案。。。做了好几天,头疼啊。本人小白。
{ "tables": [ { "name_en": "atable", "name_ch": "表中文名", "column": [ { "name_en": "columnA1", "name_ch": "中文名", "colType": "列类型", "keyType": "PK/FK" }, { "name_en": "columnA2", "name_ch": "中文名", "colType": "列类型", "keyType": "PK/FK" } ], "select_columns": [ { "name_en": "sa1", "name_ch": "中文名", "colType": "列类型", "keyType": "PK/FK" }, { "name_en": "sa2", "name_ch": "中文名", "colType": "列类型", "keyType": "PK/FK" } ], "order_columns": [ { "name_en": "oa1", "name_ch": "中文名", "colType": "列类型", "keyType": "PK/FK" }, { "name_en": "oa2", "name_ch": "中文名", "colType": "列类型", "keyType": "PK/FK" } ], "where_columns": [ { "name_en": "wa1", "name_ch": "中文名", "colType": "列类型", "keyType": "PK/FK" }, { "name_en": "wa2", "name_ch": "中文名", "colType": "列类型", "keyType": "PK/FK" } ] }, { "name_en": "btable", "name_ch": "表中文名", "column": [ { "name_en": "columnB1", "name_ch": "中文名", "colType": "列类型", "keyType": "PK/FK" }, { "name_en": "columnB2", "name_ch": "中文名", "colType": "列类型", "keyType": "PK/FK" } ], "select_columns": [ { "name_en": "sb1", "name_ch": "中文名", "colType": "列类型", "keyType": "PK/FK" }, { "name_en": "sb2", "name_ch": "中文名", "colType": "列类型", "keyType": "PK/FK" } ], "order_columns": [ { "name_en": "ob1", "name_ch": "中文名", "colType": "列类型", "keyType": "PK/FK" }, { "name_en": "ob2", "name_ch": "中文名", "colType": "列类型", "keyType": "PK/FK" } ], "where_columns": [ { "name_en": "wb1", "name_ch": "中文名", "colType": "列类型", "keyType": "PK/FK" }, { "name_en": "wb2", "name_ch": "中文名", "colType": "列类型", "keyType": "PK/FK" } ] }, { "name_en": "ctable", "name_ch": "表中文名", "column": [ { "name_en": "columnC1", "name_ch": "中文名", "colType": "列类型", "keyType": "PK/FK" }, { "name_en": "columnC2", "name_ch": "中文名", "colType": "列类型", "keyType": "PK/FK" } ], "select_columns": [ { "name_en": "sc1", "name_ch": "中文名", "colType": "列类型", "keyType": "PK/FK" }, { "name_en": "sc2", "name_ch": "中文名", "colType": "列类型", "keyType": "PK/FK" } ], "order_columns": [ { "name_en": "oc1", "name_ch": "中文名", "colType": "列类型", "keyType": "PK/FK" }, { "name_en": "oc2", "name_ch": "中文名", "colType": "列类型", "keyType": "PK/FK" } ], "where_columns": [ { "name_en": "wc1", "name_ch": "中文名", "colType": "列类型", "keyType": "PK/FK" }, { "name_en": "wc2", "name_ch": "中文名", "colType": "列类型", "keyType": "PK/FK" } ] } ], "relations": [ { "tableA": "atable", "columnA": "columnA1", "tableB": "btable", "columnB": "columnB1", "type": "leftjoin" }, { "tableA": "btable", "columnA": "columnB2", "tableB": "ctable", "columnB": "columnC2", "type": "innerjoin" } ] } 这是一串已知的JSON,有tables和relations两个对象。table里面有三张表,每张表里的coulum指该表包含的所有字段,select__columns指要查询的所有字段,ord er_column指要排序的所有字段,where_column指条件所有字段。relations里面是连接查询。 要求:输入一串json,返回一句连接查询的SQL语句。(json里面表数据会根据输入而不同)。 我做了很多方案: 1、创建实体类的话,就不能解决输入不确定参数数量的问题,比如我不知道几张表,每张表要select多少字段; 2、如果一股脑将所输入的json全部存入一个或者多个list集合里面,那我就不能解决最后拼接成一句sql语句的问题; 关键点就是,固定表数量或者select数量,我可以很好的解决,但是,不确定数量的话,我就很难输出并拼接成一句sql语句。 求大神。。。刚实习,头疼,四天了。。没做出来。
myeclipse加载报表配置xml文件失败,项目无法正常运行,怎么解决?
![图片说明](https://img-ask.csdn.net/upload/201904/11/1554983047_497110.png) ```<?xml version="1.0" encoding="UTF-8"?> <resources xmlns="http://www.wabacus.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.wabacus.com ../xsd/wabacus.resources.xsd"> <resource key="invalid.isnotempty"> <![CDATA[#label#不能为空]]> </resource> <resource key="invalid.number"> <![CDATA[#data#不是合法数字]]> </resource> <resource key="invalid.age"> <![CDATA[#data#不是有效年龄]]> </resource> <resource key="clickorderbypage1.header"> <![CDATA[<font color='#3366FF'><i> 点击<u>工号</u>、<u>中文名</u>、<u>英文名</u>、<u>性别</u>、<u>年龄</u>、<u>出生日期</u>列的数据标题可以进行排序 </i></font>]]> </resource> <resource key="colselectedpage1.footer"> <![CDATA[<font color='#FF0000'>说明:<font color='#0000FF'> 点击页面中最右边列的向右箭头或“下载Excel”链接,可以选择要显示/下载的列 </font></font>]]> </resource> <resource key="typepromptpage1.header"> <![CDATA[<font color='#3366FF'><i>其中<u>工号</u>查询条件采用任意位置匹配,<u>中文名</u>查询条件采用起始位置匹配</i></font>]]> </resource> <resource key="typepromptpage2.footer"> <![CDATA[<font color='#3366FF'><i>其中<u>工号</u>查询条件采用任意位置匹配,<u>姓名</u>查询条件采用起始位置匹配</i></font>]]> </resource> <resource key="typepromptpage3.footer"> <![CDATA[<font color='#3366FF'><i>其中<u>工号</u>提示列采用任意位置匹配,<u>中文名</u>提示列采用起始位置匹配</i></font>]]> </resource> <resource key="rowselectpage2.report1.footer"> <![CDATA[<font color='#3366FF'><i>通过按住Ctrl键或Shift键用鼠标点击记录行进行多选</i></font>]]> </resource> <resource key="masterslavepage3.report1.header"> <![CDATA[<font color='#3366FF'><i>点击“部门编号”查看部门员工列表,点击“部门名称”查看部门详细资料</i></font>]]> </resource> <resource key="masterslavepage3_2.report1.footer"> <![CDATA[<font color='#3366FF'><i>点击“部门编号”查看部门员工列表</i></font>]]> </resource> <resource key="masterslavepage3_1.report1.footer"> <![CDATA[<font color='#3366FF'><i>点击“工号”查看员工详细资料</i></font>]]> </resource> <resource key="interceptorpage1.footer"> <![CDATA[<font color='#3366FF'><i> 1、访问报表时查看服务器控制台,通过<report/>的子标签<interceptor/>中配置的拦截器会在控制台中打印信息;<br/> 2、年龄查询条件输入值只能在10到20范围之内,超出后会被前置动作提示出错。 </i></font>]]> </resource> <resource key="interceptorpage2.footer"> <![CDATA[<font color='#3366FF'><i> 1、访问报表时查看服务器控制台,通过<report/>的属性interceptor所引用的在资源文件中定义的拦截器会在控制台中打印信息;<br/> 2、年龄查询条件输入值只能在10到20范围之内,超出后会被前置动作提示出错。 </i></font>]]> </resource> <resource key="interceptorpage3.footer"> <![CDATA[<font color='#3366FF'><i> 1、访问报表时查看服务器控制台,通过<report/>的属性interceptor所引用的拦截器JAVA类会在控制台中打印信息;<br/> 2、年龄查询条件输入值只能在10到20范围之内,超出后会被前置动作提示出错。 </i></font>]]> </resource> <resource key="title.label">员工信息列表</resource> <resource key="sequence.label">序号</resource> <resource key="no.label">工号</resource> <resource key="group.label">个人信息</resource> <resource key="name.label">姓名</resource> <resource key="sex.label">性别</resource> <resource key="age.label">年龄</resource> <resource key="birthday.label">出生日期</resource> <resource key="salary.label">工资</resource> <resource key="joinindate.label">入职日期</resource> <resource key="condition.txtno.label">工号</resource> <resource key="condition.txtage.label">年龄</resource> <resource key="l10npage.report1.footer"> <![CDATA[<font color='#3366FF'><i> 1、这里演示的是静态配置信息的本地化,对于从数据库取出的动态数据,如果要进行本地化,请参看《Wabacus框架入门与提高》文档<br/> 2、为两个查询条件都配置了校验,校验出错信息也支持本地化,校验规则与上面“客户端/服务器端校验”演示的报表一致。 </i></font>]]> </resource> <resource key="otherpage3.report1.header"> <![CDATA[ <a href="#" onclick="viewSelectedRadioValues();">查看“选择一”列选中值</a>&nbsp;|&nbsp;<a href="#" onclick="viewSelectedCheckboxValues();">查看“选择二”列选中值</a> ]]> </resource> <resource key="otherpage4_2.report1.footer"> <![CDATA[<br/><br/><font color='#3366FF'><i> 这里演示的功能按钮只是测试,虽然是“添加”或“修改”按钮,但不能对报表数据进行编辑,关于数据编辑功能的演示,请参看“数据编辑篇” </i></font>]]> </resource> <resource key="reportborderlistpage1.report5.footer"> <![CDATA[<br/><font color='red'> 注意:通过<report/>标签的bordercolor属性只能改变数据部分表格的边框颜色,如果要同时改变标题部分和外层表格的边框颜色,则需要通过修改 wabacus_system.css文件中的.cls-data-th-list、.cls-data-td-list的样式定义实现。 </font>]]> </resource> <resource key="cellresizepage.report1.header"> <![CDATA[<br/><font color='#FF0000'> 请将鼠标放在数据标题列各单元格之间进行左右移动,调整列宽</font> </font>]]> </resource> <resource key="cellresizepage.report2.footer"> <![CDATA[<br/><font color='#3366FF'> <b>说明:</b>对于复杂表头的报表,只能对顶层分组所在单元格以及没有参与列分组的列所在单元格进行移动,比如在这复杂表头报表中:<br/> &nbsp;&nbsp;&nbsp;&nbsp;<font color="red">“工号”、“年龄”、“入职日期”三列</font>属于没有参与列分组的列,所以可以对它们所在单元格进行移动;<br/> &nbsp;&nbsp;&nbsp;&nbsp;<font color="red">“基本信息”分组</font>属于顶层分组,因为它不属于哪个分组的子分组,所以也可以对它所在单元格进行移动;<br/> &nbsp;&nbsp;&nbsp;&nbsp;<font color="red">“中文名”、“英文名”、“性别”三列</font>是参与了列分组的列,所以不能对它们所在单元格进行移动;<br/> &nbsp;&nbsp;&nbsp;&nbsp;<font color="red">“姓名”分组</font>不是顶层分组,因为它是父分组“基本信息”的一部分,所以不能对它所在单元格进行移动。 </font>]]> </resource> <resource key="celldragpage1.header"> <![CDATA[<br/><font color='#FF0000'> 请将鼠标放在数据标题列,点击后进行拖动</font> </font>]]> </resource> <resource key="interceptorpage2.report1.interceptor" type="com.wabacus.config.resource.InterceptorRes"> <interceptor> <imports> <import>com.wabacus.util.*</import> <import>java.util</import> </imports> <preaction> <![CDATA[ String age=rrequest.getStringAttribute("txtage",""); if(!age.equals("")) { try { int iage=Integer.parseInt(age); if(iage<10||iage>20) { rrequest.getWResponse().getMessageCollector().alert("输入的年龄:"+age+"起出范围,只能输入10到20之间的数字",null,true); } }catch(NumberFormatException nfe) { rrequest.getWResponse().getMessageCollector().alert("输入的年龄:"+age+"不是合法数字",null,true); } } System.out.println(new Date()+":::执行完前置动作------------------"); ]]> </preaction> <postaction> <![CDATA[ System.out.println(new Date()+":::执行完后置动作-------------------"); ]]> </postaction> </interceptor> </resource> <!-- --> <resource key="editablelistreportpage1.footer"> <![CDATA[<br/><br/><font color='#3366FF'><i> “省”、“市”、“县”三列为下拉框,且是关联下拉框</i></font>]]> </resource> <resource key="editabledetailpage2.footer"> <![CDATA[<br/><br/></br> <font color='#ff0000'>注意:</font><br/>&nbsp;&nbsp;&nbsp;&nbsp;<font color='#3366FF'> 1、在这种编辑方式中需要先点击“修改”按钮才能修改数据;<br/><br/> &nbsp;&nbsp;&nbsp;&nbsp; 2、因为此报表的“简介”列是大字段类型,如果是Oracle数据库,且采用的不是oracle10g的jdbc驱动,则可能不能正常的完成添加操作,需要将配置文件中此报表的 <insert/>标签配置的SQL语句:insert into ...后面加上where deptno=@{deptno__old},即变为如下形式: insert into tbl_department(guid=uuid{},@{deptno},@{deptname},@{manager},@{builtdate},@{performance},@{description}) where deptno=@{deptno__old};然后重新启动即可。 </font>]]> </resource> <resource key="editpartcolpage1.footer"> <![CDATA[<br/><br/></br> <font color='#ff0000'>说明:</font><br/>&nbsp;&nbsp;&nbsp;&nbsp;<font color='#3366FF'> 1、修改数据时:“工号”、“姓名”、“所属部门”三列不允许修改<br/> &nbsp;&nbsp;&nbsp;&nbsp; 2、添加数据时,“性别”、“出生日期”两列不允许添加 </font>]]> </resource> <resource key="coldefaultvaluepage1.report1.footer"> <![CDATA[<br/><br/></br> <font color='#ff0000'>说明:</font><br/><font color='#0000FF'> &nbsp;&nbsp;&nbsp;&nbsp;“姓名”列默认值为“无名”;<br/> &nbsp;&nbsp;&nbsp;&nbsp;“年龄”列默认值为60;<br/> &nbsp;&nbsp;&nbsp;&nbsp;“出生日期”列默认值为1980-09-23<br/> &nbsp;&nbsp;&nbsp;&nbsp;“工资”列默认值为1000<br/> &nbsp;&nbsp;&nbsp;&nbsp;“省”列默认值为广东<br/> &nbsp;&nbsp;&nbsp;&nbsp;“市”列默认值为深圳<br/> &nbsp;&nbsp;&nbsp;&nbsp;“县”列默认值为福田<br/> </font>]]> </resource> <resource key="inputboxdefaultvaluepage1.report1.footer"> <![CDATA[<br/><br/></br> <font color='#ff0000'>说明:</font><br/><font color='#0000FF'> &nbsp;&nbsp;&nbsp;&nbsp;“姓名”列的输入框默认值为“无名”;<br/> &nbsp;&nbsp;&nbsp;&nbsp;“年龄”列的输入框默认值为60;<br/> &nbsp;&nbsp;&nbsp;&nbsp;“出生日期”列的输入框默认值为1980-09-23<br/> &nbsp;&nbsp;&nbsp;&nbsp;“工资”列的输入框默认值为1000<br/> &nbsp;&nbsp;&nbsp;&nbsp;“省”列的输入框默认值为广东<br/> &nbsp;&nbsp;&nbsp;&nbsp;“市”列的输入框默认值为深圳<br/> &nbsp;&nbsp;&nbsp;&nbsp;“县”列的输入框默认值为福田<br/> </font>]]> </resource> <resource key="editablemasterslavepage1.report3.footer"> <![CDATA[<br/><br/> <font color='#ff0000'>说明:</font><br/><font color='#0000FF'> &nbsp;&nbsp;&nbsp;&nbsp; 1、“详细资料1”和“详细资料2”两个细览报表是两种不同编辑方式的细览报表,它们都依赖于“员工信息列表”报表。<br/> &nbsp;&nbsp;&nbsp;&nbsp; 2、“详细资料1”和“详细资料2”两个细览报表均配置为不允许修改“工号”列,其它列均允许修改。 </font>]]> </resource> <resource key="editableFormatListPage1.footer"> <![CDATA[<br/><br/><font color='#ff0000'>说明:</font><font color='#0000FF'>&nbsp;&nbsp;在只读模式时,将此报表的“工号”列格式化为一个超链接</font>]]> </resource> <resource key="editableFormatDetailPage1.footer"> <![CDATA[<br/><br/><font color='#ff0000'>说明:</font><font color="#0000ff">使用只读访问模式访问时将“部门编号”列格式化为一个超链接,使用默认访问模式时,将“部门经理”列格式化为一超链接</font>]]> </resource> <resource key="editableFormatDetailPage2.footer"> <![CDATA[<br/><br/><font color='#ff0000'>说明:</font><font color="#0000ff"> 使用只读访问模式访问时将“部门编号”列格式化为一个超链接,如果是添加记录模式,为部门编号赋默认值111111</font>]]> </resource> <resource key="savecallbackpage2.footer"> <![CDATA[<br/><br/> <font color='#ff0000'>说明:</font><br/><font color='#0000FF'> &nbsp;&nbsp;此报表配置了一个保存回调函数打印保存的数据,并且声明执行完此回调函数后不更新报表页面的显示,<br/> &nbsp;&nbsp;这对于保存后跳转到新页面比较有用,可以提高性能,因为这种情况没必要更新页面显示。 </font>]]> </resource> <resource key="popupsinglepage1.report1.footer"> <![CDATA[<br/> <font color='#ff0000'>说明:</font><font color='#0000FF'> “兴趣爱好”列为弹出输入框窗口编辑框 </font>]]> </resource> <resource key="popupmultiplypage1.report1.footer"> <![CDATA[<br/> <font color='#ff0000'>说明:</font><font color='#0000FF'> 通过弹出窗口选择了“兴趣爱好”列的值后,会同时设置“姓名”列和“部门”列的值 </font>]]> </resource> <resource key="pageinterceptorpage1.footer"> <![CDATA[<br/> <font color='#ff0000'>说明:</font><font color='#0000FF'> 访问页面或操作页面上报表时,请查看控制台上各拦截器的打印信息,可以了解到不同类型、不同位置上的页面拦截器各方法的执行顺序 </font>]]> </resource> <resource key="fileuploadlistpage1.report1.footer"> <![CDATA[<br/> <font color='#ff0000'>说明:</font><br/> <font color='#0000FF'> &nbsp;&nbsp;1、“图片文件上传”是指上传后以<img/>标签显示出来的上传类型。<br/> &nbsp;&nbsp;2、如果要测试这里的文件上传功能,请先修改此报表配置中为此列配置的上传路径到合适路径 </font>]]> </resource> <resource key="fileuploadlistpage1.report2.footer"> <![CDATA[<br/> <font color='#ff0000'>说明:</font><br/><font color='#0000FF'> &nbsp;&nbsp;1、“WEB文件上传”是指上传后能通过URL在浏览器中访问到,Wabacus框架在上传这种类型的文件时,会根据用户配置的rooturl属性构造出此文件的访问URL;<br/> &nbsp;&nbsp;2、如果要测试这里的文件上传功能,请先修改此报表配置中为此列配置的上传路径到合适路径 </font>]]> </resource> <resource key="fileuploadlistpage1.report3.footer"> <![CDATA[<br/> <font color='#ff0000'>说明:</font><br/><font color='#0000FF'> &nbsp;&nbsp;1、“普通文件上传”就是指一般的文件上传功能,Wabacus框架上传这种类型的文件时,会在上传后返回被上传文件在服务器中的绝对路径; &nbsp;&nbsp;2、如果要测试这里的文件上传功能,请先修改此报表配置中为此列配置的上传路径到合适路径 </font>]]> </resource> <resource key="fileuploadlistpage1.report4.footer"> <![CDATA[<br/> <font color='#ff0000'>说明:</font><font color='#0000FF'> “上传后文件改名”对上面三种类型的文件上传操作都有效,是指将文件上传到服务器后,框架自动对文件进行更名。<br/> &nbsp;&nbsp;更名的类型包括如下几种:<br/> &nbsp;&nbsp;&nbsp;&nbsp;1、常量字符串;<br/> &nbsp;&nbsp;&nbsp;&nbsp;2、{date}:以当前日期做为文件名;<br/> &nbsp;&nbsp;&nbsp;&nbsp;3、{time}:以当前时间做为文件名;<br/> &nbsp;&nbsp;&nbsp;&nbsp;4、{timestamp}:以当前日期时间的毫秒数做为文件名,可以保持每次上传的文件名不重复。 </font>]]> </resource> <resource key="clobpage1.footer"> <![CDATA[<br/><font color='#ff0000'>说明:</font><font color='#0000FF'>“简介”列即为大字符串类型字段。</font>]]> </resource> <resource key="formpartcoldetail1.footer"> <![CDATA[<br/><font color='#ff0000'>说明:</font><br/> <font color='#0000FF'> &nbsp;&nbsp;编辑时,“婚否”、“工资”、“所属部门”三列不允许修改;<br/> &nbsp;&nbsp;添加时,“英文名”、“入职日期”两列不允许输入数据 </font>]]> </resource> <resource key="formpartcollistpage1.footer"> <![CDATA[<br/><font color='#ff0000'>说明:</font><br/> <font color='#0000FF'> &nbsp;&nbsp;编辑时,“所属部门”、“省”、“市”、“县”四列不允许修改;<br/> &nbsp;&nbsp;添加时,“姓名”、“性别”两列不允许输入数据 </font>]]> </resource> <resource key="formcallbackdetailpage1.header"> <![CDATA[<br/><font color='#ff0000'>注意:</font> <font color='#0000FF'>如果要在照片列进行文件上传,请先修改此报表配置中为此列配置的上传路径到合适路径</font>]]> </resource> <resource key="formcallbacklistpage1.header"> <![CDATA[<br/><font color='#ff0000'>注意:</font> <font color='#0000FF'>如果要在照片列进行文件上传,请先修改此报表配置中为此列配置的上传路径到合适路径</font>]]> </resource> <resource key="masterslavepage1.report2.footer"> <![CDATA[<br/><font color='#ff0000'>说明:</font> <font color='#0000FF'>这里演示的主从关系是当主报表没有数据时,从报表仍然显示出来,这也是默认的主从关系</font>]]> </resource> <resource key="masterslavepage1.report4.footer"> <![CDATA[<br/><font color='#ff0000'>说明:</font> <font color='#0000FF'>这里演示的主从关系是当主报表没有数据时,从报表不显示出来</font>]]> </resource> <resource key="containerpermissionpage12.footer"> <![CDATA[<br/><font color='#ff0000'>说明:</font><font color='#0000FF'>此页面上所有输入框都只读。</font>]]> </resource> <resource key="containerpermissionpage13.footer"> <![CDATA[<br/><font color='#ff0000'>说明:</font><font color='#0000FF'>此页面上所有按钮都禁用,点击无效。</font>]]> </resource> <resource key="containerpermissionpage21.footer"> <![CDATA[<br/><font color='#ff0000'>说明:</font><font color='#0000FF'>此页面上id为“vp1”的容器的标题授权为不显示出来。</font>]]> </resource> <resource key="containerpermissionpage41.footer"> <![CDATA[<br/><font color='#ff0000'>说明:</font><font color='#0000FF'>此页面上id为“tab1”的tabpane容器配置了三个标签页显示三个报表,但第一个和第二个标签页的display权限设置为false,因此只显示了第三个标签页出来。</font>]]> </resource> <resource key="containerpermissionpage42.footer"> <![CDATA[<br/><font color='#ff0000'>说明:</font><font color='#0000FF'>此页面上id为“tab1”的tabpane容器配置了三个标签页显示三个报表,但第二个标签页的disabled权限设置为true,因此不能切换到这个标签页。</font>]]> </resource> <resource key="conditionrelatepage1.footer"> <![CDATA[<br/><font color='#ff0000'>说明:</font> <br><font color='#0000FF'>&nbsp;&nbsp;此页面共包括三个报表,其中报表一、报表二、报表三的“工号”查询条件关联,因为它们的此条件的name属性都是txtno</font> <br><font color='#0000FF'>&nbsp;&nbsp;报表一、报表三的“姓名”查询条件关联,因为它们的此条件的name属性都是txtname,但与报表二的“姓名”查询条件不关联,因为它的此查询条件的name为txtname1。</font> <br><font color='#0000FF'>&nbsp;&nbsp;报表一、报表三的“性别”查询条件不关联,因为它们的此条件的name属性不同</font> ]]> </resource> <resource key="Interceptor_saveinterceptorreport" type="com.wabacus.config.resource.InterceptorRes"> <interceptor> <imports> <import>java.util.*</import> </imports> <saveaction> <![CDATA[ List lstInsertData=rrequest.getLstInsertedData(rbean);//添加的记录集合 List lstInsertExternalVals=rrequest.getLstInsertedParamValues(rbean);//因为此报表为<insert/>配置了<external-values/> List lstUpdateData=rrequest.getLstUpdatedData(rbean);//修改的记录集合 List lstDeleteData=rrequest.getLstDeletedData(rbean);//删除的记录集合 if(lstInsertData!=null&&lstInsertData.size()>0||lstUpdateData!=null&&lstUpdateData.size()>0||lstDeleteData!=null&&lstDeleteData.size()>0) { System.out.println("--------------拦截器类型:资源项----------保存前置动作-------------------"); } Map mData; if(lstInsertData!=null&&lstInsertData.size()>0) {//当前在做添加数据的保存操作 Map mParamValues; for(int i=0;i<lstInsertData.size();i++) {//循环添加的每条记录 mData=(Map)lstInsertData.get(i); mParamValues=(Map)lstInsertExternalVals.get(i); if(mData==null) continue; System.out.println("第"+(i+1)+"条添加的记录:"); Iterator itKeys=mData.keySet().iterator(); while(itKeys.hasNext()) { String key=(String)itKeys.next(); String value=(String)mData.get(key); System.out.print("["+key+"="+value+"]"); } System.out.println(); System.out.println("此条记录对应的<params/>定义的变量值:"); itKeys=mParamValues.keySet().iterator(); while(itKeys.hasNext()) { String key=(String)itKeys.next(); String value=(String)mParamValues.get(key); System.out.print("["+key+"="+value+"]"); } System.out.println(); } } if(lstUpdateData!=null&&lstUpdateData.size()>0) {//当前在做修改数据的保存操作 for(int i=0;i<lstUpdateData.size();i++) { mData=(Map)lstUpdateData.get(i); if(mData==null) continue; System.out.println("第"+(i+1)+"条修改的记录:"); Iterator itKeys=mData.keySet().iterator(); while(itKeys.hasNext()) { String key=(String)itKeys.next(); String value=(String)mData.get(key); System.out.print("["+key+"="+value+"]"); } System.out.println(); } } if(lstDeleteData!=null&&lstDeleteData.size()>0) {//当前在做删除数据的保存操作 for(int i=0;i<lstDeleteData.size();i++) { mData=(Map)lstDeleteData.get(i); if(mData==null) continue; System.out.println("第"+(i+1)+"条删除的记录:"); Iterator itKeys=mData.keySet().iterator(); while(itKeys.hasNext()) { String key=(String)itKeys.next(); String value=(String)mData.get(key); System.out.print("["+key+"="+value+"]"); } System.out.println(); } } return super.doSave(rrequest,rbean,editbean); ]]> </saveaction> </interceptor> </resource> <resource key="Interceptor_saveinterceptorperrowpage1" type="com.wabacus.config.resource.InterceptorRes"> <interceptor> <imports> <import>java.util.*</import> </imports> <saveaction-perrow> <![CDATA[ String message=""; ```
相见恨晚的超实用网站
搞学习 知乎:www.zhihu.com 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:study.163.com 哔哩哔哩弹幕网:www.bilibili.com 我要自学网:www.51zxw
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
引言 本文主要是记录一下面试字节跳动的经历。 三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时
开源一个功能完整的SpringBoot项目框架
福利来了,给大家带来一个福利。 最近想了解一下有关Spring Boot的开源项目,看了很多开源的框架,大多是一些demo或者是一个未成形的项目,基本功能都不完整,尤其是用户权限和菜单方面几乎没有完整的。 想到我之前做的框架,里面通用模块有:用户模块,权限模块,菜单模块,功能模块也齐全了,每一个功能都是完整的。 打算把这个框架分享出来,供大家使用和学习。 为什么用框架? 框架可以学习整体
源码阅读(19):Java中主要的Map结构——HashMap容器(下1)
(接上文《源码阅读(18):Java中主要的Map结构——HashMap容器(中)》) 3.4.4、HashMap添加K-V键值对(红黑树方式) 上文我们介绍了在HashMap中table数组的某个索引位上,基于单向链表添加新的K-V键值对对象(HashMap.Node&lt;K, V&gt;类的实例),但是我们同时知道在某些的场景下,HashMap中table数据的某个索引位上,数据是按照红黑树
c++制作的植物大战僵尸,开源,一代二代结合游戏
    此游戏全部由本人自己制作完成。游戏大部分的素材来源于原版游戏素材,少部分搜集于网络,以及自己制作。 此游戏为同人游戏而且仅供学习交流使用,任何人未经授权,不得对本游戏进行更改、盗用等,否则后果自负。 目前有六种僵尸和六种植物,植物和僵尸的动画都是本人做的。qq:2117610943 开源代码下载 提取码:3vzm 点击下载--&gt; 11月28日 新增四种植物 统一植物画风,全部修
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成喔~) one 樱花树 动态生成樱花 效果图(这个是动态的): 实现代码 import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
深度学习图像算法在内容安全领域的应用
互联网给人们生活带来便利的同时也隐含了大量不良信息,防范互联网平台有害内容传播引起了多方面的高度关注。本次演讲从技术层面分享网易易盾在内容安全领域的算法实践经验,包括深度学习图
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
Python 编程实用技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法,并会持续更新。
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
"狗屁不通文章生成器"登顶GitHub热榜,分分钟写出万字形式主义大作
GitHub 被誉为全球最大的同性交友网站,……,陪伴我们已经走过 10+ 年时间,它托管了大量的软件代码,同时也承载了程序员无尽的欢乐。 万字申请,废话报告,魔幻形式主义大作怎么写?兄dei,狗屁不通文章生成器了解一下。这个富有灵魂的项目名吸引了众人的目光。项目仅仅诞生一周,便冲上了GitHub趋势榜榜首(Js中文网 -前端进阶资源教程)、是榜首哦
推荐几款比较实用的工具,网站
1.盘百度PanDownload 这个云盘工具是免费的,可以进行资源搜索,提速(偶尔会抽风????) 不要去某站买付费的???? PanDownload下载地址 2.BeJSON 这是一款拥有各种在线工具的网站,推荐它的主要原因是网站简洁,功能齐全,广告相比其他广告好太多了 bejson网站 3.二维码美化 这个网站的二维码美化很好看,网站界面也很...
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
Spring Security 实战干货:基于注解的接口角色访问控制
1. 前言 欢迎阅读 Spring Security 实战干货[1] 系列文章 。在上一篇 基于配置的接口角色访问控制[2] 我们讲解了如何通过 javaConfig 的方式配置接口的角色访问控制。其实还有一种更加灵活的配置方式 基于注解 。今天我们就来探讨一下。DEMO 获取方式在文末。 2. Spring Security 方法安全 Spring Security 基于注解的安全...
相关热词 c#处理浮点数 c# 生成字母数字随机数 c# 动态曲线 控件 c# oracle 开发 c#选择字体大小的控件 c# usb 批量传输 c#10进制转8进制 c#转base64 c# 科学计算 c#下拉列表获取串口
立即提问

相似问题

7
【更新了下】SQL分组查询,包含一个字段但同时不包含另外一个字段,刚描述的不清楚,希望不要有子查询谢谢
10
SQL 查询两张数据不同的表
1
本条c字段等于上一条c字段加上a字段减去b字段
1
mybatis中mapper.xml分页查询oracle的sql语句,按字段查询
5
SQL如何编写这样的WHERE条件:字段A为某个值,则字段B也必须为某个值的查询语句?
5
多表查询得到的值进行在一个表中显示的sql语句
2
求大神帮写个sql或存储过程:查询出表中所有的未用到的字段(这个字段的所有值都为null)
4
SQL语句:A表中的字段值既不存在B表中又不存在C表中
2
SQL视图如何将A表两个日期字段与B表日期比对,并统计B表另一个字段的合计值
6
SQL查询,查询表A和表B的相同id的value值,修改表A中的value中,具体如下图
12
Sql 语句问题:怎样查询一个表内的所有字段中是否包含“XXX”值?
1
sql 表中同一个字段已经创建了单字段索引还能在字段创建组合索引吗?
2
sql distinct是去重的 可是当我查询多个字段 但只想去重其中某一个字段 怎么办
2
sql中要根据某个字段的值的不同进行不同的查询,怎么写?
7
SQL以a字段为条件,修改b字段为c字段中的一部分,求代码,求各路大神帮个忙在线等谢谢
1
sql连表查询,查A中的数据是否也存在于B
4
sqlserver列值当成另一个表的字段
1
oracle主表2个字段动态关联从表问题
3
MFC中想得到sql中某个字段中“1”的重复次数,应该如何操作?
5
SQL 查询方式中 大批量数据查询字段效率