关于使用PreparedStatement类查询Oracle数据库数据的问题

第一种是可以查到数据的,第二种查不到,他们之间的差别是什么呢

 Statement st = con.createStatement();
        ResultSet rs = st.executeQuery("select * from stud where name like '%%' and age=age");
 String sql = "select * from stud where name like ? and age=?";
        PreparedStatement pst = con.prepareStatement(sql);
        if (name != null && !name.trim().equals("")) {
            pst.setString(1, "'%" + name.trim() + "%'");
        } else {
            pst.setString(1, "'%%'");
        }
        if (age != null && !age.trim().equals("")) {
            pst.setString(2, age);
        } else {
            pst.setString(2, "age");
        }
        ResultSet rs = pst.executeQuery();

2个回答

图片说明

你得第一种方法就相当于查询stud全表,而第二个是有条件的

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
java操作数据库中,PreparedStatement中可以如何插入int 类型数值进行查找?
使用PreparedStatement,更新SQL语句,查询给定ID的好友信息 目前代码如下 ``` public ResultSet findFriend(Connection con,User user)throws Exception{ String sql = new String("select * from register Where id = ?"); PreparedStatement pstmt = con.prepareStatement(sql); pstmt.setInt(1,user.getId()); JOptionPane.showMessageDialog(null,pstmt); return pstmt.executeQuery(); /*Statement stmt=con.createStatement(); String Sql = ""; Sql="select * from register where id Like"+user.getId(); return stmt.executeQuery(Sql);*/ ``` 执行后,pstmt变为如图 ![图片说明](https://img-ask.csdn.net/upload/201910/17/1571269630_134019.jpg) 数据库连接配置是没有问题的,我觉得可能还是ID本身是int类型的缘故。注释掉的那一段也运行报错。 想问问大佬们,需要查询的内容遇到int类型怎么处理?
使用springjdbc中的update方法获取Oracle数据库中自增的主键报错
源码如下: /** * 获取插入时的主键值 */ public int getKey(Order o) { final String sql = "insert into tb_order (user_id,order_money,address, postalcode,phone,mobile,email,sendType,payType, postscript) values (?,?,?,?,?,?,?,?,?,?)"; final int user_id = o.getUserId(); int i = 0; final double order_money = o.getOrderMoney(); final String address = o.getAddress(); final String postalcode = o.getPostalcode(); final String phone = o.getPhone(); final String mobile = o.getMobile(); final String email = o.getEmail(); final String sendType = o.getSendType(); final String payType = o.getPayType(); final String postscript = o.getPostScript(); KeyHolder keyHolder = new GeneratedKeyHolder(); template.update(new PreparedStatementCreator() { @Override public PreparedStatement createPreparedStatement(Connection arg0) throws SQLException { PreparedStatement ps = DBUtils.getDs().getConnection() .prepareStatement(sql); ps.setInt(1, user_id); ps.setDouble(2, order_money); ps.setString(3, address); ps.setString(4, postalcode); ps.setString(5, phone); ps.setString(6, mobile); ps.setString(7, email); ps.setString(8, sendType); ps.setString(9, payType); ps.setString(10, postscript); return ps; } }, keyHolder); i = keyHolder.getKey().intValue(); return i; } public static void main(String[] args) { Order o = new Order(7, 25, "hk", "432222", "1111", "1214334", "3453435", "1", "1", "无"); IOrderDaoImpl dao = new IOrderDaoImpl(); System.out.println(dao.getKey(o)); } 错误日志: 三月 01, 2017 10:45:47 上午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 信息: Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml] 三月 01, 2017 10:45:47 上午 org.springframework.jdbc.support.SQLErrorCodesFactory <init> 信息: SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase] Exception in thread "main" org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL []; SQL state [null]; error code [17090]; 不允许的操作; nested exception is java.sql.SQLException: 不允许的操作 at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:607) at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:824) at dao.impl.IOrderDaoImpl.getKey(IOrderDaoImpl.java:58) at dao.impl.IOrderDaoImpl.main(IOrderDaoImpl.java:85) Caused by: java.sql.SQLException: 不允许的操作 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208) at oracle.jdbc.driver.OracleStatement.getGeneratedKeys(OracleStatement.java:4559) at org.apache.commons.dbcp.DelegatingStatement.getGeneratedKeys(DelegatingStatement.java:318) at org.springframework.jdbc.core.JdbcTemplate$3.doInPreparedStatement(JdbcTemplate.java:829) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:591) ... 3 more 程序走到template.update方法时报错
java多线程高并发下的oracle数据库异常
代码的功能是生成一个随机的序列化的订单号,正常的情况下一个一个跑没问题,在进行压力测试的时候,多线程高并发下,oracle的create语句就会报错,说是 java.lang.RuntimeException: org.springframework.jdbc.BadSqlGrammarException: ConnectionCallback; bad SQL grammar []; nested exception is java.sqlSQLException: ORA-00955: 名称已由现有对象使用 求大神看下。 代码如下: ``` package utils.spring; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.dao.DataAccessException; import org.springframework.jdbc.core.ConnectionCallback; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.PreparedStatementCallback; import org.springframework.stereotype.Component; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.support.TransactionCallback; import org.springframework.transaction.support.TransactionTemplate; import utils.Lang; import javax.sql.DataSource; import java.sql.*; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; /** * 序列发生器(可用于高并发、可回收等场景) * * @author lujijiang * */ @Component @ConfigurationProperties(prefix = "seqGenerator") final public class SequenceGenerator implements InitializingBean { interface Atom<T> { T atom(Connection connection) throws Exception; } public static <T> T atom(Connection connection, Atom<T> atom) throws Exception { connection.setAutoCommit(false); connection .setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED); try { T obj = atom.atom(connection); connection.commit(); return obj; } catch (Exception e) { connection.rollback(); throw e; } } static Map<String, String> createSqlMap = new ConcurrentHashMap<String, String>(); static { createSqlMap .put("h2", "CREATE TABLE %s (v$key BIGINT NOT NULL,v$key$ varchar(256),v$seq BIGINT NOT NULL,v$state CHAR(1) NOT NULL, PRIMARY KEY (v$key,v$seq))"); createSqlMap .put("mysql", "CREATE TABLE %s (v$key BIGINT NOT NULL,v$key$ varchar(256),v$seq BIGINT NOT NULL,v$state CHAR(1) NOT NULL, PRIMARY KEY (v$key,v$seq))"); createSqlMap .put("informix", "CREATE TABLE %s (v$key DECIMAL(16,0) NOT NULL,v$key$ varchar(256),v$seq DECIMAL(16,0) NOT NULL,v$state CHAR(1) NOT NULL, PRIMARY KEY (v$key,v$seq))"); createSqlMap .put("oracle", "CREATE TABLE %s (v$key NUMBER(16,0) NOT NULL,v$key$ varchar2(256),v$seq NUMBER(16,0) NOT NULL,v$state CHAR(1) NOT NULL, PRIMARY KEY (v$key,v$seq))"); } static Map<String, String> insertSqlMap = new ConcurrentHashMap<String, String>(); static { insertSqlMap .put("h2", "insert into %s(v$key,v$key$,v$seq,v$state) values(%d,'%s',(select ifnull(max(t.v$seq),%d)+%d from %s t where t.v$key=%d),'1')"); insertSqlMap .put("mysql", "insert into %s(v$key,v$key$,v$seq,v$state) values(%d,'%s',(select ifnull(max(t.v$seq),%d)+%d from %s t where t.v$key=%d),'1')"); insertSqlMap .put("informix", "insert into %s(v$key,v$key$,v$seq,v$state) values(%d,'%s',(select nvl(max(t.v$seq),%d)+%d from %s t where t.v$key=%d),'1')"); insertSqlMap .put("oracle", "insert into %s(v$key,v$key$,v$seq,v$state) values(%d,'%s',(select nvl(max(t.v$seq),%d)+%d from %s t where t.v$key=%d),'1')"); } /** * 事务模版 */ TransactionTemplate transactionTemplate; /** * 是否使用新事务 */ boolean newTransaction = true; /** * JDBC模版 */ JdbcTemplate jdbcTemplate; /** * 尝试次数(默认10次) */ int tryTime = 10; /** * 数据库类型 */ String databaseType; /** * 表名 */ private String tableName; /** * 容量 */ private int capacity = 25; /** * 步进 */ private int step = 1; /** * 是否可回收序列号 */ protected boolean recyclable; @Autowired public void setTransactionManager( PlatformTransactionManager transactionManager) { if (transactionManager != null) { transactionTemplate = new TransactionTemplate(transactionManager); transactionTemplate .setIsolationLevel(TransactionTemplate.ISOLATION_READ_COMMITTED); transactionTemplate .setPropagationBehavior(TransactionTemplate.PROPAGATION_REQUIRED); } } public boolean isNewTransaction() { return newTransaction; } public void setNewTransaction(boolean newTransaction) { this.newTransaction = newTransaction; } public TransactionTemplate getTransactionTemplate() { return transactionTemplate; } public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } @Autowired public void setDataSource(DataSource dataSource) { if (jdbcTemplate == null) { jdbcTemplate = new JdbcTemplate(dataSource); } } public void setTransactionTemplate(TransactionTemplate transactionTemplate) { this.transactionTemplate = transactionTemplate; } public void setTryTime(int tryTime) { this.tryTime = tryTime; } public void setDatabaseType(String databaseType) { if (databaseType != null) { databaseType = databaseType.trim().toLowerCase(); this.databaseType = databaseType; } } public void setTableName(String tableName) { this.tableName = tableName == null ? null : tableName.trim(); } public void setCapacity(int capacity) { this.capacity = capacity; } public void setStep(int step) { this.step = step < 1 ? 1 : step; } public void setRecyclable(boolean recyclable) { this.recyclable = recyclable; } /** * 创建序列 * * @param name * @param length * @param start * @return */ public String generateSequence(String name, int length, long start) { final long key = generateKey(name); try { return generateSequence(key, length, start, name); } catch (Throwable t) { createSequenceTable();//错误就是定位在这里 int time = tryTime >= 0 ? tryTime : 10000; while (time-- > 0) { try { return generateSequence(key, length, start, name); } catch (Throwable e) { } } throw new RuntimeException("Generate sequence failure", t); } } private long generateKey(String name) { return 10000000000L + name.trim().hashCode(); } /** * 创建序列 * * @param key * @param length * @return */ public String generateSequence(String key, int length) { return generateSequence(key, length, 0); } /** * 创建序列 * * @param key * @return */ public String generateSequence(String key) { return generateSequence(key, 6); } private synchronized void createSequenceTable() { try { jdbcTemplate.execute(new ConnectionCallback<Integer>() { public Integer doInConnection(Connection connection) throws SQLException, DataAccessException { ResultSet rs = connection.getMetaData().getTables(null, null, tableName, null); try { while (rs.next()) { return 1; } } finally { rs.close(); } String createSql = String.format( createSqlMap.get(databaseType), tableName); Statement statement = connection.createStatement(); try { statement.execute(createSql);//错误就是定位在这里 } finally { statement.close(); } return 0; } }); } catch (Throwable t) { throw new RuntimeException(t); } } private String generateSequence(final long key, final int length, final long start, final String name) { if (newTransaction) { try { Connection connection = jdbcTemplate.getDataSource() .getConnection(); try { return atom(connection, new Atom<String>() { @Override public String atom(Connection connection) throws Exception { if (recyclable) { String no = getRecoveredSequence(connection, key, length); if (no != null) { return no; } } Statement statement = connection.createStatement(); try { String insertSql = String.format(insertSqlMap .get(databaseType), tableName, key, name.replace("'", "''"), start < 0 ? 0 : start, step, tableName, key); execute(connection, insertSql); String querySql = String .format("select max(v$seq) from %s where v$key=%d and v$state='1'", tableName, key); ResultSet rs = statement.executeQuery(querySql); try { while (rs.next()) { Long max = rs.getLong(1); if (max < start) {// 重新初始化 String deleteSql = String .format("delete from %s where v$key=%d and v$state='1'", tableName, key); execute(connection, deleteSql); insertSql = String.format( insertSqlMap .get(databaseType), tableName, key, name.replace("'", "''"), start < 0 ? 0 : start, step, tableName, key); execute(connection, insertSql); return fillLeftZero(start, length); } if (capacity > 0 && max % capacity == 0) { String deleteSql = String .format("delete from %s where v$key=%d and v$seq<>%d and v$state='1'", tableName, key, max); execute(connection, deleteSql); } return fillLeftZero(max, length); } } finally { rs.close(); } } finally { statement.close(); } throw new IllegalStateException( SequenceGenerator.this.getClass() .getSimpleName() + "无法获取单号,不可能发生的异常"); } }); } finally { connection.close(); } } catch (Exception e) { throw Lang.unchecked(e); } } return getTransactionTemplate().execute( new TransactionCallback<String>() { public String doInTransaction(TransactionStatus ts) { try { if (recyclable) { String no = jdbcTemplate .execute(new ConnectionCallback<String>() { public String doInConnection( Connection connection) throws SQLException, DataAccessException { return getRecoveredSequence( connection, key, length); } }); if (no != null) { return no; } } String insertSql = String.format(insertSqlMap .get(databaseType), tableName, key, name .replace("'", "''"), start < 0 ? 0 : start, step, tableName, key); execute(insertSql); String querySql = String .format("select max(v$seq) from %s where v$key=%d and v$state='1'", tableName, key); Long max = jdbcTemplate.queryForObject(querySql, Long.class); if (max < start) {// 重新初始化 String deleteSql = String .format("delete from %s where v$key=%d and v$state='1'", tableName, key); execute(deleteSql); insertSql = String.format(insertSqlMap .get(databaseType), tableName, key, name.replace("'", "''"), start < 0 ? 0 : start, step, tableName, key); execute(insertSql); return fillLeftZero(start, length); } if (capacity > 0 && max % capacity == 0) { String deleteSql = String .format("delete from %s where v$key=%d and v$seq<>%d and v$state='1'", tableName, key, max); execute(deleteSql); } return fillLeftZero(max, length); } catch (Throwable t) { ts.isRollbackOnly(); throw new RuntimeException(t); } } }); } /** * 参数化执行SQL * * @param sql * @param args * @return */ protected int execute(String sql, final Object... args) { return jdbcTemplate.execute(sql, new PreparedStatementCallback<Integer>() { public Integer doInPreparedStatement(PreparedStatement ps) throws SQLException, DataAccessException { if (args != null) { for (int i = 0; i < args.length; i++) { ps.setObject(i + 1, args[i]); } } return ps.executeUpdate(); } }); } /** * 参数化执行SQL * * @param sql * @param args * @return * @throws SQLException */ protected int execute(Connection conn, String sql, final Object... args) throws SQLException { PreparedStatement ps = conn.prepareStatement(sql); try { if (args != null) { for (int i = 0; i < args.length; i++) { ps.setObject(i + 1, args[i]); } } return ps.executeUpdate(); } finally { ps.close(); } } protected String fillLeftZero(Long max, int length) { StringBuilder sb = new StringBuilder(); sb.append(max); if (sb.length() >= length) { return sb.substring(sb.length() - length); } else { for (int i = sb.length(); i < length; i++) { sb.insert(0, '0'); } } return sb.toString(); } /** * 获取已回收的序列 * * @param connection * @param key * @throws SQLException */ protected String getRecoveredSequence(Connection connection, long key, int length) throws SQLException { Statement statement = connection.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); try { String querySql = String .format("select v$key,v$seq,v$state from %s where v$key = %d and v$state<>'1' for update", tableName, key); statement.executeQuery(querySql); querySql = String .format("select v$key,v$seq,v$state from %s where v$key = %d and v$state<>'1' order by v$seq asc", tableName, key); ResultSet rs = statement.executeQuery(querySql); try { while (rs.next()) { try { Long min = rs.getLong(2); rs.updateString(3, "1"); rs.updateRow(); return fillLeftZero(min, length); } catch (Throwable ex) { } } } finally { rs.close(); } } finally { statement.close(); } return null; } /** * 回收序列号 * * @param name * @param sequence */ public void recoveredSequence(final String name, final String sequence) { final long key = generateKey(name); final long seq = Long.valueOf(sequence); if (newTransaction) { try { Connection connection = jdbcTemplate.getDataSource() .getConnection(); try { atom(connection, new Atom<Object>() { public Object atom(Connection connection) throws Exception { String updateSql = String .format("update %s set v$state='0' where v$key=%d and v$seq=%d", tableName, key, seq); int count = execute(connection, updateSql); if (count == 0) { String insertSql = String .format("insert into %s(v$key,v$key$,v$seq,v$state) values(%d,'%s',%d,'0')", tableName, key, name.replace("'", "''"), seq); execute(connection, insertSql); } return null; } }); connection.commit(); } finally { connection.close(); } } catch (Exception e) { throw Lang.unchecked(e); } } else { transactionTemplate.execute(new TransactionCallback<Integer>() { public Integer doInTransaction(TransactionStatus status) { try { String updateSql = String .format("update %s set v$state='0' where v$key=%d and v$seq=%d", tableName, key, seq); int count = execute(updateSql); if (count == 0) { String insertSql = String .format("insert into %s(v$key,v$key$,v$seq,v$state) values(%d,'%s',%d,'0')", tableName, key, name.replace("'", "''"), seq); execute(insertSql); } return null; } catch (Throwable t) { status.isRollbackOnly(); throw new RuntimeException(t); } } }); } } public void afterPropertiesSet() throws Exception { if (this.databaseType == null) { throw new IllegalArgumentException(String.format( "Property '%s' is required", "databaseType")); } if (databaseType != null) { if (!createSqlMap.containsKey(databaseType)) { throw new IllegalStateException(String.format( "Unsupported database type:%s", databaseType)); } } if (this.jdbcTemplate == null) { throw new IllegalArgumentException(String.format( "Property '%s' or '%s' is required", "dataSource", "jdbcTemplate")); } if (this.tableName == null) { throw new IllegalArgumentException(String.format( "Property '%s' is required", "tableName")); } if (!tableName.matches("[a-zA-Z_][a-zA-Z0-9_]*") || tableName.length() > 16) { throw new IllegalStateException(String.format( "Illegal tableName:%s", tableName)); } if (!this.newTransaction) { if (this.transactionTemplate == null) { throw new IllegalArgumentException(String.format( "Property '%s' is required", "transactionManager")); } } } } ``` java.lang.RuntimeException: org.springframework.jdbc.BadSqlGrammarException: ConnectionCallback; bad SQL grammar []; nested exception is java.sql.SQLException: ORA-00955: 名称已由现有对象使用 at utils.spring.SequenceGenerator.createSequenceTable(SequenceGenerator.java:272) at utils.spring.SequenceGenerator.generateSequence(SequenceGenerator.java:202) at utils.spring.SequenceGenerator.generateSequence(SequenceGenerator.java:227) at cart.service.service.OrderService.generateOrderNo(OrderService.java:806) at cart.service.service.OrderService.saveVirtualGoodsToOrder(OrderService.java:220) at cart.service.service.OrderService$$FastClassBySpringCGLIB$$19f99be7.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:720) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:655) at cart.service.service.OrderService$$EnhancerBySpringCGLIB$$feb8eef.saveVirtualGoodsToOrder(<generated>) at cart.service.apiImpl.OrderMainApiImpl.saveVirtualGoodsToOrder(OrderMainApiImpl.java:223) at cart.service.apiImpl.OrderMainApiImpl$$FastClassBySpringCGLIB$$fa3518e.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:651) at cart.service.apiImpl.OrderMainApiImpl$$EnhancerBySpringCGLIB$$497f044.saveVirtualGoodsToOrder(<generated>) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.weibo.api.motan.rpc.DefaultProvider.invoke(DefaultProvider.java:57) at com.weibo.api.motan.rpc.AbstractProvider.call(AbstractProvider.java:47) at com.weibo.api.motan.filter.AccessLogFilter.filter(AccessLogFilter.java:56) at com.weibo.api.motan.protocol.support.ProtocolFilterDecorator$2.call(ProtocolFilterDecorator.java:150) at utils.rpc.motan.filter.OpenEntityManagerInMotanFilter.filter(OpenEntityManagerInMotanFilter.java:171) at com.weibo.api.motan.protocol.support.ProtocolFilterDecorator$2.call(ProtocolFilterDecorator.java:150) at com.weibo.api.motan.transport.ProviderMessageRouter.call(ProviderMessageRouter.java:96) at com.weibo.api.motan.transport.ProviderProtectedMessageRouter.call(ProviderProtectedMessageRouter.java:79) at com.weibo.api.motan.transport.ProviderMessageRouter.handle(ProviderMessageRouter.java:91) at com.weibo.api.motan.transport.support.DefaultRpcHeartbeatFactory$HeartMessageHandleWrapper.handle(DefaultRpcHeartbeatFactory.java:82) at com.weibo.api.motan.transport.netty.NettyChannelHandler.processRequest(NettyChannelHandler.java:139) at com.weibo.api.motan.transport.netty.NettyChannelHandler.access$000(NettyChannelHandler.java:47) at com.weibo.api.motan.transport.netty.NettyChannelHandler$1.run(NettyChannelHandler.java:116) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: org.springframework.jdbc.BadSqlGrammarException: ConnectionCallback; bad SQL grammar []; nested exception is java.sql.SQLException: ORA-00955: 名称已由现有对象使用 at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:99) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:360) at utils.spring.SequenceGenerator.createSequenceTable(SequenceGenerator.java:247) ... 39 more Caused by: java.sql.SQLException: ORA-00955: 名称已由现有对象使用 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288) at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745) at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:210) at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:961) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1190) at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1726) at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1696) at utils.spring.SequenceGenerator$1.doInConnection(SequenceGenerator.java:264) at utils.spring.SequenceGenerator$1.doInConnection(SequenceGenerator.java:247) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:353) ... 40 more
PreparedStatement 预编译原理
<p><strong><span>preparedStatement 有三大优点:</span></strong></p> <p><span><span>一.代码的可读性和可维护性. </span></span></p> <p><span><span>二.PreparedStatement尽最大可能提高性能. </span></span></p> <p><span><span>三.最重要的一点是极大地提高了安全性. </span></span></p> <p> </p> <p><span><span>其中一和三的确很易理解。 关于性能的提高也是最有价值的这点, 我对其原理还有些质疑。 </span></span></p> <p> </p> <p> </p> <div class="quote_title">网上一:</div> <div class="quote_div">SQL 语句被预编译并且存储在 PreparedStatement 对象中,其后可以使用该对象高效地多次执行该语句。 <br> </div> <p><span style="color: #ff0000;">问题:</span>预编译在JDBC中完成的?还是数据库中?即便存在preparedStatement中,如果这个preparedStatement 对象不被缓存起来,其后又如何重复使用,多次执行? (一些webserver会缓存preparedStatement)</p> <p>我想关于其性能的提高主要得需要数据库的支持。 </p> <div class="quote_title">oracle 性能优化 写道</div> <div class="quote_div">共享SQL语句 <br>  为了不重复解析相同的SQL语句,在第一次解析之后, ORACLE将SQL语句存放在内存中。 <br>可惜的是ORACLE只对简单的表提供高速缓冲(cache buffering) ,这个功能并不适用于多表连接查询。 <br> </div> <p><span><span><span><span><span><span style="font-size: x-small;"><span style="color: #008000;">个人理解:</span>预编译是利用数据库的SQL共享来实现的,因为当使用preparedStatement 的时候,尽管参数不同,但是在语句中用?来替代。 因此很多语句就完全相同。(这个道理和J2EE的server缓存preparedStatement 的道理应该是一样的)</span></span></span></span></span></span></p> <p> </p> <p><span><span><span><span><span><span><span style="font-size: x-small;"><span style="color: #ff0000;">问题:</span>但是如果是这样的话,那么oracle的多表查询岂不是并无预编译效果?</span></span></span></span></span></span></span></p> <p> </p> <p><span><span><span><span><span><span style="font-size: x-small;"><span><span><span><span><span><span><span style="color: #ff0000;">问题:</span></span></span></span></span></span></span>关于缓存:是否根据创建preparedStatement的语句来做为Key来map的?例如以下:是否检查匹配insert into tb_name (col1,col2,col2,col4) values (?,?,?,?)来确定是否用已经有的执行路径来执行? </span></span></span></span></span></span></p> <p><span><span><span><span style="font-size: x-small;"><span>perstmt = con.prepareStatement("insert into tb_name (col1,col2,col2,col4) values (?,?,?,?)"); </span></span></span></span></span></p> <p><span> </span></p> <p><span><strong>以下几篇从网络上搜索到的三篇文章:</strong></span></p> <p><span> </span></p> <div class="quote_title"><span>CSDN 写道</span></div> <div class="quote_div"><span>一.代码的可读性和可维护性. <br>虽然用PreparedStatement来代替Statement会使代码多出几行,但这样的代码无论从可读性还是可维护性上来说.都比直接用Statement的代码高很多档次: <br><br>stmt.executeUpdate("insert into tb_name (col1,col2,col2,col4) values ('"+var1+"','"+var2+"',"+var3+",'"+var4+"')"); <br><br>perstmt = con.prepareStatement("insert into tb_name (col1,col2,col2,col4) values (?,?,?,?)"); <br>perstmt.setString(1,var1); <br>perstmt.setString(2,var2); <br>perstmt.setString(3,var3); <br>perstmt.setString(4,var4); <br>perstmt.executeUpdate(); <br><br>不用我多说,对于第一种方法.别说其他人去读你的代码,就是你自己过一段时间再去读,都会觉得伤心. <br><br>二.PreparedStatement尽最大可能提高性能. <br>每一种数据库都会尽最大努力对预编译语句提供最大的性能优化.因为预编译语句有可能被重复调用.所以语句在被DB的编译器编译后的执行代码被缓存下来,那么下次调用时只要是相同的预编译语句就不需要编译,只要将参数直接传入编译过的语句执行代码中(相当于一个涵数)就会得到执行.这并不是说只有一个Connection中多次执行的预编译语句被缓存,而是<span style="color: #0000ff;">对于整个DB中,只要预编译的语句语法和缓存中匹配.那么在任何时候就可以不需要再次编译而可以直接执行.而statement的语句中,即使是相同一操作,而由于每次操作的数据不同所以使整个语句相匹配的机会极小,几乎不太可能匹配.</span>比如: <br>insert into tb_name (col1,col2) values ('11','22'); <br>insert into tb_name (col1,col2) values ('11','23'); <br>即使是相同操作但因为数据内容不一样,所以整个个语句本身不能匹配,没有缓存语句的意义.事实是没有数据库会对普通语句编译后的执行代码缓存.这样每执行一次都要对传入的语句编译一次. <br><br>当然并不是所以预编译语句都一定会被缓存,数据库本身会用一种策略,比如使用频度等因素来决定什么时候不再缓存已有的预编译结果.以保存有更多的空间存储新的预编译语句. <br><br>三.最重要的一点是极大地提高了安全性. <br><br>即使到目前为止,仍有一些人连基本的恶义SQL语法都不知道. <br>String sql = "select * from tb_name where name= '"+varname+"' and passwd='"+varpasswd+"'"; <br>如果我们把[' or '1' = '1]作为varpasswd传入进来.用户名随意,看看会成为什么? <br><br>select * from tb_name = '随意' and passwd = '' or '1' = '1'; <br>因为'1'='1'肯定成立,所以可以任何通过验证.更有甚者: <br>把[';drop table tb_name;]作为varpasswd传入进来,则: <br>select * from tb_name = '随意' and passwd = '';drop table tb_name;有些数据库是不会让你成功的,但也有很多数据库就可以使这些语句得到执行. <br><br>而如果你使用预编译语句.你传入的任何内容就不会和原来的语句发生任何匹配的关系.(前提是数据库本身支持预编译,但上前可能没有什么服务端数据库不支持编译了,只有少数的桌面数据库,就是直接文件访问的那些)只要全使用预编译语句,你就用不着对传入的数据做任何过虑.而如果使用普通的statement,有可能要对drop,;等做费尽心机的判断和过虑. </span></div> <p><span> </span></p> <p> </p> <div class="quote_title"><span>论坛 写道</span></div> <div class="quote_div"> <span><span style="font-size: x-small;">1,执行效率:Statement 采取直接编译 SQL 语句的方式,扔给数据库去执行,而 </span></span><span><span><span style="font-size: x-small;"><span style="color: #0000ff;">PreparedStatement 则先将 SQL 语句预编译</span>一遍,再填充参数,这样效率会高一些。JDK 文档说:SQL 语句被预编译并且存储在 PreparedStatement 对象中,其后可以使用该对象高效地多次执行该语句。 <br><br>2,代码可读性:Statement 中 SQL 语句中需要 Java 中的变量,加就得进行字符串的运算,还需要考虑一些引号、单引号的问题,参数变量越多,代码就越难看,而且会被单引号、双引号搞疯掉;而 PreparedStatement,则不需要这样,参数可以采用“?”占位符代替,接下来再进行参数的填充,这样利于代码的可读性,并且符合面向对象的思想。 <br><br>3,安全性:Statement 由于可能需要采取字符串与变量的拼接,很容易进行 SQL 注入攻击,而 PreparedStatement 由于是预 <br>编译,再填充参数的,不存在 SQL 注入问题。 <br></span></span></span> </div> <p><span> </span></p> <div class="quote_title"><span>Oracle 优化 写道</span></div> <div class="quote_div"><span>3. 共享SQL语句 <br>  为了不重复解析相同的SQL语句,在第一次解析之后, ORACLE将SQL语句存放在内存中。这块位于系统全局区域SGA(system global area)的共享池(shared buffer pool)中的内存可以被所有的数据库用户共享。 因此,当你执行一个SQL语句(有时被称为一个游标)时,如果它和之前的执行过的语句完全相同, ORACLE就能很快获得已经被解析的语句以及最好的执行路径。 ORACLE的这个功能大大地提高了SQL的执行性能并节省了内存的使用。 <br><br>  可惜的是ORACLE只对简单的表提供高速缓冲(cache buffering) ,这个功能并不适用于多表连接查询。 </span></div><br /><strong>问题补充:</strong><br />感谢geeksun的回答,我的理解是: <br />问题1, PreparedStatement是jdbc 驱动包里的一个类,并不是说存储在jdbc中。 <br />问题2, 我认为多表查询不支持预编这是不可能的。 <br />问题3, 我想这样提问可能更好一些。 <br />java 方法如下: <br />protected boolean updateSalary(Connection conn,BigDecimal x,String ID) throws SQLException{ <br /> PreparedStatement pstmt = null; <br /> try { <br /> pstmt = conn.prepareStatement("UPDATE EMPLOYEES SET SALARY = ? WHERE ID = ?"); <br /> pstmt.setBigDecimal(1, x); <br /> pstmt.setString(2, ID); <br /> return true; <br /> } finally{ <br /> if (pstmt!=null){ <br /> pstmt.close(); <br /> } <br /> } <br /> <br /> } <br /> <br /> <br />第一次调用以后,是否会缓存PreparedStatement, 这个在用weblogic这种server的时候是可以肯定的。因为从数据源的来connection是一个包装类,不是jdbc驱动的connection,而用connection来创建的PreparedStatement也是封装类。因此尽管pstmt.close().但是实际被封装的PreparedStatement并未关闭。 <br />但是是第二次调用这个方法,会重新conn.prepareStatement, 这个时候我想应该是根据语句来作为key来寻找缓存的preparedStatement,但是尽管取到缓存。 如果没有Database的配合,效率也很难提高多少。 <br /><strong>问题补充:</strong><br />谢谢geeksun的帮忙,Sql的共享我想肯定是支持多表的。 至于高速缓存应该讲的是结果的缓存。 <br />但是你对PreparedStatement的观点我认为是不对的。 因为这个对象肯定是在WebServer端的, 不可能跑到数据库那端。K-V对应的K值应该就是创建这个对象的那条语句,只是需要一个精通人士的肯定。
eclipse链接oracle 报java.sql.SQLException: 列名无效 错误!
代码如下 import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Test{ private static String url="jdbc:oracle:thin:@192.168.3.205:1521:hsygt"; private static String user="VIDEO";//用户名 private static String password="VIDEO";//密码 public static void main(String[] args) { Connection conn=null;//创建一个数据库连接 PreparedStatement pre=null;//创建一个预编译语句对象,一般都是用这个而不用Statement ResultSet result=null;//创建一个结果集对象 try{ //1)new一个数据库驱动实例 加载Oracle驱动程序 Class.forName("oracle.jdbc.driver.OracleDriver"); System.out.println("开始尝试连接数据库"); //new oracle.jdbc.driver.OracleDriver();//new的第二个方法 //2)连接oracle数据库 conn=DriverManager.getConnection(url,user,password); System.out.println("连接陈功"); //3)执行SQL语句 String sql="select * from Tv_Business"; pre=conn.prepareStatement(sql); result=pre.executeQuery(); while(result.next()){ System.out.println("ID: "+result.getString("id")+", NAME: "+result.getString("name")); } }catch(ClassNotFoundException e){ e.printStackTrace(); }catch(SQLException e) { e.printStackTrace(); }finally { try { // 逐一将上面的几个对象关闭,因为不关闭的话会影响性能、并且占用资源 // 注意关闭的顺序,最后使用的最先关闭 if (result != null){ result.close(); result=null; } if (pre != null){ pre.close(); pre=null; } if (conn != null){ conn.close(); conn=null; } System.out.println("数据库连接已关闭!"); } catch (SQLException e) { e.printStackTrace(); } } } }![图片说明](https://img-ask.csdn.net/upload/201708/01/1501576888_676984.png) ![图片说明](https://img-ask.csdn.net/upload/201708/01/1501576904_669004.png)
多线程读数据库操作,为什么我的代码执行起来比原来还慢呢
/** * 查询 应用系统 各表的记录总数 * * @param url 数据源地址 * @param userName 数据源登陆用户名 * @param password 数据源密码 * @param tableNames 表名 List * @return Map < 表名,表下数据行数> */ static class CountThread implements Runnable{ CountThread(String tableName){ this.tableName=tableName; } static void setConnection(Connection connection) { CountThread.connection = connection; } static void setReMap(ConcurrentHashMap map){ CountThread.reMap=map; } static void setThreadCount(CountDownLatch countDownLatch) { CountThread.countDownLatch = countDownLatch; } private static CountDownLatch countDownLatch; private static ConcurrentHashMap<String,String> reMap; private static Connection connection; private String tableName; @Override public void run() { String sql = "SELECT COUNT(1) num FROM " + tableName; System.out.println(sql); try { PreparedStatement stmt = connection.prepareStatement(sql); ResultSet tablesRest = stmt.executeQuery(); while (tablesRest.next()) { String count = tablesRest.getString("num"); reMap.put(tableName, count); } tablesRest.close(); tablesRest = null; countDownLatch.countDown(); } catch (SQLException e) { log.error(e.getMessage()); reMap.put(tableName, "0"); } } } public static Map<String, String> conutRows(String url, String userName, String password, List<String> tableNames) { int size=tableNames.size(); Date start=new Date(); ConcurrentHashMap<String, String> reMap = new ConcurrentHashMap<>(size); CountDownLatch countDownLatch=new CountDownLatch(size); try (Connection connection = DriverManager.getConnection(url, userName, password)) { CountThread.setConnection(connection); CountThread.setReMap(reMap); CountThread.setThreadCount(countDownLatch); for(String tableName:tableNames){ CountThread thread = new CountThread(tableName); thread.run(); } countDownLatch.await(); // sql.append(" SELECT "); // for (String tableName : tableNames) { // sql.append(" " + tableName + "b.num " + tableName + "a ,"); //字符串拼接 表名+a 拼接成表别名 // } // // //删除多余的一个 , // sql.deleteCharAt(sql.length() - 1); // sql.append(" FROM "); // //子查询 ,分别统计表字段数 // for (String tableName : tableNames) { // sql.append(" ( SELECT COUNT(*) num FROM "); // sql.append(tableName); // sql.append(" ) " + tableName + "b ,"); // } // //删除多余的一个 , // sql.deleteCharAt(sql.length() - 1); // System.out.println(sql); // //使用sql语句进行查询获取结果集 // PreparedStatement stmt = connection.prepareStatement(sql.toString()); // ResultSet tablesRest = stmt.executeQuery(); // //对结果进行遍历,此处结果集实际应只有一行数据 // while (tablesRest.next()) { // for (String tableName : tableNames) { // String count = tablesRest.getString(tableName + "a"); // reMap.put(tableName, count); // } // } // tablesRest.close(); // tablesRest = null; } catch (Exception e) { log.error(e.getMessage()); throw new RuntimeException("数据源连接失败"); } Date end=new Date(); long costTime = (end.getTime()-start.getTime()); System.out.println("******************************************"+costTime+"**************************"); return reMap; }
调用hibernate的query接口为hql语句参数传值,没起作用?
先说说我的hql语句: [code="java"]FROM Ciuser U WHERE 1=1 AND U.id.userId=?[/code] hibernate对应的表是无主键,我传参的方式也是用‘?’代替的,而不是‘:参数名’。 通过hibernate的Query接口执行hql语句。 [code="java"] Query query = session.createQuery(hql); query.setParameter(0,值); return query.list(); [/code] 代码运行大致是这样,但是执行完后是没查询到任何结果的。 后来我换成‘:参数名’的方式进行传参,但还是没有效果。 但是我换种方式,直接拼成字符串 [code="java"] FROM Ciuser U WHERE 1=1 AND U.id.userId='" + string对象 + "' Query query = session.createQuery(hql); return query.list(); [/code] 以上拼字符串方式又是没问题的,不知道是什么原因,请各位指教! 我所使用的hibernate是3.3.1.GA spring是2.5.5。不知道和包有关系没有? 以前我使用JDBC也遇到过此种问题,当时没有重视。PreparedStatement的setParameter,也是没起作用,为什么呢? [b]问题补充:[/b] 我找到原因了,跟数据库字段类型有关系。 USER_ID这个字段,在数据库中是char(20),使用setParameter的话,就必须补空格20位定长才能查询出来,如果字段类型是varchar()就没问题。 但是char()的效率在varchar()之上,也不能因为程序的原因去修改数据库,何况USER_ID这个字段是会经常修改的。 如果这种问题,各位平时是怎么处理的。 [b]问题补充:[/b] 我用的是oracle数据库。 我用char的原因是USER_ID这个字段值不是定长的,但是会经常修改,如果换成varchar的话后期查询效率肯定会大大降低的。 如何是这种情况大家怎么处理。 [b]问题补充:[/b] VARCHAR2虽然比CHAR节省空间,但是如果一个VARCHAR2列经常被修改,而且每次被修改的数据的长度不同,这会引起'行迁移' (Row Migration)现象,而这造成多余的I/O,是数据库设计和调整中要尽力避免的,在这种情况下用CHAR代替VARCHAR2会更好一些。
帮忙:java对大批量数据进行操作
程序对大数据量进行操作。操作的数据库为Oracle 过程是先对数据进行delete操作,然后进行insert操作。 数据量大概是百万条左右。 现在使用的方法是jdbc的PreparedStatement,每5万条commit一次。 可是这样的话程序的速度还是达不到要求。 f(((a+1) % 50000)==0){ delPstmt.executeBatch(); insPstmt.executeBatch(); dbConn.commit(); dbConn.setAutoCommit(true); delPstmt.close(); insPstmt.close(); dbConn.setAutoCommit(false); delPstmt = dbConn.prepareStatement(deleteSql); insPstmt = dbConn.prepareStatement(insertSql); } 有没有比较快的方法,不限定于用jdbc.导出文件导入库什么方法也可以。 但是一定得按顺序先执行delete操作,再进行insert操作。 [b]问题补充:[/b] 数据在其他的库里面。我先执行一个select 语句,把符合条件的数据采集出来,然后迭代ResultSet。 接着就是进行如上的操作。先删后插 [b]问题补充:[/b] 对了。不是删掉表部表中的数据。 删掉的数据就是REsultRet里面迭代出来的数据。因为怕有键值重复。所以进行先删后插。没办法,业务需要
Eclipse用JDBC连接不上MySql,求解决办法
**使用JDBC的方法连接不上MySQL,我的网络是校园网,登陆后IP会变化,不知道这个对连接有没有什么影响,用的是mysql 5.6 以前用JDBC连接上过的,但是现在就不行了,不清楚原因,也在网上找过,但是找不到解决的办法,连接的JAR包是mysql-connector-java-5.1.26-bin.jar,请知道的大神解答一下小弟,还有就是使用Oracle用JDBC是连接得上的,使用的地址也是localhost,但是在用JDBC连接数据库查看的时候,在使用preparedStatement返回的genernatekeys无法使用getInt这个方法,所以想用mysql,因为视频教程中也是用MySQL的,并且是能用getInt这是方法的,所以想用mysql,麻烦各位大哥帮帮忙** 出现的错误如下: import java.sql.*; public class TestMysqlConnection { public static void main (String[] args) { Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bbs","root","123456"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if(conn != null) { conn.close(); conn = null; } } catch (SQLException e) { e.printStackTrace(); } } } 错误如下: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Communication link failure, message from server: "Can't get hostname for your address" at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) at com.mysql.jdbc.Util.getInstance(Util.java:386) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1015) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975) at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1112) at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2486) at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2519) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2304) at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:834) at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:47) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:416) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:346) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at TestMysqlConnection.main(TestMysqlConnection.java:8)
使用merge into语句程序性能,效率的提高
oracle数据库 我有一张临时表 fax_no,lsh(主键)两个字段 我有个功能 往这张临时表插入数据 如果 这条数据fax_no存在什么都不做,如果不存在就insert 部分代码如下: [code="java"] //list2.get(i)----->fax_no //这次需要插入的总条数 //list2中有几万条数据 final int size = list2.size(); jdbcTemplate .batchUpdate( "merge into netfaxdb.fax_temp_faxno a" + " using (select ? as fax_no,? as lsh from dual)b" + " on (a.fax_no=b.fax_no)" + " when not matched then insert(fax_no,lsh) values(b.fax_no,b.lsh)", new BatchPreparedStatementSetter() { public void setValues(PreparedStatement ps, int i) throws SQLException { String lsh = UUIDGenerator.getUUID(); ps.setString(1, list2.get(i)); ps.setString(2, lsh); } public int getBatchSize() { return size; } }); [/code] 当fax_temp_faxno 这张表数据一多时 程序就会变慢 有没有更好的办法
jsp 新手问题 求告诉指点
jsp代码运行后就显示一段话: <%@ page contentType="text/html" pageEncoding="GBK"%> 在使用的是Tomcat,运行HTML,js代码都没问题。这个是怎么回事 求指导,谢谢。 下面是完整代码 <%@page language="java" contentType="text/html" pageEncoding="UTF-8"%> <%@page import="java.sql.*"%> <html> <head> <title> yaga </title> </head> <body> <%! //定义数据库驱动程序 public static final String DBDRIVER="oracle.jdbc.driver.OracleDriver"; public static final String DBURL="jdbc:oracle:thin:@locahost:1521:mldn"; public static final String DBUSER="scott"; public static final String PASSWORD="tiger"; %> <% Connection conn=null; PreparedStatement pstmt=null; ResultSet rs =null; boolean flag=false; String name=null; %> <%//JDBC操作会抛出异常,使用try……catch处理 try{Class.forName(DBDRIVER); conn=DriverManager.getConnection(DBURL,DBUSER,PASSWORD);//取得数据库连接 //编写要使用的数据库SQL语句,验证用户ID和密码,如果正确就取出用户姓名 String sql="select name from myuser where userid=? and password=?"; pstmt=conn.prepareStatement(sql); pstmt.setString(1,request.getParameter("id")); pstmt.setString(2,request.getParameter("password")); rs=pstmt.executeQuery(); if(rs.next()){ name=rs.getString(1); flag=true; } } catch(Exception e){ System.out.println(e); } finally{ try{ conn.close(); } catch(Exception e){} } %> <% if(flag){ %> <jsp:forward page="login_success.jsp"> <jsp:param name="uname" value="<%=name%>"/> </jsp:forward> <% }else{ %> <jsp:forward page="login_failure.html"/> <% } %> </body> </html>
springboot 使用druid往后台传值SQL报错,是在是头疼不知道怎么办了,高C币,解决必采纳
> 首先说我的场景:我是在前台用layui框架的时间选择器,取到两个时间,开始时间和结束时间,在后台我把取到的两个日期2019-03-29 - 2019-03-31截取了出来,取成了两个字符分别是:2019-03-29,2019-03-31,然后转换成了Date,下面的代码图中能看到我转换之后的值是什么样子!然后报了一个莫名其妙的错误,很难受!是在是不知道哪里错了,求大神指教,看下图; #### 这是后台接收到值转换并存入数据库的实现 ![图片说明](https://img-ask.csdn.net/upload/201903/31/1553980314_683850.png) #### 下面是mapper.xml中语句 ``` <!-- 模糊查询--> <select id="fuzzySelectLogs" resultType="OaLog"> SELECT * FROM oa_log WHERE <if test="name != null"> name LIKE CONCAT('%',#{name},'%') </if> <if test="startDate != null and endDate != null">    AND createdate <![CDATA[>=]]> #{startDate} AND createdate <![CDATA[<]]> #{endDate} </if> ORDER BY createdate DESC <if test="limit!=null and page!=null"> LIMIT #{limit} OFFSET #{page} </if> </select> <!-- 分页 --> <select id="fuzzySelectLogsCount" resultType="int"> SELECT COUNT(*)FROM oa_log WHERE <if test="name != null"> name LIKE CONCAT('%',#{name},'%') </if> <if test="startDate != null"> AND createdate <![CDATA[>=]]> #{startDate} AND createdate <![CDATA[<=]]> #{endDate} </if> </select> ``` #### 然后下面是报错! ``` 2019-03-31 05:04:56.652 DEBUG 1675 --- [nio-8081-exec-3] c.h.oasys.dao.IOaLogDao.fuzzySelectLogs : ==> Parameters: (String), 2019-03-29 00:00:00.0(Timestamp), 2019-03-31 00:00:00.0(Timestamp), 10(Integer), 0(Integer) 2019-03-31 05:04:56,687 ERROR Statement:152 - {conn-10005, pstmt-20013} execute error. SELECT * FROM oa_log WHERE name LIKE CONCAT('%',?,'%')    AND createdate >= ? AND createdate < ? ORDER BY createdate DESC LIMIT ? OFFSET ? com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '   AND createdate >= '2019-03-29 00:00:00' AND createdate < '2019-03-31 00' at line 6 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) at com.mysql.jdbc.Util.getInstance(Util.java:408) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3976) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3912) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2530) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2486) at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858) at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1197) at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3409) at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440) at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407) at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:619) at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407) at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440) at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407) at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167) at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:498) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59) at com.sun.proxy.$Proxy105.execute(Unknown Source) at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:63) at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79) at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63) at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325) at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:434) at com.sun.proxy.$Proxy70.selectList(Unknown Source) at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:231) at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:128) at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:68) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:53) at com.sun.proxy.$Proxy77.fuzzySelectLogs(Unknown Source) at com.hxxzt.oasys.service.impl.OaLogServiceImpl.fuzzySelectLogs(OaLogServiceImpl.java:43) at com.hxxzt.oasys.controller.APIController.fuzzyLogs(APIController.java:303) at com.hxxzt.oasys.controller.APIController$$FastClassBySpringCGLIB$$2f9e5a50.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688) at com.hxxzt.oasys.controller.APIController$$EnhancerBySpringCGLIB$$ebb404c6.fuzzyLogs(<generated>) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866) at javax.servlet.http.HttpServlet.service(HttpServlet.java:635) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851) at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387) at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1468) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748) 2019-03-31 05:04:56.697 INFO 1675 --- [nio-8081-exec-3] o.s.b.f.xml.XmlBeanDefinitionReader : Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml] 2019-03-31 05:04:56.725 INFO 1675 --- [nio-8081-exec-3] o.s.jdbc.support.SQLErrorCodesFactory : SQLErrorCodes loaded: [DB2, Derby, H2, HDB, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase] 2019-03-31 05:04:56.740 ERROR 1675 --- [nio-8081-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException: ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '   AND createdate >= '2019-03-29 00:00:00' AND createdate < '2019-03-31 00' at line 6 ### The error may exist in file [/Users/planet/IdeaProjects/oa_system/target/classes/mapper/OaLogMapper.xml] ### The error may involve defaultParameterMap ### The error occurred while setting parameters ### SQL: SELECT * FROM oa_log WHERE name LIKE CONCAT('%',?,'%')    AND createdate >= ? AND createdate < ? ORDER BY createdate DESC LIMIT ? OFFSET ? ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '   AND createdate >= '2019-03-29 00:00:00' AND createdate < '2019-03-31 00' at line 6 ; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '   AND createdate >= '2019-03-29 00:00:00' AND createdate < '2019-03-31 00' at line 6] with root cause com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '   AND createdate >= '2019-03-29 00:00:00' AND createdate < '2019-03-31 00' at line 6 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_172] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_172] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_172] at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_172] at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) ~[mysql-connector-java-5.1.46.jar:5.1.46] at com.mysql.jdbc.Util.getInstance(Util.java:408) ~[mysql-connector-java-5.1.46.jar:5.1.46] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944) ~[mysql-connector-java-5.1.46.jar:5.1.46] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3976) ~[mysql-connector-java-5.1.46.jar:5.1.46] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3912) ~[mysql-connector-java-5.1.46.jar:5.1.46] at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2530) ~[mysql-connector-java-5.1.46.jar:5.1.46] at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683) ~[mysql-connector-java-5.1.46.jar:5.1.46] at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2486) ~[mysql-connector-java-5.1.46.jar:5.1.46] at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858) ~[mysql-connector-java-5.1.46.jar:5.1.46] at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1197) ~[mysql-connector-java-5.1.46.jar:5.1.46] at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3409) ~[druid-1.1.10.jar:1.1.10] at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440) ~[druid-1.1.10.jar:1.1.10] at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407) ~[druid-1.1.10.jar:1.1.10] at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:619) ~[druid-1.1.10.jar:1.1.10] at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407) ~[druid-1.1.10.jar:1.1.10] at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440) ~[druid-1.1.10.jar:1.1.10] at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407) ~[druid-1.1.10.jar:1.1.10] at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167) ~[druid-1.1.10.jar:1.1.10] at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:498) ~[druid-1.1.10.jar:1.1.10] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_172] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_172] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_172] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_172] at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59) ~[mybatis-3.4.0.jar:3.4.0] at com.sun.proxy.$Proxy105.execute(Unknown Source) ~[na:na] at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:63) ~[mybatis-3.4.0.jar:3.4.0] at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79) ~[mybatis-3.4.0.jar:3.4.0] at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63) ~[mybatis-3.4.0.jar:3.4.0] at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325) ~[mybatis-3.4.0.jar:3.4.0] at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156) ~[mybatis-3.4.0.jar:3.4.0] at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109) ~[mybatis-3.4.0.jar:3.4.0] at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83) ~[mybatis-3.4.0.jar:3.4.0] at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148) ~[mybatis-3.4.0.jar:3.4.0] at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141) ~[mybatis-3.4.0.jar:3.4.0] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_172] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_172] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_172] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_172] at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:434) ~[mybatis-spring-1.3.0.jar:1.3.0] at com.sun.proxy.$Proxy70.selectList(Unknown Source) ~[na:na] at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:231) ~[mybatis-spring-1.3.0.jar:1.3.0] at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:128) ~[mybatis-3.4.0.jar:3.4.0] at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:68) ~[mybatis-3.4.0.jar:3.4.0] at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:53) ~[mybatis-3.4.0.jar:3.4.0] at com.sun.proxy.$Proxy77.fuzzySelectLogs(Unknown Source) ~[na:na] at com.hxxzt.oasys.service.impl.OaLogServiceImpl.fuzzySelectLogs(OaLogServiceImpl.java:43) ~[classes/:na] at com.hxxzt.oasys.controller.APIController.fuzzyLogs(APIController.java:303) ~[classes/:na] at com.hxxzt.oasys.controller.APIController$$FastClassBySpringCGLIB$$2f9e5a50.invoke(<generated>) ~[classes/:na] at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) ~[spring-core-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746) ~[spring-aop-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) ~[spring-aop-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) ~[spring-aop-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688) ~[spring-aop-5.0.6.RELEASE.jar:5.0.6.RELEASE] at com.hxxzt.oasys.controller.APIController$$EnhancerBySpringCGLIB$$ebb404c6.fuzzyLogs(<generated>) ~[classes/:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_172] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_172] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_172] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_172] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209) ~[spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) ~[spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE] at javax.servlet.http.HttpServlet.service(HttpServlet.java:635) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE] at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-embed-websocket-8.5.31.jar:8.5.31] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) ~[shiro-web-1.4.0.jar:1.4.0] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) ~[shiro-web-1.4.0.jar:1.4.0] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) ~[shiro-core-1.4.0.jar:1.4.0] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) ~[shiro-core-1.4.0.jar:1.4.0] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387) ~[shiro-core-1.4.0.jar:1.4.0] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) ~[shiro-web-1.4.0.jar:1.4.0] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) ~[shiro-web-1.4.0.jar:1.4.0] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123) ~[druid-1.1.10.jar:1.1.10] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) ~[spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109) ~[spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81) ~[spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200) ~[spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496) [tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) [tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) [tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) [tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803) [tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790) [tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1468) [tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.31.jar:8.5.31] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_172] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_172] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.31.jar:8.5.31] at java.lang.Thread.run(Thread.java:748) [na:1.8.0_172] ``` ### 这种报错实在是太诡异了!完全不知其所以然!求大神告知,重谢!!!!!!!!!!!!
BLOB 数据类型 selecte ... for update
在Java中使用for update获取需要更新的BLOB数据类型游标会产生锁,是什么时候释放的呢? 感觉很慢,几分钟不能进行操作,即使数据量很小! [code="java"] .......... Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.128.35:1521:accebiz1", "sales", "salesw"); if (conn != null) { System.out.println("数据库连接成功!"); } else { System.out.println("数据库连接失败!"); } PreparedStatement lock = conn.prepareStatement(this.getSql("insertTemplate"));//从自己写的xml文件中取SQL log.debug(this.getSql("insertTemplate")); lock.setInt(1, Integer.parseInt(templateNo)); lock.setString(2, url); lock.setString(3, model); lock.setInt(4, Integer.parseInt(modelXAxis)); lock.setInt(5, Integer.parseInt(priceXAxis)); lock.setInt(6, Integer.parseInt(inventoryXAxis)); lock.setInt(7, Integer.parseInt(descriptionXAxis)); lock.setInt(8, Integer.parseInt(modelYAxis)); lock.setInt(9, Integer.parseInt(priceYAxis)); lock.setInt(10, Integer.parseInt(inventoryYAxis)); lock.setInt(11, Integer.parseInt(descriptionYAxis)); lock.setString(12, postDate); lock.setInt(13, Integer.parseInt(siteinfoNo)); lock.executeUpdate(); lock.close(); PreparedStatement ps = conn.prepareStatement(this.getSql("lockSQL")); ps.setInt(1, Integer.parseInt(templateNo)); ResultSet dataLock = ps.executeQuery(); while (dataLock.next()) { BLOB modelTemplateBlob = (BLOB) dataLock.getBlob("model_template"); log.debug("------------------->" + modelTemplateBlob.getBufferSize()); OutputStream out = modelTemplateBlob.getBinaryOutputStream(); byte[] blob = modelTemplate.getBytes(); out.write(blob, 0, blob.length); out.close(); log.debug("------------------->4" + dataLock.getString("description_x_axis")); // insertBolb(dataLock, "model_template", modelTemplate.getBytes()); insertBolb(dataLock, "price_template", priceTemplate.getBytes()); insertBolb(dataLock, "description_template", inventoryTemplate.getBytes()); insertBolb(dataLock, "inventory_template", descriptionTemplate.getBytes()); } ps.close(); .............. public void insertBolb(ResultSet data, String columeName, byte[] blob) { try { log.debug("------------------->start"); BLOB modelTemplateBlob = (BLOB) data.getBlob(columeName); OutputStream out = modelTemplateBlob.getBinaryOutputStream(); int size = modelTemplateBlob.getBufferSize(); out.write(blob, 0, blob.length); out.close(); } catch (IOException ex) { log.debug(ex.getMessage()); log.debug(ex.getStackTrace()); } catch (SQLException sqle) { log.debug(sqle.getMessage()); System.err.println(sqle.getMessage()); } } [/code] [b]问题补充:[/b] 嗯!是单行锁定哦! 啊? :cry: 需求文档描述的需求是从客户端取得12个参数,其中4个是blob,然后写入数据库同一张表中...呜呜,怎么用servlet一次从客户端取我都没弄不明白,然后需求人员说用request.getParameter(""),我都没晃明白客户端怎么发送的,能用这个方法取,如果是字符串有一般存clob吧?只好当字符串取了然后转byte[]存。现在存发现被锁住好半天.....需求人员说了算,我提出自己的意见,多说几遍我自己觉得自己在放屁, 明年不打算干这鸟程序员了,干满一年也算对得起这第一份工作了 在现行的情况下,存的时候能够用什么方式优化么?
MySQL的sql优化问题,求大神帮忙
我使用MySQL数据库的自定义函数实现了像Oracle一样的sequence序列功能,这个功能在项目中是做一个单号生成的模块, 目前是在测试并发访问1000的时候让每个请求响应的时间不超过100毫秒,但是目前的结果是只有三分之二的响应时间能达到要求。以下是我的代码以及sql自定义函数。求大神帮忙优化。 方法 @RequestMapping(value ="/testP.location") @ResponseBody public String testPolicyNo(){ String p_type="P"; String productNO="1999"; Date date=new Date(); SimpleDateFormat simple=new SimpleDateFormat("yyyy"); String sys_year=simple.format(date).toString(); String department="0101L"; String creator="aaa"; long startTime=System.currentTimeMillis(); String policyNo = iGenerateIDService.generatePolicyNo(p_type,productNO,sys_year,department,creator); long endTime=System.currentTimeMillis(); long t=endTime-startTime; String tt="w-----"+String.valueOf(t); log.debug(tt); //System.out.println("保单号"+policyNo); return null; } ```连接数据库代码 @Override public String generatePolicyNos(String p_type, String productNO, String sys_year, String department,String creator) { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; String policyNo=""; try { Class.forName("com.mysql.jdbc.Driver"); conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root",""); ps=conn.prepareStatement("select lpad(nextval(?,?,?,?,?),?,'0')"); ps.setString(1, productNO); ps.setString(2, p_type); ps.setString(3, sys_year); ps.setString(4, department); ps.setString(5, creator); ps.setInt(6, 7); rs=ps.executeQuery(); while(rs.next()){ policyNo=p_type+productNO+sys_year+department+rs.getString(1); } return policyNo; } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return ""; } ``` sql函数: 1:建表语句 CREATE TABLE `tbl_seq_mysql` ( `p_type` varchar(5) NOT NULL, `productNO` varchar(50) NOT NULL, `sys_year` varchar(5) NOT NULL, `department` varchar(5) NOT NULL, `currentValue` int(50) NOT NULL DEFAULT '2', `increment` int(11) NOT NULL DEFAULT '2', `creator` varchar(50) NOT NULL, `created_date` varchar(50) NOT NULL, PRIMARY KEY (`p_type`,`productNO`,`sys_year`,`department`,`currentValue`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 2:函数1 nextval CREATE DEFINER=`shopdev`@`%` FUNCTION `next_value`(m varchar(50),a varchar(5),b varchar(5),c varchar(5),d varchar(50)) RETURNS int(11) begin UPDATE tbl_seq_mysql SET currentValue = currentValue + increment WHERE p_type = a AND productNO = m AND sys_year = b AND department = c AND creator=d; return current_value(m,a,b,c,d); end 3:函数currentval CREATE DEFINER=`shopdev`@`%` FUNCTION `current_value`(n varchar(50),e varchar(5),f varchar (5),g varchar(5),h varchar(50)) RETURNS int(11) BEGIN DECLARE _cur int; DECLARE _curr int; select COUNT(1) INTO _cur from tbl_seq_mysql where creator=h and department=g and productNO= n and p_type=e and sys_year=f; IF _cur=0 THEN insert into tbl_seq_mysql (p_type,productNO,sys_year,department,creator,created_date) VALUES (e,n,f,g,h,NOW()); END IF; set _curr=(select currentValue from tbl_seq_mysql where creator=h and department=g and productNO= n and p_type=e and sys_year=f); return _curr; end
关于spring下,事物日志输出的问题
我使用的是ibatis框架,配置了数据库的事务由spring管理,配置了切面,也实现了如果异常数据库回滚,但是看log日志,并没有发现如别人提供的日志中会出现的什么setcommit=false之类的断言,不知道为什么,请各位不吝赐教,级别为debug日志如下,这个日志的最后一个插入是我故意搞了一个错误的数据插入的 [code="java"] [INFO ] 2012-12-05 19:57:14,358-[HL] ContextLoader.java 187 org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:187) INFO localhost-startStop-1 org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization started [INFO ] 2012-12-05 19:57:14,501-[HL] AbstractApplicationContext.java 456 org.springframework.context.support.AbstractApplicationContext.prepareRefresh(AbstractApplicationContext.java:456) INFO localhost-startStop-1 org.springframework.web.context.support.XmlWebApplicationContext - Refreshing Root WebApplicationContext: startup date [Wed Dec 05 19:57:14 CST 2012]; root of context hierarchy [INFO ] 2012-12-05 19:57:14,762-[HL] XmlBeanDefinitionReader.java 315 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:315) INFO localhost-startStop-1 org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from class path resource [applicationContext.xml] [INFO ] 2012-12-05 19:57:17,828-[HL] PropertiesLoaderSupport.java 177 org.springframework.core.io.support.PropertiesLoaderSupport.loadProperties(PropertiesLoaderSupport.java:177) INFO localhost-startStop-1 org.springframework.beans.factory.config.PropertyPlaceholderConfigurer - Loading properties file from class path resource [jdbc.properties] [INFO ] 2012-12-05 19:57:17,989-[HL] DefaultListableBeanFactory.java 555 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:555) INFO localhost-startStop-1 org.springframework.beans.factory.support.DefaultListableBeanFactory - Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@100c56: defining beans [dataSourceConfigurer,accountDataSource,dataSource,lobHandler,sqlMapClientFactory,txManager,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor,baseServiceMethods,org.springframework.aop.support.DefaultBeanFactoryPointcutAdvisor#0,txAdvice,accountDAO,userDAO,iapDAO,bootDAO,appDAO,accountService,userService,iapService,bootService,appService]; root of factory hierarchy [INFO ] 2012-12-05 19:57:20,881-[HL] ContextLoader.java 214 org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:214) INFO localhost-startStop-1 org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 6514 ms [INFO ] 2012-12-05 19:57:23,779-[HL] FrameworkServlet.java 301 org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:301) INFO localhost-startStop-1 org.springframework.web.servlet.DispatcherServlet - FrameworkServlet 'controller': initialization started [INFO ] 2012-12-05 19:57:23,787-[HL] AbstractApplicationContext.java 456 org.springframework.context.support.AbstractApplicationContext.prepareRefresh(AbstractApplicationContext.java:456) INFO localhost-startStop-1 org.springframework.web.context.support.XmlWebApplicationContext - Refreshing WebApplicationContext for namespace 'controller-servlet': startup date [Wed Dec 05 19:57:23 CST 2012]; parent: Root WebApplicationContext [INFO ] 2012-12-05 19:57:23,793-[HL] XmlBeanDefinitionReader.java 315 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:315) INFO localhost-startStop-1 org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from ServletContext resource [/WEB-INF/controller-servlet.xml] [INFO ] 2012-12-05 19:57:28,121-[HL] ClassPathScanningCandidateComponentProvider.java 186 org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.registerDefaultFilters(ClassPathScanningCandidateComponentProvider.java:186) INFO localhost-startStop-1 org.springframework.context.annotation.ClassPathBeanDefinitionScanner - JSR-330 'javax.inject.Named' annotation found and supported for component scanning [INFO ] 2012-12-05 19:57:28,560-[HL] AutowiredAnnotationBeanPostProcessor.java 137 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.<init>(AutowiredAnnotationBeanPostProcessor.java:137) INFO localhost-startStop-1 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor - JSR-330 'javax.inject.Inject' annotation found and supported for autowiring [INFO ] 2012-12-05 19:57:28,581-[HL] DefaultListableBeanFactory.java 555 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:555) INFO localhost-startStop-1 org.springframework.beans.factory.support.DefaultListableBeanFactory - Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@105b2d3: defining beans [org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping#0,org.springframework.format.support.FormattingConversionServiceFactoryBean#0,org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter#0,org.springframework.web.servlet.handler.MappedInterceptor#0,accountController,appController,bootController,IAPController,userController,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping#1,org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter#1,org.springframework.web.servlet.view.InternalResourceViewResolver#0]; parent: org.springframework.beans.factory.support.DefaultListableBeanFactory@100c56 [INFO ] 2012-12-05 19:57:29,088-[HL] AbstractUrlHandlerMapping.java 411 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:411) INFO localhost-startStop-1 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Mapped URL path [/account/echo.do] onto handler 'accountController' [INFO ] 2012-12-05 19:57:29,089-[HL] AbstractUrlHandlerMapping.java 411 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:411) INFO localhost-startStop-1 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Mapped URL path [/account/checkaccount.do] onto handler 'accountController' [INFO ] 2012-12-05 19:57:29,105-[HL] AbstractUrlHandlerMapping.java 411 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:411) INFO localhost-startStop-1 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Mapped URL path [/boot/{deviceId}/app/list.do] onto handler 'appController' [INFO ] 2012-12-05 19:57:29,105-[HL] AbstractUrlHandlerMapping.java 411 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:411) INFO localhost-startStop-1 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Mapped URL path [/boot/{deviceId}/app/version/{id}/command/list.do] onto handler 'appController' [INFO ] 2012-12-05 19:57:29,106-[HL] AbstractUrlHandlerMapping.java 411 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:411) INFO localhost-startStop-1 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Mapped URL path [/boot/{deviceId}/app/version/{id}/file/list.do] onto handler 'appController' [INFO ] 2012-12-05 19:57:29,106-[HL] AbstractUrlHandlerMapping.java 411 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:411) INFO localhost-startStop-1 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Mapped URL path [/boot/{deviceId}/app/version/{id}/list.do] onto handler 'appController' [INFO ] 2012-12-05 19:57:29,131-[HL] AbstractUrlHandlerMapping.java 411 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:411) INFO localhost-startStop-1 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Mapped URL path [/boot/list.do] onto handler 'bootController' [INFO ] 2012-12-05 19:57:29,132-[HL] AbstractUrlHandlerMapping.java 411 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:411) INFO localhost-startStop-1 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Mapped URL path [/boot/{bootName}/info.do] onto handler 'bootController' [INFO ] 2012-12-05 19:57:29,133-[HL] AbstractUrlHandlerMapping.java 411 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:411) INFO localhost-startStop-1 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Mapped URL path [/boot/{bootName}/update.do] onto handler 'bootController' [INFO ] 2012-12-05 19:57:29,146-[HL] AbstractUrlHandlerMapping.java 411 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:411) INFO localhost-startStop-1 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Mapped URL path [/iap/info.do] onto handler 'IAPController' [INFO ] 2012-12-05 19:57:29,147-[HL] AbstractUrlHandlerMapping.java 411 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:411) INFO localhost-startStop-1 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Mapped URL path [/iap/downloadsecuritykey.do] onto handler 'IAPController' [INFO ] 2012-12-05 19:57:29,164-[HL] AbstractUrlHandlerMapping.java 411 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:411) INFO localhost-startStop-1 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Mapped URL path [/user/login.do] onto handler 'userController' [INFO ] 2012-12-05 19:57:29,165-[HL] AbstractUrlHandlerMapping.java 411 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:411) INFO localhost-startStop-1 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Mapped URL path [/user/checkout.do] onto handler 'userController' [INFO ] 2012-12-05 19:57:33,544-[HL] AbstractUrlHandlerMapping.java 411 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:411) INFO localhost-startStop-1 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Mapped URL path [/account/echo.do] onto handler 'accountController' [INFO ] 2012-12-05 19:57:33,545-[HL] AbstractUrlHandlerMapping.java 411 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:411) INFO localhost-startStop-1 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Mapped URL path [/account/checkaccount.do] onto handler 'accountController' [INFO ] 2012-12-05 19:57:33,547-[HL] AbstractUrlHandlerMapping.java 411 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:411) INFO localhost-startStop-1 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Mapped URL path [/boot/{deviceId}/app/list.do] onto handler 'appController' [INFO ] 2012-12-05 19:57:33,547-[HL] AbstractUrlHandlerMapping.java 411 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:411) INFO localhost-startStop-1 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Mapped URL path [/boot/{deviceId}/app/version/{id}/command/list.do] onto handler 'appController' [INFO ] 2012-12-05 19:57:33,548-[HL] AbstractUrlHandlerMapping.java 411 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:411) INFO localhost-startStop-1 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Mapped URL path [/boot/{deviceId}/app/version/{id}/file/list.do] onto handler 'appController' [INFO ] 2012-12-05 19:57:33,551-[HL] AbstractUrlHandlerMapping.java 411 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:411) INFO localhost-startStop-1 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Mapped URL path [/boot/{deviceId}/app/version/{id}/list.do] onto handler 'appController' [INFO ] 2012-12-05 19:57:33,552-[HL] AbstractUrlHandlerMapping.java 411 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:411) INFO localhost-startStop-1 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Mapped URL path [/boot/list.do] onto handler 'bootController' [INFO ] 2012-12-05 19:57:33,552-[HL] AbstractUrlHandlerMapping.java 411 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:411) INFO localhost-startStop-1 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Mapped URL path [/boot/{bootName}/info.do] onto handler 'bootController' [INFO ] 2012-12-05 19:57:33,555-[HL] AbstractUrlHandlerMapping.java 411 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:411) INFO localhost-startStop-1 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Mapped URL path [/boot/{bootName}/update.do] onto handler 'bootController' [INFO ] 2012-12-05 19:57:33,556-[HL] AbstractUrlHandlerMapping.java 411 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:411) INFO localhost-startStop-1 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Mapped URL path [/iap/info.do] onto handler 'IAPController' [INFO ] 2012-12-05 19:57:33,556-[HL] AbstractUrlHandlerMapping.java 411 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:411) INFO localhost-startStop-1 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Mapped URL path [/iap/downloadsecuritykey.do] onto handler 'IAPController' [INFO ] 2012-12-05 19:57:33,558-[HL] AbstractUrlHandlerMapping.java 411 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:411) INFO localhost-startStop-1 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Mapped URL path [/user/login.do] onto handler 'userController' [INFO ] 2012-12-05 19:57:33,559-[HL] AbstractUrlHandlerMapping.java 411 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:411) INFO localhost-startStop-1 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - Mapped URL path [/user/checkout.do] onto handler 'userController' [INFO ] 2012-12-05 19:57:33,795-[HL] FrameworkServlet.java 320 org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:320) INFO localhost-startStop-1 org.springframework.web.servlet.DispatcherServlet - FrameworkServlet 'controller': initialization completed in 10015 ms [DEBUG] 2012-12-05 19:57:51,314-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-3 java.sql.Connection - {conn-100000} Connection [DEBUG] 2012-12-05 19:57:51,345-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-3 java.sql.Connection - {conn-100000} Preparing Statement: select [id], [account], [servers], [dbname], [descript], [state], [company], [attn], [email], [phone], [mobil], [makedate], [used] from T0000_00 where [company]= ? [DEBUG] 2012-12-05 19:57:51,453-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-3 java.sql.PreparedStatement - {pstm-100001} Executing Statement: select [id], [account], [servers], [dbname], [descript], [state], [company], [attn], [email], [phone], [mobil], [makedate], [used] from T0000_00 where [company]= ? [DEBUG] 2012-12-05 19:57:51,453-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-3 java.sql.PreparedStatement - {pstm-100001} Parameters: [xuwen] [DEBUG] 2012-12-05 19:57:51,454-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-3 java.sql.PreparedStatement - {pstm-100001} Types: [java.lang.String] [DEBUG] 2012-12-05 19:57:51,558-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-3 java.sql.ResultSet - {rset-100002} ResultSet [DEBUG] 2012-12-05 19:57:51,597-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-3 java.sql.ResultSet - {rset-100002} Header: [id, account, servers, dbname, descript, state, company, attn, email, phone, mobil, makeDate, used] [DEBUG] 2012-12-05 19:57:51,598-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-3 java.sql.ResultSet - {rset-100002} Result: [52, USBIAP_XuWen, 192.168.16.2, USBIAP_XuWen, , 1, XuWen, XuWen, XuWen@manley.com.cn, 123456, 234567, 2011-08-16 15:39:40.263, true] [DEBUG] 2012-12-05 19:57:51,634-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-3 java.sql.Connection - {conn-100003} Connection [DEBUG] 2012-12-05 19:57:51,635-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-3 java.sql.Connection - {conn-100003} Preparing Statement: select count([name]) from master.dbo.sysdatabases where [name] = ? [DEBUG] 2012-12-05 19:57:51,636-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-3 java.sql.PreparedStatement - {pstm-100004} Executing Statement: select count([name]) from master.dbo.sysdatabases where [name] = ? [DEBUG] 2012-12-05 19:57:51,636-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-3 java.sql.PreparedStatement - {pstm-100004} Parameters: [USBIAP_XuWen] [DEBUG] 2012-12-05 19:57:51,637-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-3 java.sql.PreparedStatement - {pstm-100004} Types: [java.lang.String] [DEBUG] 2012-12-05 19:57:52,317-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-3 java.sql.ResultSet - {rset-100005} ResultSet [DEBUG] 2012-12-05 19:57:52,322-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-3 java.sql.ResultSet - {rset-100005} Header: [] [DEBUG] 2012-12-05 19:57:52,322-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-3 java.sql.ResultSet - {rset-100005} Result: [1] [DEBUG] 2012-12-05 19:57:56,963-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.Connection - {conn-100006} Connection [DEBUG] 2012-12-05 19:57:56,965-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.Connection - {conn-100006} Preparing Statement: select [id], [username], [psw_0], [ip], [mac], [computer] from T9001_00 where [username]= ? [DEBUG] 2012-12-05 19:57:56,966-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.PreparedStatement - {pstm-100007} Executing Statement: select [id], [username], [psw_0], [ip], [mac], [computer] from T9001_00 where [username]= ? [DEBUG] 2012-12-05 19:57:56,967-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.PreparedStatement - {pstm-100007} Parameters: [xuwen] [DEBUG] 2012-12-05 19:57:56,968-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.PreparedStatement - {pstm-100007} Types: [java.lang.String] [DEBUG] 2012-12-05 19:57:57,039-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.ResultSet - {rset-100008} ResultSet [DEBUG] 2012-12-05 19:57:57,041-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.ResultSet - {rset-100008} Header: [id, username, psw_0, mac, ip, computer] [DEBUG] 2012-12-05 19:57:57,041-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.ResultSet - {rset-100008} Result: [8, XuWen, 1, , , ] [DEBUG] 2012-12-05 19:57:57,844-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.Connection - {conn-100009} Connection [DEBUG] 2012-12-05 19:57:57,845-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.Connection - {conn-100009} Preparing Statement: insert into t9001_02 ([name], [ip], [mac], [computer], [logintime], [sessionid]) values (?, ?, ?, ?, ?, ?) [DEBUG] 2012-12-05 19:57:57,846-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.PreparedStatement - {pstm-100010} Executing Statement: insert into t9001_02 ([name], [ip], [mac], [computer], [logintime], [sessionid]) values (?, ?, ?, ?, ?, ?) [DEBUG] 2012-12-05 19:57:57,847-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.PreparedStatement - {pstm-100010} Parameters: [xuwen, 127.0.0.1, , WINDVALLEY_PC, 2012-12-05 19:57:57.043, 620558E76E33942DA2C83CAE1D2BE31A] [DEBUG] 2012-12-05 19:57:57,848-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.PreparedStatement - {pstm-100010} Types: [java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.sql.Timestamp, java.lang.String] [DEBUG] 2012-12-05 19:57:57,905-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.Connection - {conn-100009} Preparing Statement: select @@IDENTITY as id [DEBUG] 2012-12-05 19:57:57,905-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.PreparedStatement - {pstm-100011} Executing Statement: select @@IDENTITY as id [DEBUG] 2012-12-05 19:57:57,906-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.PreparedStatement - {pstm-100011} Parameters: [] [DEBUG] 2012-12-05 19:57:57,906-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.PreparedStatement - {pstm-100011} Types: [] [DEBUG] 2012-12-05 19:57:57,908-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.ResultSet - {rset-100012} ResultSet [DEBUG] 2012-12-05 19:57:57,909-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.ResultSet - {rset-100012} Header: [id] [DEBUG] 2012-12-05 19:57:57,909-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.ResultSet - {rset-100012} Result: [1953] [DEBUG] 2012-12-05 19:57:58,523-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.Connection - {conn-100013} Connection [DEBUG] 2012-12-05 19:57:58,524-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.Connection - {conn-100013} Preparing Statement: insert into t9001_02 ([name], [ip], [mac], [computer], [logintime], [sessionid]) values (?, ?, ?, ?, ?, ?) [DEBUG] 2012-12-05 19:57:58,525-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.PreparedStatement - {pstm-100014} Executing Statement: insert into t9001_02 ([name], [ip], [mac], [computer], [logintime], [sessionid]) values (?, ?, ?, ?, ?, ?) [DEBUG] 2012-12-05 19:57:58,527-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.PreparedStatement - {pstm-100014} Parameters: [xuwen, 127.0.0.1, , WINDVALLEY_PC, 2012-12-05 19:57:57.043, 620558E76E33942DA2C83CAE1D2BE31A] [DEBUG] 2012-12-05 19:57:58,530-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.PreparedStatement - {pstm-100014} Types: [java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.sql.Timestamp, java.lang.String] [DEBUG] 2012-12-05 19:57:58,532-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.Connection - {conn-100013} Preparing Statement: select @@IDENTITY as id [DEBUG] 2012-12-05 19:57:58,532-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.PreparedStatement - {pstm-100015} Executing Statement: select @@IDENTITY as id [DEBUG] 2012-12-05 19:57:58,533-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.PreparedStatement - {pstm-100015} Parameters: [] [DEBUG] 2012-12-05 19:57:58,534-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.PreparedStatement - {pstm-100015} Types: [] [DEBUG] 2012-12-05 19:57:58,535-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.ResultSet - {rset-100016} ResultSet [DEBUG] 2012-12-05 19:57:58,536-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.ResultSet - {rset-100016} Header: [id] [DEBUG] 2012-12-05 19:57:58,536-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.ResultSet - {rset-100016} Result: [1954] [DEBUG] 2012-12-05 19:57:58,538-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.Connection - {conn-100017} Connection [DEBUG] 2012-12-05 19:57:58,539-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.Connection - {conn-100017} Preparing Statement: insert into t9001_02 ([name], [ip], [mac], [computer], [logintime], [sessionid]) values (?, ?, ?, ?, ?, ?) [DEBUG] 2012-12-05 19:57:58,550-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.PreparedStatement - {pstm-100018} Executing Statement: insert into t9001_02 ([name], [ip], [mac], [computer], [logintime], [sessionid]) values (?, ?, ?, ?, ?, ?) [DEBUG] 2012-12-05 19:57:58,551-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.PreparedStatement - {pstm-100018} Parameters: [xuwen, 127.0.0.1, , WINDVALLEY_PC, 2012-12-05 19:57:57.043, 620558E76E33942DA2C83CAE1D2BE31A] [DEBUG] 2012-12-05 19:57:58,551-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.PreparedStatement - {pstm-100018} Types: [java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.sql.Timestamp, java.lang.String] [DEBUG] 2012-12-05 19:57:58,554-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.Connection - {conn-100017} Preparing Statement: select @@IDENTITY as id [DEBUG] 2012-12-05 19:57:58,554-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.PreparedStatement - {pstm-100019} Executing Statement: select @@IDENTITY as id [DEBUG] 2012-12-05 19:57:58,555-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.PreparedStatement - {pstm-100019} Parameters: [] [DEBUG] 2012-12-05 19:57:58,555-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.PreparedStatement - {pstm-100019} Types: [] [DEBUG] 2012-12-05 19:57:58,556-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.ResultSet - {rset-100020} ResultSet [DEBUG] 2012-12-05 19:57:58,557-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.ResultSet - {rset-100020} Header: [id] [DEBUG] 2012-12-05 19:57:58,557-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.ResultSet - {rset-100020} Result: [1955] [DEBUG] 2012-12-05 19:57:59,293-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.Connection - {conn-100021} Connection [DEBUG] 2012-12-05 19:57:59,294-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.Connection - {conn-100021} Preparing Statement: insert into t9001_02 ([name], [ip], [mac], [computer], [logintime], [sessionid]) values (?, ?, ?, ?, ?, ?) [DEBUG] 2012-12-05 19:57:59,294-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.PreparedStatement - {pstm-100022} Executing Statement: insert into t9001_02 ([name], [ip], [mac], [computer], [logintime], [sessionid]) values (?, ?, ?, ?, ?, ?) [DEBUG] 2012-12-05 19:57:59,295-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.PreparedStatement - {pstm-100022} Parameters: [xuwen, 127.0.0.1, , WINDVALLEY_PC, null, 620558E76E33942DA2C83CAE1D2BE31A] [DEBUG] 2012-12-05 19:57:59,295-[HL] JakartaCommonsLoggingImpl.java 27 com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug(JakartaCommonsLoggingImpl.java:27) DEBUG http-bio-8080-exec-12 java.sql.PreparedStatement - {pstm-100022} Types: [java.lang.String, java.lang.String, java.lang.String, java.lang.String, null, java.lang.String] [INFO ] 2012-12-05 19:57:59,595-[HL] XmlBeanDefinitionReader.java 315 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:315) INFO http-bio-8080-exec-12 org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml] [INFO ] 2012-12-05 19:57:59,689-[HL] SQLErrorCodesFactory.java 126 org.springframework.jdbc.support.SQLErrorCodesFactory.<init>(SQLErrorCodesFactory.java:126) INFO http-bio-8080-exec-12 org.springframework.jdbc.support.SQLErrorCodesFactory - SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase] [INFO ] 2012-12-05 19:58:31,065-[HL] AbstractApplicationContext.java 1002 org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1002) INFO localhost-startStop-2 org.springframework.web.context.support.XmlWebApplicationContext - Closing WebApplicationContext for namespace 'controller-servlet': startup date [Wed Dec 05 19:57:23 CST 2012]; parent: Root WebApplicationContext [INFO ] 2012-12-05 19:58:31,066-[HL] DefaultSingletonBeanRegistry.java 422 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:422) INFO localhost-startStop-2 org.springframework.beans.factory.support.DefaultListableBeanFactory - Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@105b2d3: defining beans [org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping#0,org.springframework.format.support.FormattingConversionServiceFactoryBean#0,org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter#0,org.springframework.web.servlet.handler.MappedInterceptor#0,accountController,appController,bootController,IAPController,userController,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping#1,org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter#1,org.springframework.web.servlet.view.InternalResourceViewResolver#0]; parent: org.springframework.beans.factory.support.DefaultListableBeanFactory@100c56 [INFO ] 2012-12-05 19:58:31,213-[HL] AbstractApplicationContext.java 1002 org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1002) INFO localhost-startStop-2 org.springframework.web.context.support.XmlWebApplicationContext - Closing Root WebApplicationContext: startup date [Wed Dec 05 19:57:14 CST 2012]; root of context hierarchy [INFO ] 2012-12-05 19:58:31,213-[HL] DefaultSingletonBeanRegistry.java 422 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:422) INFO localhost-startStop-2 org.springframework.beans.factory.support.DefaultListableBeanFactory - Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@100c56: defining beans [dataSourceConfigurer,accountDataSource,dataSource,lobHandler,sqlMapClientFactory,txManager,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor,baseServiceMethods,org.springframework.aop.support.DefaultBeanFactoryPointcutAdvisor#0,txAdvice,accountDAO,userDAO,iapDAO,bootDAO,appDAO,accountService,userService,iapService,bootService,appService]; root of factory hierarchy [/code]
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载 点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。 ...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
JDK12 Collectors.teeing 你真的需要了解一下
前言 在 Java 12 里面有个非常好用但在官方 JEP 没有公布的功能,因为它只是 Collector 中的一个小改动,它的作用是 merge 两个 collector 的结果,这句话显得很抽象,老规矩,我们先来看个图(这真是一个不和谐的图????): 管道改造经常会用这个小东西,通常我们叫它「三通」,它的主要作用就是将 downstream1 和 downstre...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
【图解经典算法题】如何用一行代码解决约瑟夫环问题
约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼。 问题描述:编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3…这样依次报),数到 m 的 士兵会被杀死出列,之后的士兵再从 1 开始报数。直到最后剩下一士兵,求这个士兵的编号。 1、方...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
GitHub标星近1万:只需5秒音源,这个网络就能实时“克隆”你的声音
作者 | Google团队 译者 | 凯隐 编辑 | Jane 出品 | AI科技大本营(ID:rgznai100) 本文中,Google 团队提出了一种文本语音合成(text to speech)神经系统,能通过少量样本学习到多个不同说话者(speaker)的语音特征,并合成他们的讲话音频。此外,对于训练时网络没有接触过的说话者,也能在不重新训练的情况下,仅通过未知...
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下...
【管理系统课程设计】美少女手把手教你后台管理
【文章后台管理系统】URL设计与建模分析+项目源码+运行界面 栏目管理、文章列表、用户管理、角色管理、权限管理模块(文章最后附有源码) 1. 这是一个什么系统? 1.1 学习后台管理系统的原因 随着时代的变迁,现如今各大云服务平台横空出世,市面上有许多如学生信息系统、图书阅读系统、停车场管理系统等的管理系统,而本人家里就有人在用烟草销售系统,直接在网上完成挑选、购买与提交收货点,方便又快捷。 试想,若没有烟草销售系统,本人家人想要购买烟草,还要独自前往药...
4G EPS 第四代移动通信系统
目录 文章目录目录4G 与 LTE/EPCLTE/EPC 的架构E-UTRANE-UTRAN 协议栈eNodeBEPCMMES-GWP-GWHSSLTE/EPC 协议栈概览 4G 与 LTE/EPC 4G,即第四代移动通信系统,提供了 3G 不能满足的无线网络宽带化,主要提供数据(上网)业务。而 LTE(Long Term Evolution,长期演进技术)是电信领域用于手机及数据终端的高速无线通...
日均350000亿接入量,腾讯TubeMQ性能超过Kafka
整理 | 夕颜出品 | AI科技大本营(ID:rgznai100)【导读】近日,腾讯开源动作不断,相继开源了分布式消息中间件TubeMQ,基于最主流的 OpenJDK8开发的Tencent Kona JDK,分布式HTAP数据库 TBase,企业级容器平台TKEStack,以及高性能图计算框架Plato。短短一周之内,腾讯开源了五大重点项目。其中,TubeMQ是腾讯大数据平台部门应用的核心组件,...
8年经验面试官详解 Java 面试秘诀
作者 |胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。 Java程序员准备和投递简历的实...
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车?某胡同口的煎饼摊一年能卖出多少个煎饼?深圳有多少个产品经理?一辆公交车里能装下多少个乒乓球?一个正常成年人有多少根头发?这类估算问题,被称为费米问题,是以科学家费米命名的。为什么面试会问这种问题呢?这类问题能把两类人清楚地区分出来。一类是具有文科思维的人,擅长赞叹和模糊想象,它主要依靠的是人的第一反应和直觉,比如小孩...
so easy! 10行代码写个"狗屁不通"文章生成器
前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。 背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法 不过,当我看了源代码之后 这程序不到50行 尽管我有多年的Python经验,但我竟然一时也没有看懂 当然啦,原作者也说了,这个代码也是在无聊中诞生的,平时撸码是不写中文变量名的, 中文...
相关热词 c# 输入ip c# 乱码 报表 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件
立即提问