insert into select DML语句为什么不支持事务?

mysql insert into select DML语句为什么不支持事务,
我有两条sql
1.insert into select
2.update set
两条sql放在一个Service中开启事务
第一个sql事务无效 第二个有效
DML不是支持事务的么?
求大神解释。。。

1个回答

qq_30212947
伍熙吖 文章意思就是一次insert into select是一次事务 我理解的有问题吗?
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
sql server里的select属于DML还是DQL

sql server里的select属于DML还是DQL?网上看到说select是DQL,但题目里说他是DML是对的(标绿的是对的)。![图片说明](https://img-ask.csdn.net/upload/201909/03/1567498359_349563.png)

紧急求助:生产环境,mysql双主结构,备机同步DDL语句成功,但是同步DML语句失败

问题描述:双主架构环境,最近在主机上执行DDL语句能成功同步到备机,但是在主机上执行DML语句失败,请各位帮忙看一下,谢谢! Linux版本: Red Hat Enterprise Linux Server release 5.4 (Tikanga) mysql版本 +----------------------------+ | @@version | +----------------------------+ | 5.1.59 | +----------------------------+ 主机:192.168.0.100 备机:192.168.0.101 操作过程: (1)在101上执行flush logs; (2)在100上执行如下sql语句: create table ttt(a int, b varchar(10)); insert into ttt values(1,'wxc'),(2,'wyh'),(3,'byq'); (3)在101上查看ttt的数据,结构只存在表结构,但是表中没有数据; (4)查看101上的relaylog日志,发现如下信息: 11101 # at 102837 11102 #140430 9:52:10 server id 9 end_log_pos 97358117 Query thread_id=1498768873 exec_time=0 error_code=0 11103 use mgr/*!*/; 11104 SET TIMESTAMP=1398822730/*!*/; 11105 create table ttt(a int, b varchar(10)) 11106 /*!*/; 11170 # at 103496 11171 # at 103540 11172 #140430 9:52:10 server id 9 end_log_pos 97358715 Table_map: `mgr`.`ttt` mapped to number 5791859673 11173 #140430 9:52:10 server id 9 end_log_pos 97358771 Write_rows: table id 5791859673 flags: STMT_END_F 11174 11175 BINLOG ' 11176 SldgUxMJAAAALAAAAHuTzQUAANnDOFkBAAEAA21ncgADdHR0AAIDDwIeAAM= 11177 SldgUxcJAAAAOAAAALOTzQUAANnDOFkBAAEAAv/8AQAAAAN3eGP8AgAAAAN3eWj8AwAAAANieXE= 11178 '/*!*/; 11179 ### INSERT INTO mgr.ttt 11180 ### SET 11181 ### @1=1 11182 ### @2='wxc' 11183 ### INSERT INTO mgr.ttt 11184 ### SET 11185 ### @1=2 11186 ### @2='wyh' 11187 ### INSERT INTO mgr.ttt 11188 ### SET 11189 ### @1=3 11190 ### @2='byq' 从上面看,明显能看到ddl和dml语句的存在。 (5)在101上查看binlog日志中与ttt相关的内容,内容如下: 11042 # at 100405 11043 #140430 9:52:10 server id 9 end_log_pos 100510 Query thread_id=1498768873 exec_time=0 error_code=0 11044 use mgr/*!*/; 11045 SET TIMESTAMP=1398822730/*!*/; 11046 create table ttt(a int, b varchar(10)) 11047 /*!*/; 但是没有发现任何插入表ttt相关的insert语句。 (6)查看了一下双主的slave状态,状态一切均正常,如下: 100状态如下: admin@localhost : test 10:02:47> show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.0.101 Master_User: coolcloud Master_Port: 3307 Connect_Retry: 60 Master_Log_File: mysql-bin.000375 Read_Master_Log_Pos: 3053614 Relay_Log_File: mysql-relay-bin.000774 Relay_Log_Pos: 251 Relay_Master_Log_File: mysql-bin.000375 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 3053614 Relay_Log_Space: 449 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0 Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: 101状态如下: admin@localhost : test 09:57:12> show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.0.100 Master_User: coolcloud Master_Port: 3307 Connect_Retry: 60 Master_Log_File: mysql-bin.000393 Read_Master_Log_Pos: 98301418 Relay_Log_File: mysql-relay-bin.001058 Relay_Log_Pos: 925373 Relay_Master_Log_File: mysql-bin.000393 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 98301418 Relay_Log_Space: 1046500 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0 Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: 请各位大拿帮忙看一下什么原因。 **对了,忘记补充一个现象,从101的数据是能同步到100上的。**

oracle数据库使用plsql developer 如何显示的开启一个事务?

oracle数据库使用plsql developer 如何显示的开启一个事务?就像mysql中的begin; start transaction;语句这样。书上说 Oracle 事务分为2中类型(显式和隐式方法) 显示方法,就是利用命令完成。 Oracle中的事务不需要设置开始标识。通常有下列情况之一时,事务会开启: 登录数据库后,第一次执行DML语句。 当事务结束后,第一次执行DML语句。 2 . 隐式方法 该类型的事务没有明确的开始和结束标识。他有数据库自动开启,当一个程序正常结束或使用DDL语言时会自动提交,而操作失败时也会自动回滚。如果设置AUTOCOMMIT为打开状态(默认关闭),则每次执行DML操作都会自动提交。 语法为: SET AUTOCOMMIT ON/OFF; 事务在什么情况下结束需要注意,否则有丢数据的可能。有下列情况之一的,事务会结束 1 使用commit事务提交,使用rollback事务回滚 2 执行DDl语句,事务会自动提交。例如,使用create,drop,grant,revoke等命令。 3 正常退出sql*plus时自动提交事务,非正常退出时则rollback事务回滚。 我要是想在开启一个事务时,第一句使用select语句,这个时候该怎么显示的声明一下事务的开始?谢谢

Mybatis执行insert all 的时候 越来越慢是什么原因

情况描述: 数据库是Oracle 每次从表里取出10000条数据 进行计算 结果大概500~1000条 然后把这几百条数据批量插入数据库中 插入的表没有索引 就是很简单的几个字段 第一次执行 大概3S左右就插入成功了 第二次执行一下要50S左右 再往下越来越长。。不知道什么原因 有大佬遇到过吗 还有就是 当这个insert all变慢之后 对数据库进行 ddl操作都会卡死。。。而dml没有影响~ java这边数据库连接池用的druid ![这是第一次](https://img-ask.csdn.net/upload/201808/22/1534902304_166443.png) ![这是第二次](https://img-ask.csdn.net/upload/201808/22/1534902180_574360.png) sql如下 ``` <insert id="batchInsertArriveInfo" parameterType="java.util.List" useGeneratedKeys="false"> insert all <foreach collection="list" item="info" index="index"> into T_ARRIVAL_STATION_INFORMATION (BUS_PATH_ID,STATION_SN,TASK_STATUS,ARR_TIME,BUS_PATH_NAME,RUN_FLAG,VEHICLE_ID,station_name,station_id) values ( #{info.busPathId},#{info.stationSn},#{info.taskStatus}, #{info.arrTime},#{info.busPathName},#{info.runFlag}, #{info.vehicleId},#{info.stationName},#{info.stationId} ) </foreach> select 1 from dual </insert> ```

如何提取SQL语句中的表名

RT. 讨论一下思路 <br />String getTableNames(String sqlStmt){ <br />&nbsp;&nbsp;&nbsp;&nbsp; .... //该如和设计解析逻辑 <br />} <br /> <br />例如: <br />sqlStmt = " <br />INSERT INTO A <br />SELECT B.B1, B.B2, C.C1, C.C2 <br />FROM B INNER JOIN C ON B.B0 = C.C0 <br />WHERE B.B0 IN (SELECT D0 FROM D,E WHERE D.D1 = E.E1) <br />"; <br /> <br />要求getTableNames(sqlStmt)的输出为 "A,B,C,D,E" <br /> <br />需要考虑到所有DML语句包括JOIN结构以及子查询的情况 <br />

如何在MySQL DML语句中设置特定的UNIQUE列

<div class="post-text" itemprop="text"> <p>i'm facing an issue when i'm trying to insert records in a table with similar columns. So basically my table is structured like this ::</p> <pre><code>+-------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(50) | YES | MUL | NULL | | +-------+-------------+------+-----+---------+----------------+ </code></pre> <p>Now my PDO statement is this::</p> <pre><code>INSERT INTO supplement_brand (name) VALUES (:name) </code></pre> <p>So basically what i want is, that each name field will have a unique value. I already have INDEX set on the name field. Now i wanted to remove the primary key, and the auto-increment attributes from the id field. But that would entail bad database design practices.</p> <p>Right now upon insertion the id field is being auto-incremented automatically, and many duplicate values are getting inserted in the name field:</p> <p>Here is a sample of whats happening ::</p> <pre><code>+-----+-----------------------------+ | id | name | +-----+-----------------------------+ | 1 | 2 to 1 Protein Bar | | 7 | 2 to 1 Protein Bar | | 8 | 2 to 1 Protein Bar | | 28 | 2 to 1 Protein Bar | | 93 | 2 to 1 Protein Bar | | 98 | 2 to 1 Protein Bar | | 230 | 2 to 1 Protein Bar | | 231 | 2 to 1 Protein Bar | | 232 | 2 to 1 Protein Bar | | 2 | 360CUT | | 3 | 360CUT | | 4 | 360CUT | | 5 | 360CUT | | 6 | 360CUT | | 9 | 4 Dimension Nutrition | | 10 | 4 Dimension Nutrition | | 11 | 4 Dimension Nutrition | | 12 | 4 Dimension Nutrition | | 13 | 4 Dimension Nutrition | | 14 | 4 Dimension Nutrition | | 15 | 4 Dimension Nutrition | | 16 | 4 Dimension Nutrition | | 17 | 4 Dimension Nutrition | | 18 | 4 Dimension Nutrition | | 19 | 4 Dimension Nutrition | | 20 | 4 Dimension Nutrition | | 21 | 4 Dimension Nutrition | | 22 | 4 Dimension Nutrition | | 23 | 4 Dimension Nutrition | | 24 | 4 Dimension Nutrition | | 25 | 4 Dimension Nutrition | +-----+-----------------------------+ </code></pre> <p>How can i prevent the insertion of duplicate values in the name field. Please provide any sort of help, i'm literally stuck right now. Thanks in advance</p> </div>

oracle 如何实现一个table,每个用户select * from 表名;查询的结果不同,注意没有where 条件

oracle 如何实现一个table,每个用户进行查询看到的结果不同;只有管理员可以看到所有的内容 比如说:system用户(或sys)创建了一个表 test; hr,scott,oe 等非dba权限的用户分别进行多次insert操作 scott用户执行 select * from 该表test;(注意没有where条件)只能看见自己dml后的结果,不能看到hr用户执行DML后的数据,只能update ,delete 自己的数据, hr用户执行 select * from 该表test;(注意也没有where条件)也只能看见自己dml后的结果,不能看见scott用户的操作,只能update ,delete 自己的数据, sys或system用户 select * from test; 能看见所有用户DML后的操作, 除sys或system用户外,所有的用户都不能drop table test ;只有sys或system才能drop table test 请问 如何实现上述问题,该用 oracle的什么技术实现??

MySQL 对NUMERIC类型数据使用 ROUND函数

在一本SQL基础书上看到这样一个关于ROUND函数例子 下面是创建表和插入表的数据。 ``` -- DDL :创建表 CREATE TABLE SampleMath (m NUMERIC (10,3), n INTEGER, p INTEGER); -- DML :插入数据 START TRANSACTION; INSERT INTO SampleMath(m, n, p) VALUES (500, 0, NULL); INSERT INTO SampleMath(m, n, p) VALUES (-180, 0, NULL); INSERT INTO SampleMath(m, n, p) VALUES (NULL, NULL, NULL); INSERT INTO SampleMath(m, n, p) VALUES (NULL, 7, 3); INSERT INTO SampleMath(m, n, p) VALUES (NULL, 5, 2); INSERT INTO SampleMath(m, n, p) VALUES (NULL, 4, NULL); INSERT INTO SampleMath(m, n, p) VALUES (8, NULL, 3); INSERT INTO SampleMath(m, n, p) VALUES (2.27, 1, NULL); INSERT INTO SampleMath(m, n, p) VALUES (5.555,2, NULL); INSERT INTO SampleMath(m, n, p) VALUES (NULL, 1, NULL); INSERT INTO SampleMath(m, n, p) VALUES (8.76, NULL, NULL); COMMIT; ``` ![图片说明](https://img-ask.csdn.net/upload/201909/01/1567335963_632900.png) ![图片说明](https://img-ask.csdn.net/upload/201909/01/1567335982_8444.png) <p> 下面是使用ROUNG函数查询的结果。 为什么返回值里保留小数的位数并不是参数n的位数。而是原来数据保留的位数??? </p> ![图片说明](https://img-ask.csdn.net/upload/201909/01/1567335996_667569.png) <p> - 书里面给的查询示例却是这样的?这个是出了什么状况了?bug吗?还是版本的问题? 我电脑装的是MySQL5.7.26版本。 . 书上的示例查询结果如下: </p> ![图片说明](https://img-ask.csdn.net/upload/201909/01/1567336440_946737.png) 网上没有查到相关的信息。麻烦大佬解答一下,谢谢。

oracle怎么从redolog分析sql执行的dml?

有一个新数据库和旧oracle数据库,我想通过监控oracel的归档日志来实时更新我的新数据库,这个要怎么实现?

你使用mysql_error($ con)或mysql_insert_id($ con)来检查插入结果吗?

<div class="post-text" itemprop="text"> <pre><code>$dml = "insert into table ..."; mysql_query($dml,$con); </code></pre> <p>The above insert something into a table.then you can check if it succeeded by either</p> <pre><code>if('' == mysql_error($con))... </code></pre> <p>or </p> <pre><code>if($id = mysql_insert_id($con))... </code></pre> <p>What's your choice and reason?</p> <p>BTW,will the below still have $id fetched when running both of them,I've not tried yet:</p> <pre><code>$err = mysql_error($con); $id = mysql_insert_id($con); </code></pre> </div>

oracle安装,注册表子树的事务处理状态与请求状态不一致

实例已创建 DIM-00019:创建服务时出错; O/S-Error:(OS 1369)注册表子树的事务处理状态与请求状态不一致! ![图片说明](https://img-ask.csdn.net/upload/201501/29/1422517666_156928.png)

PL/SQL触发器,sql语句是怎么检测什么时候要使用触发器

Oracle PL/SQL的问题,DML操作中,是不是每条语句执行时都会检测是否有对应的触发器,这个检查机制是普遍存在,还是由对应的表开启或者触发(这个就由创建触发器时候涉及到的表决定),接着该表里面的语句才会进行检测。 我是这么觉得的,如果所有语句执行时候,都有一个步骤检查触发器是否存在的过程,对整个数据库性能会不会造成影响。 ——初学者,以上疑问没什么原则性问题吧,请大神们赐教

在Golang中的MySQL数据库上侦听DML查询

<div class="post-text" itemprop="text"> <p>I am using <a href="https://github.com/go-sql-driver/mysql" rel="nofollow noreferrer">go-sql-driver/mysql</a> driver for connecting to a MySQL database in Golang. I wonder is there a way to listen for DML queries on the database such that the <strong>client gets notified/triggered</strong> when any such query occurs. I am using the inbuilt <code>database/sql</code> package for connection. </p> <p>Similar: <a href="https://softwareengineering.stackexchange.com/questions/283177/">[1]</a></p> </div>

SQL Server 2005,PHP v1.1的SQL驱动程序吃掉了“触发器中的事务失败”错误

<div class="post-text" itemprop="text"> <p>short version: the sqlsrv driver (Native Client wrapper) "eats" constraint violation errors generated from triggers; the mssql driver (<em>ntwdlib</em> wrapper) reports them just fine.</p> <ul> <li>SQL Server 2005</li> <li>PHP 5.3.1</li> <li>SQL Server Driver for PHP 1.1</li> </ul> <p>fixture:</p> <pre><code>CREATE TABLE t ( t INT NOT NULL PRIMARY KEY ); CREATE VIEW v AS SELECT CURRENT_TIMESTAMP AS v ; CREATE TRIGGER vt ON v INSTEAD OF INSERT AS BEGIN BEGIN TRY INSERT INTO t SELECT 1 UNION ALL SELECT 1; END TRY BEGIN CATCH RAISERROR('fubar!', 17, 0); END CATCH END; </code></pre> <p>running <code>INSERT INTO v SELECT CURRENT_TIMESTAMP;</code> through Management Studio yields</p> <pre><code>(0 row(s) affected) Msg 3616, Level 16, State 1, Line 1 Transaction doomed in trigger. Batch has been aborted. Msg 50000, Level 17, State 0, Procedure vt, Line 8 fubar! </code></pre> <p><em>no</em> error is reported when I run it through sqlsrv_query:</p> <pre><code>$conn = sqlsrv_connect(...); var_dump(sqlsrv_query($conn, 'INSERT INTO v SELECT CURRENT_TIMESTAMP')); var_dump(sqlsrv_errors()); </code></pre> <p>outputs</p> <pre><code>resource(11) of type (SQL Server Statement) NULL </code></pre> <p>the application has (it seems) no way to find out that the trigger failed other than through later statements failing.</p> <p>The question: <em>What's up?</em> Do you use this PHP driver? Do you use views with DML triggers? Does the driver report <em>doomed transactions</em>?</p> <p><em>edit 2010-02-17 11:50</em>: the first version of the question incorrectly claimed that I saw the artifact with the trigger containing a simple <code>INSERT</code>. well, it only happens when the constraint-violating DML is inside a <code>TRY</code> block. sorry for the confusion.</p> <p><em>edit</em> 2010-03-03: just so that you guys don't get too attached to the severity level in <code>RAISERROR</code>, the real code tries to rethrow the caught error with <code>ERROR_NUMBER</code>, <code>ERROR_SEVERITY</code> and <code>ERROR_STATE</code>.</p> <p>furthermore, please pay attention to the questions asked:</p> <p>The question: <em>What's up?</em> Do you use this PHP driver? Do you use views with DML triggers? Does the driver report <em>doomed transactions</em>?</p> <p>please don't try to harvest the bounty without having firsthand experience with the situation described here.</p> </div>

oracle中触发器的创建

CREATE TABLE SCROE ( SID VARCHAR2(10) PRIMARY KEY, GRADE NUMBER(5,2) ); --语句触发器 CREATE OR REPLACE TRIGGER BIUD_SCROE_A BEFORE INSERT OR UPDATE OR DELETE ON SCROE BEGIN IF USER NOT IN('SGL') THEN RAISE_APPLICATION_ERROE(-20001, '你没有修改此表的权限'); END IF; END; / INSERT INTO SCROE VALUES('003', '82'); 错误: ORA-04098: 触发器'SYSTEM.BIUD_SCROE_A' 无效且未通过重新验证 请问是哪儿出了问题? 小弟是初学者,望各位能给个详细点的解释! 谢谢!

在PHP中使用C ++操作码 - HIPHOP模型

<div class="post-text" itemprop="text"> <p>Can anybody explain about how practically it is possible to implement a coding structure which encapsulates C++ opcodes in php code. I assumes the consumption of memory and cpu are more in the case when executing DML statements in SQL queries having INSERT,SELECT, UPDATE, DELETE ?</p> <p>Is it possible to convert following PHP code block of INSERT into a c++ opcode ?</p> <pre><code>// Check connection if ($conn-&gt;connect_error) { die("Connection failed: " . $conn-&gt;connect_error); } $sql = "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('John', 'Doe', 'john@example.com')"; if ($conn-&gt;query($sql) === TRUE) { echo "New record created successfully"; } else { echo "Error: " . $sql . "&lt;br&gt;" . $conn-&gt;error; } </code></pre> <p>Which all are other situations we can use these coding structure in point to reduce the resource usage in server ?</p> </div>

给外包的项目提供数据库层面的接口 这种形式的接口我使用function 还是存储过程比较合适?

给外包的项目提供数据库层面的接口 这种形式的接口我使用function 还是存储过程比较合适? 接口有返回的信息 里面有dml语句 去更新数据库字段

为什么数据库不能反映php INSERT所做的更改?

<div class="post-text" itemprop="text"> <p>I am calling INSERT and DELETE Statements via PHP to a MySQL Database. The PHP script finishes successfully, but in the database nothing has changed. So I believe it must have to do with transaction handling. But I start and end the transaction. Does anyone has an idea? Thanks a lot.</p> <pre class="lang-php prettyprint-override"><code>&lt;?php require_once '../extra/pdo_connect.php'; $postdata = file_get_contents("php://input"); if (isset($postdata) &amp;&amp; !empty($postdata)) { $json_obj = json_decode($postdata,true); $pdo-&gt;beginTransaction(); $sql = "delete from user where username = '?'"; $stmt = $pdo-&gt;prepare($sql); $rows = $stmt-&gt;execute(array($json_obj['username'])); $echo("Statement executed"); $pdo-&gt;commit(); } ?&gt; </code></pre> <p>As the "Statement executed" is in the Response, the DML and the transaction should have been sucessful.</p> </div>

封装了一个jdbc,这个jdbc中的close方法为什么可以关闭Connection对象?

``` public class Jdbc { private Connection conn; private ResultSet rs; private ResultSetMetaData md; private PreparedStatement ps; private Properties prop; private String url; private String user; private String psw; private List<Map<String,Object>> list; private Map<String,Object> map; private Integer flg; private FileInputStream fis; private String jdbcPath = "src/jdbc.properties"; //测试代码 public static void main(String[] args) { Jdbc jdbc = new Jdbc(); try { jdbc.open(); String sql = "select * from GC_EXAMTYPE t where t.examtype_id= ? or examtype_id=?"; List<Map<String, Object>> query = jdbc.query(sql,5,6); System.out.println(query); String inser_sql = "insert into test (id, name) values (?, ?)"; Integer add_flg = jdbc.add(inser_sql, 2,2); System.out.println(add_flg); String mod_sql = "update test set name = ? where id=?"; Integer mod_flg =jdbc.mod(mod_sql, 2,1); System.out.println(mod_flg); String del_sql = "delete test where id=?"; Integer del_flg =jdbc.del(del_sql, 1); System.out.println(del_flg); } catch (Exception e) { e.printStackTrace(); }finally { /* * 我最大的疑惑就在这里,这里我并没有告诉计算机,应该关闭某个对象 * 我就是直接写了一个close方法 * 例如100个人同时使用这个代码 * 计算机是怎么知道该关闭哪个对象的 * 或者说,我这段代码本身就是有问题的 */ jdbc.close(); } } /** * 连接数据库 * @throws Exception */ public void open() throws Exception{ fis = new FileInputStream(jdbcPath); prop = new Properties(); prop.load(fis); url = prop.getProperty("db.url"); user = prop.getProperty("db.user"); psw = prop.getProperty("db.password"); Class.forName(prop.getProperty("driverClass")); conn = DriverManager.getConnection(url, user, psw); } /** * 关闭连接 */ public void close() { try { if(ps!=null) ps.close(); if(rs!=null) rs.close(); if(conn!=null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } /** * 执行dml语句 * @param sql dml语句 * @param objs 参数 * @return 0失败 1成功 * @throws SQLException sql异常 */ public int dml(String sql, Object... objs) throws SQLException { ps = conn.prepareStatement(sql); for (int i = 0; i < objs.length; i++) { ps.setObject(i+1, objs[i]); } flg = ps.executeUpdate(); return flg; } /** * 执行查询语句 * @param sql 查询语句 * @param objs 参数 * @return 查询结果 * @throws SQLException sql异常 */ public List<Map<String,Object>> query(String sql,Object...objs) throws SQLException{ list = new ArrayList<>(); ps = conn.prepareStatement(sql); for (int i = 0; i < objs.length; i++) { ps.setObject(i+1, objs[i]); } rs = ps.executeQuery(); md = rs.getMetaData(); while (rs.next()) { map = new HashMap<>(); for (int i = 1; i <= md.getColumnCount(); i++) { String key = md.getColumnName(i); Object value = rs.getObject(i); map.put(key, value); } list.add(map); } return list; } /** * 添加数据 * @param sql 添加语句 * @param objs 参数 * @return 0失败 1成功 * @throws SQLException sql异常 */ public int add(String sql,Object...objs) throws SQLException { flg = dml(sql, objs); return flg; } /** * 修改数据 * @param sql 修改语句 * @param objs 参数 * @return 0失败 1成功 * @throws SQLException sql异常 */ public int mod(String sql,Object...objs) throws SQLException{ flg = dml(sql, objs); return flg; } /** * 删除数据 * @param sql 删除语句 * @param objs 参数 * @return 0失败 1成功 * @throws SQLException sql异常 */ public int del(String sql,Object...objs) throws SQLException{ flg = dml(sql, objs); return flg; } } ```

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

Intellij IDEA 实用插件安利

1. 前言从2020 年 JVM 生态报告解读 可以看出Intellij IDEA 目前已经稳坐 Java IDE 头把交椅。而且统计得出付费用户已经超过了八成(国外统计)。IDEA 的...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

魂迁光刻,梦绕芯片,中芯国际终获ASML大型光刻机

据羊城晚报报道,近日中芯国际从荷兰进口的一台大型光刻机,顺利通过深圳出口加工区场站两道闸口进入厂区,中芯国际发表公告称该光刻机并非此前盛传的EUV光刻机,主要用于企业复工复产后的生产线扩容。 我们知道EUV主要用于7nm及以下制程的芯片制造,光刻机作为集成电路制造中最关键的设备,对芯片制作工艺有着决定性的影响,被誉为“超精密制造技术皇冠上的明珠”,根据之前中芯国际的公报,目...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

Python爬虫,高清美图我全都要(彼岸桌面壁纸)

爬取彼岸桌面网站较为简单,用到了requests、lxml、Beautiful Soup4

差点跪了...

最近微信又搞出了一个大利器,甚至都上了热搜,当然消息最敏捷的自媒体人,纷纷都开通了自己的视频号。01 视频号是什么呢?视频号是微信体系内的短视频,它不同...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

Vue回炉重造之router路由(更新中)

你好,我是Vam的金豆之路,可以叫我豆哥。2019年年度博客之星、技术领域博客专家。主要领域:前端开发。我的微信是 maomin9761,有什么疑问可以加我哦,自己创建了一个微信技术交流群,可以加我邀请你一起交流学习。最后自己也创建了一个微信公众号,里面的文章是我自己精挑细选的文章,主要介绍各种IT新技术。欢迎关注哦,微信搜索:臻美IT,等你来。 欢迎阅读本博文,本博文主要讲述【】,文字通...

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

Java岗开发3年,公司临时抽查算法,离职后这几题我记一辈子

前几天我们公司做了一件蠢事,非常非常愚蠢的事情。我原以为从学校出来之后,除了找工作有测试外,不会有任何与考试有关的事儿。 但是,天有不测风云,公司技术总监、人事总监两位大佬突然降临到我们事业线,叫上我老大,给我们组织了一场别开生面的“考试”。 那是一个风和日丽的下午,我翘着二郎腿,左手端着一杯卡布奇诺,右手抓着我的罗技鼠标,滚动着轮轴,穿梭在头条热点之间。 “淡黄的长裙~蓬松的头发...

大胆预测下未来5年的Web开发

在2019年的ReactiveConf 上,《Elm in Action》的作者Richard Feldman对未来5年Web开发的发展做了预测,很有意思,分享给大家。如果你有机会从头...

立即提问
相关内容推荐