JBOSS 點滴

          豐豐的博客

          2019年5月6日 #

          mysql5.x忘記密碼

          參考:https://blog.csdn.net/qq_34102150/article/details/126120056


          1、停止MySQL服務,輸入 net stop mysql 停止服務。
          2、切換到MySQL的bin文件下,
              mysql5.x:  mysqld --console --skip-grant-tables --shared-memory

          mysqld --console --skip-grant-tables --shared-memory
          3、輸入mysql -uroot -p回車,不用輸入密碼,直接按回車跳過,
              輸入:  use mysql 
              輸入:  update user set password=PASSWORD('123456') where USER='root';
              或者:   GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;
              輸入:  FLUSH PRIVILEGES;
          4、重啟服務

          posted @ 2024-02-17 15:09 半導體 閱讀(45) | 評論 (0)編輯 收藏

          微信小程序開發流程

          準備工作:
              需要https的域名
              1、域名申請、備案   (我是在阿里云買的服務器,域名也在阿里云購買  )
              2、域名與IP綁定 
              3、ssl安全證書 申請(https
              4、下載ssl安全證書布署在tomcat服務器
              4、在云服務器tomcat中布署https           
                     參考   https://blog.csdn.net/qq_35206244/article/details/97613498

                    ps:任何操作不會,直接打阿里云客服電話 95187
              
          小程序開發流程:
              1、在微信官網注冊帳號
              2、下載小程序開發工具
              3、小程序開發、上傳   
              4、小程序送審,審核通過即可分享給你的朋友

          posted @ 2020-08-08 10:11 半導體 閱讀(119) | 評論 (0)編輯 收藏

          mall 工程創建踩坑

          新建項目坑 
          www.macrozheng.com項目,打開maven總是引入失敗,后來
          https://www.cnblogs.com/dk1024/p/10778841.html


          https://blog.csdn.net/ken_ding/article/details/85623092這個是前端有可能遇見的坑的解決辦法


           安裝環境文檔:
          http://www.macrozheng.com/#/deploy/mall_deploy_windows

          posted @ 2020-07-20 21:52 半導體 閱讀(123) | 評論 (0)編輯 收藏

          springboot 打包 后,在dos命令行運行提示沒有主清單屬性的解決辦法

          1.在pom.xml文件中插入
          <build>
              <plugins>
                  <plugin>
                      <groupId>org.springframework.boot</groupId>
                      <artifactId>spring-boot-maven-plugin</artifactId>
                  </plugin>
              </plugins>
          </build>
          2.雙擊IDEA右側Maven Projects的lifecycle下的package,打包成jar,重新執行以上命令。

          posted @ 2020-06-27 16:42 半導體 閱讀(216) | 評論 (0)編輯 收藏

          MyBatis出現org.apache.ibatis.executor.ExecutorException異常

          DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
          DEBUG [main] 
          - PooledDataSource forcefully closed/removed all connections.
          DEBUG [main] 
          - PooledDataSource forcefully closed/removed all connections.
          DEBUG [main] 
          - PooledDataSource forcefully closed/removed all connections.
          DEBUG [main] 
          - Opening JDBC Connection
          DEBUG [main] 
          - Created connection 29011566.
          DEBUG [main] 
          - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@1baae6e]
          DEBUG [main] 
          - ==>  Preparing: select * from user where username like concat(?,'%') 
          DEBUG [main] - ==> Parameters: 張(String)

          org.apache.ibatis.exceptions.PersistenceException: 
          ### 
          Error querying database.  Cause: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column 'username' from result set.  Cause: java.sql.SQLException: Cannot convert value 'å¼ ä¸?' from column 2 to TIMESTAMP.
          ### The error may exist in sqlmap/User.xml
          ### The 
          error may involve test.findUserByName3
          ### The 
          error occurred while handling results
          ### SQL: 
          select * from user where username like concat(?,'%')
          ### Cause: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column 'username' from result set.  Cause: java.sql.SQLException: Cannot convert value 'å¼ ä¸?' from column 2 to TIMESTAMP.

              at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:
          30)
              at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:
          149)
              at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:
          140)
              at com.swjd.test.B.test2(B.java:
          40)
              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:
          497)
              at org.junit.runners.model.FrameworkMethod$
          1.runReflectiveCall(FrameworkMethod.java:50)
              at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:
          12)
              at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:
          47)
              at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:
          17)
              at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:
          325)
              at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:
          78)
              at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:
          57)
              at org.junit.runners.ParentRunner$
          3.run(ParentRunner.java:290)
              at org.junit.runners.ParentRunner$
          1.schedule(ParentRunner.java:71)
              at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:
          288)
              at org.junit.runners.ParentRunner.access$
          000(ParentRunner.java:58)
              at org.junit.runners.ParentRunner$
          2.evaluate(ParentRunner.java:268)
              at org.junit.runners.ParentRunner.run(ParentRunner.java:
          363)
              at org.junit.runner.JUnitCore.run(JUnitCore.java:
          137)
              at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:
          68)
              at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:
          47)
              at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:
          242)
              at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:
          70)
          Caused by: org.apache.ibatis.executor.result.ResultMapException: 
          Error attempting to get column 'username' from result set.  Cause: java.sql.SQLException: Cannot convert value 'å¼ ä¸?' from column 2 to TIMESTAMP.
              at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:83)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.createUsingConstructor(DefaultResultSetHandler.java:
          671)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.createByConstructorSignature(DefaultResultSetHandler.java:
          654)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.createResultObject(DefaultResultSetHandler.java:
          618)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.createResultObject(DefaultResultSetHandler.java:
          591)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:
          397)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:
          354)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:
          328)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:
          301)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:
          194)
              at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:
          65)
              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:
          324)
              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:
          147)
               
          24 more
          Caused by: java.sql.SQLException: Cannot convert value 
          'å¼ ä¸?' from column 2 to TIMESTAMP.
              at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
              at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:
          956)
              at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:
          926)
              at com.mysql.jdbc.ResultSetRow.getTimestampFast(ResultSetRow.java:
          1328)
              at com.mysql.jdbc.ByteArrayRow.getTimestampFast(ByteArrayRow.java:
          124)
              at com.mysql.jdbc.ResultSetImpl.getTimestampInternal(ResultSetImpl.java:
          6669)
              at com.mysql.jdbc.ResultSetImpl.getTimestamp(ResultSetImpl.java:
          5988)
              at com.mysql.jdbc.ResultSetImpl.getTimestamp(ResultSetImpl.java:
          6026)
              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:
          497)
              at org.apache.ibatis.logging.jdbc.ResultSetLogger.invoke(ResultSetLogger.java:
          69)
              at com.sun.proxy.$Proxy6.getTimestamp(Unknown Source)
              at org.apache.ibatis.type.DateTypeHandler.getNullableResult(DateTypeHandler.java:
          39)
              at org.apache.ibatis.type.DateTypeHandler.getNullableResult(DateTypeHandler.java:
          28)
              at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:
          81)
               
          41 more
          Caused by: java.lang.NumberFormatException: 張三
              at com.mysql.jdbc.StringUtils.getInt(StringUtils.java:
          756)
              at com.mysql.jdbc.ResultSetRow.getTimestampFast(ResultSetRow.java:
          1253)
               
          54 more


          Process finished 
          with exit code -1

          上網找了一些答案也沒有解決我的問題,

          后來發現原來是User類的構造函數問題,找不到相關的構造函數;試著在User中加一個默認的構造函數,就解決了。。。

          希望能幫到大家。

                   默認的構造函數在創建構造函數后,不會自動創建默認構造函數

          DEBUG [main] 
          - Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4jImpl' adapter.
          DEBUG [main] - PooledDataSource forcefully closed/removed all connections.
          DEBUG [main] 
          - PooledDataSource forcefully closed/removed all connections.
          DEBUG [main] 
          - PooledDataSource forcefully closed/removed all connections.
          DEBUG [main] 
          - PooledDataSource forcefully closed/removed all connections.
          DEBUG [main] 
          - Opening JDBC Connection
          DEBUG [main] 
          - Created connection 27155935.
          DEBUG [main] 
          - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@19e5ddf]
          DEBUG [main] 
          - ==>  Preparing: select * from user where id=
          DEBUG [main] 
          - ==> Parameters: 27(Integer)

          org.apache.ibatis.exceptions.PersistenceException: 
          ### 
          Error querying database.  Cause: org.apache.ibatis.reflection.ReflectionException: Error instantiating class com.swjd.po.User with invalid types () or values (). Cause: java.lang.NoSuchMethodException: com.swjd.po.User.<init>()
          ### The 
          error may exist in sqlmap/User.xml
          ### The 
          error may involve test.findUserById-Inline
          ### The 
          error occurred while setting parameters
          ### SQL: 
          select * from user where id=?
          ### Cause: org.apache.ibatis.reflection.ReflectionException: 
          Error instantiating class com.swjd.po.User with invalid types () or values (). Cause: java.lang.NoSuchMethodException: com.swjd.po.User.<init>()

              at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:
          26)
              at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:
          111)
              at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:
          102)
              at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:
          66)
              at com.test.Test1.test1(Test1.java:
          31)
              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:
          497)
              at org.junit.runners.model.FrameworkMethod$
          1.runReflectiveCall(FrameworkMethod.java:50)
              at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:
          12)
              at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:
          47)
              at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:
          17)
              at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:
          325)
              at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:
          78)
              at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:
          57)
              at org.junit.runners.ParentRunner$
          3.run(ParentRunner.java:290)
              at org.junit.runners.ParentRunner$
          1.schedule(ParentRunner.java:71)
              at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:
          288)
              at org.junit.runners.ParentRunner.access$
          000(ParentRunner.java:58)
              at org.junit.runners.ParentRunner$
          2.evaluate(ParentRunner.java:268)
              at org.junit.runners.ParentRunner.run(ParentRunner.java:
          363)
              at org.junit.runner.JUnitCore.run(JUnitCore.java:
          137)
              at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:
          68)
              at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:
          47)
              at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:
          242)
              at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:
          70)
          Caused by: org.apache.ibatis.reflection.ReflectionException: 
          Error instantiating class com.swjd.po.User with invalid types () or values (). Cause: java.lang.NoSuchMethodException: com.swjd.po.User.<init>()
              at org.apache.ibatis.reflection.factory.DefaultObjectFactory.instantiateClass(DefaultObjectFactory.java:
          86)
              at org.apache.ibatis.reflection.factory.DefaultObjectFactory.create(DefaultObjectFactory.java:
          48)
              at org.apache.ibatis.reflection.factory.DefaultObjectFactory.create(DefaultObjectFactory.java:
          41)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.createResultObject(DefaultResultSetHandler.java:
          528)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.createResultObject(DefaultResultSetHandler.java:
          507)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:
          331)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:
          291)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:
          266)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:
          236)
              at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:
          150)
              at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:
          60)
              at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:
          73)
              at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:
          60)
              at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:
          267)
              at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:
          137)
              at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:
          96)
              at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:
          77)
              at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:
          108)
               
          25 more
          Caused by: java.lang.NoSuchMethodException: com.swjd.po.User.
          <init>()
              at java.lang.Class.getConstructor0(Class.java:
          3082)
              at java.lang.Class.getDeclaredConstructor(Class.java:
          2178)
              at org.apache.ibatis.reflection.factory.DefaultObjectFactory.instantiateClass(DefaultObjectFactory.java:
          60)
               
          42 more


          Process finished 
          with exit code -1


            

          這種錯也是同樣的問題,


          加上無參構造函數就可以了。


          當創建對象來接受sql結果時會遍歷實體類的構造方法找到與之匹配的,如果實體類中有構造方法了但是參數不匹配的話就會報上述錯誤,此時添加無參構造方法(默認的構造方法),會走其他方法,
          https://blog.csdn.net/qq_35975416/article/details/80488267




          posted @ 2020-03-25 20:01 半導體 閱讀(5572) | 評論 (0)編輯 收藏

          idea jsp代碼不提示Java代碼

          在<head>里寫java代碼有提示,在<body>里不寫%>就有提示。

          這是由于按提示快捷鍵alt+enter導致。解決方法一直未找到合適的。 
          解決方法:

          posted @ 2020-03-08 20:11 半導體 閱讀(256) | 評論 (0)編輯 收藏

          項目管理推薦好文

          掙值管理(PV、EV、AC、SV、CV、SPI、CPI)記憶之我見 http://www.cnitpm.com/pm/7707.html https://blog.csdn.net/weixin_38197294/article/details/79852129

          posted @ 2020-03-08 11:41 半導體 閱讀(114) | 評論 (0)編輯 收藏

          jquery傳參及獲取方式

          html寫法
          <form id="myform">
          <input type="radio" value="1" name="gender">
          <input type="radio" value="2" name="gender">
          <input type="text" name="username" />
          <input type="button" value="提交" onclick="fun()"/>
          </form>
          <div id="myText"></div>



          獲取值方式一
              <script src="js/jquery-3.3.1.min.js"></script>
              
          <script>
                  
          //定義方法
                  function fun(){
                     alert($('#myform').serialize());
                      
          //使用ajax發送異步請求
                        $.post("ajaxServletH",$('#myform').serialize(),function(data){
                            
          var divA = document.getElementById("myText");
                            divA.innerHTML 
          = "<br/><hr><br/>"+data;
                         },
          "text")
                  }
              
          </script>
          獲取值方式二:

          var gender = $ ("input [name= 'gender' ] : checked") .val() ;

          posted @ 2020-02-08 18:36 半導體 閱讀(166) | 評論 (0)編輯 收藏

          spring boot結合thymeleaf通過后臺傳入的數值循環生成標簽

          spring boot結合thymeleaf通過后臺傳入的數值循環生成標簽

           <span th:each="i:${#numbers.sequence(1,page.pages)}">
             
          <span th:text="${i}"/>
          </span>

          posted @ 2019-10-16 16:06 半導體 閱讀(337) | 評論 (0)編輯 收藏

          模態框傳值

          模態框傳值:
          https://blog.csdn.net/linhaiyun_ytdx/article/details/77417702

          posted @ 2019-10-12 16:35 半導體 閱讀(154) | 評論 (0)編輯 收藏

          Bootstrap 模態框 + iframe > 打開子頁面 > 數據傳輸/關閉模態框

               摘要: 父頁面bootstrap模態框: <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="false" > <div class="modal-dialog modal-lg"> ...  閱讀全文

          posted @ 2019-05-28 21:23 半導體 閱讀(330) | 評論 (0)編輯 收藏

          mybatis學習之路----mysql批量新增數據

          來源:
          https://blog.csdn.net/xu1916659422/article/details/77971867
           
             mysql新增語句 
              insert into 表名(字段,字段。。。) values ( 值,值 。。。);此種適合單條插入。
          批量插入,
             一種可以在代碼中循環著執行上面的語句,但是這種效率太差,下面會有對比,看看它有多差。
          另一種,可以用mysql支持的批量插入語句,
          insert into
               表名(字段,字段。。。) values ( 值,值 。。。),( 值,值 。。。),( 值,值 。。。)....
          這種方式相比起來,更高效。
          實現過程mapper.xml
           

              <!-- 跟普通的insert沒有什么不同的地方 ,主要用來跟下面的批量插入做對比。-->
              <insert id="insert" parameterType="com.soft.mybatis.model.Customer">
                  <!-- 跟自增主鍵方式相比,這里的不同之處只有兩點
                              1  insert語句需要寫id字段了,并且 values里面也不能省略
                              2 selectKey 的order屬性需要寫成BEFORE 因為這樣才能將生成的uuid主鍵放入到model中,
                              這樣后面的insert的values里面的id才不會獲取為空
                        跟自增主鍵相比就這點區別,當然了這里的獲取主鍵id的方式為 select uuid()
                        當然也可以另寫別生成函數。-->
                  <selectKey keyProperty="id" order="BEFORE" resultType="String">
                      select uuid()
                  </selectKey>
                  insert into t_customer (id,c_name,c_sex,c_ceroNo,c_ceroType,c_age)
                  values (#{id},#{name},#{sex},#{ceroNo},#{ceroType},#{age})
              </insert>
           
              <!-- 批量插入, -->
              <insert id="batchInsert" parameterType="java.util.Map">
                  <!-- 這里只做演示用,真正項目中不會寫的這么簡單。 -->
                  insert into
                    t_customer (id,c_name,c_sex,c_ceroNo,c_ceroType,c_age)
                  values
                  <!-- foreach mybatis循環集合用的
                        collection="list" 接收的map集合中的key 用以循環key對應的屬性
                           separator=","  表示每次循環完畢,在sql后面放一個逗號
                           item="cus" 每次循環的實體對象 名稱隨意-->
                  <foreach collection="list" separator="," item="cus">
                      <!-- 組裝values對象,因為這張表的主鍵為非自增主鍵,所以這里 (select uuid()) 用于生成id的值-->
                      ((select uuid()),#{cus.name},#{cus.sex},#{cus.ceroNo},#{cus.ceroType},#{cus.age})
                  </foreach>
              </insert>
          實體model對象

          package com.soft.mybatis.model;

           

          /**

           * Created by xuweiwei on 2017/9/10.

           */

          public class Customer {

           

              private String id;

              private String name;

              private Integer age;

              private Integer sex;

              private String ceroNo;

              private Integer ceroType;

           

              public String getId() {

                  return id;

              }

           

              public void setId(String id) {

                  this.id = id;

              }

           

              public String getName() {

                  return name;

              }

           

              public void setName(String name) {

                  this.name = name;

              }

           

              public Integer getAge() {

                  return age;

              }

           

              public void setAge(Integer age) {

                  this.age = age;

              }

           

              public Integer getSex() {

                  return sex;

              }

           

              public void setSex(Integer sex) {

                  this.sex = sex;

              }

           

              public String getCeroNo() {

                  return ceroNo;

              }

           

              public void setCeroNo(String ceroNo) {

                  this.ceroNo = ceroNo;

              }

           

              public Integer getCeroType() {

                  return ceroType;

              }

           

              public void setCeroType(Integer ceroType) {

                  this.ceroType = ceroType;

              }

           

              @Override

              public String toString() {

                  return "Customer{" +

                          "id='" + id + '\'' +

                          ", name='" + name + '\'' +

                          ", age=" + age +

                          ", sex=" + sex +

                          ", ceroNo='" + ceroNo + '\'' +

                          ", ceroType='" + ceroType + '\'' +

                          '}';

              }

          }
          接口
          1. int add(Customer customer);
          2.     int batchInsert(Map<String,Object> param);

            實現
          實現

             
          /**

               * 新增數據

               * 
          @param customer

               * 
          @return

               
          */

              
          public int add(Customer customer) {

                  
          return insert("customer.insert", customer);

              }

           

              
          /**

               * 批量插入數據

               * 
          @param param

               * 
          @return

               
          */

              
          public int batchInsert(Map<String,Object> param) {

                  
          return insert("customer.batchInsert", param);

              }

           

              
          /**

               * 公共部分

               * 
          @param statementId

               * 
          @param obj

               * 
          @return

               
          */

              
          private int insert(String statementId, Object obj){

                  SqlSession sqlSession 
          = null;

                  
          try {

                      sqlSession 
          = SqlsessionUtil.getSqlSession();

                      
          int key =  sqlSession.insert(statementId, obj);

                      
          // commit

                      sqlSession.commit();

                      
          return key;

                  } 
          catch (Exception e) {

                      sqlSession.rollback();

                      e.printStackTrace();

                  } 
          finally {

                      SqlsessionUtil.closeSession(sqlSession);

                  }

                  
          return 0;

              }

          posted @ 2019-05-23 11:29 半導體 閱讀(136) | 評論 (0)編輯 收藏

          springboot中樹形結構的開發

          POM中引入
                  <!--JSON樹形結構 轉換-->
                  
          <dependency>
                      
          <groupId>net.sf.json-lib</groupId>
                      
          <artifactId>json-lib</artifactId>
                      
          <version>2.4</version>
                      
          <classifier>jdk15</classifier>
                  
          </dependency>
          實體類創建
          import net.sf.json.JSONArray;

          import java.util.ArrayList;
          import java.util.List;

          /**
           * 構造目錄JSON樹
           * Created by   network on 2019/5/22
           
          */
          public class TreeBuilder {

              List
          <Node> nodes = new ArrayList<>();

              
          public String buildTree(List<Node> nodes) {

                  TreeBuilder treeBuilder 
          = new TreeBuilder(nodes);

                  
          return treeBuilder.buildJSONTree();
              }

              
          public TreeBuilder() {
              }

              
          public TreeBuilder(List<Node> nodes) {
                  
          super();
                  
          this.nodes = nodes;
              }

              
          // 構建JSON樹形結構
              public String buildJSONTree() {
                  List
          <Node> nodeTree = buildTree();
                  JSONArray jsonArray 
          = JSONArray.fromObject(nodeTree);
                  
          return jsonArray.toString();
              }

              
          // 構建樹形結構
              public List<Node> buildTree() {
                  List
          <Node> treeNodes = new ArrayList<>();
                  List
          <Node> rootNodes = getRootNodes();
                  
          for (Node rootNode : rootNodes) {
                      buildChildNodes(rootNode);
                      treeNodes.add(rootNode);
                  }
                  
          return treeNodes;
              }

              
          // 遞歸子節點
              public void buildChildNodes(Node node) {
                  List
          <Node> children = getChildNodes(node);
                  
          if (!children.isEmpty()) {
                      
          for (Node child : children) {
                          buildChildNodes(child);
                      }
                      node.setChildren(children);
                  }
              }

              
          // 獲取父節點下所有的子節點
              public List<Node> getChildNodes(Node pnode) {
                  List
          <Node> childNodes = new ArrayList<>();
                  
          for (Node n : nodes) {
                      
          if (pnode.getId().equals(n.getPid())) {
                          childNodes.add(n);
                      }
                  }
                  
          return childNodes;
              }

              
          // 判斷是否為根節點
              public boolean rootNode(Node node) {
                  
          boolean isRootNode = true;
                  
          for (Node n : nodes) {
                      
          if (node.getPid().equals(n.getId())) {
                          isRootNode 
          = false;
                          
          break;
                      }
                  }
                  
          return isRootNode;
              }

              
          // 獲取集合中所有的根節點
              public List<Node> getRootNodes() {
                  List
          <Node> rootNodes = new ArrayList<>();
                  
          for (Node n : nodes) {
                      
          if (rootNode(n)) {
                          rootNodes.add(n);
                      }
                  }
                  
          return rootNodes;
              }

              
          public static class Node {

                  
          private String id;
                  
          private String pid;
                  
          private String name;
                  
          private List<Node> children;

                  
          public Node() {
                  }

                  
          public Node(String id, String pid, String name) {
                      
          super();
                      
          this.id = id;
                      
          this.pid = pid;
                      
          this.name = name;
                  }

                  
          public String getId() {
                      
          return id;
                  }

                  
          public void setId(String id) {
                      
          this.id = id;
                  }

                  
          public String getPid() {
                      
          return pid;
                  }

                  
          public void setPid(String pid) {
                      
          this.pid = pid;
                  }

                  
          public String getName() {
                      
          return name;
                  }

                  
          public void setName(String name) {
                      
          this.name = name;
                  }


                  
          public List<Node> getChildren() {
                      
          return children;
                  }

                  
          public void setChildren(List<Node> children) {
                      
          this.children = children;
                  }
              }
          }
          mapper.xml
              <!--根據條件查詢返回Node-->
              
          <select id="findByItemtypeTree" parameterType="BsItemtype" resultType="Node">
                  SELECT upcode as pid,itemname as name,itemtypecode as id FROM 表名 WHERE 1=1
                  
          <if test="upcode != null  and upcode != '' ">
                      and upcode = #{值}
                  
          </if>
              
          </select>
          controller:返回結果
              //樹形結構
              @RequestMapping("left")
              ModelAndView left() 
          throws JSONException {
                  String mavStr 
          = "";
                  BsItemtype queryItemtype 
          = new BsItemtype();
                  
          //查詢根目錄樹
                
          //  queryItemtype.setUpcode("00");
                  
          // 獲取全部目錄節點
                  List<TreeBuilder.Node> itemtypeTree = itemtypeService.findByItemtypeTree();

                  
          // 拼裝樹形json字符串
                   mavStr = new TreeBuilder().buildTree(itemtypeTree);
                  mavStr 
          = mavStr.replaceAll("\"children\"","\"nodes\"");
                  mavStr
          = mavStr.replaceAll("\"id\"","\"value\"");
                  mavStr 
          = mavStr.replaceAll("\"name\"","\"text\"");
                  ModelAndView mav 
          = new ModelAndView("/bs/itemtype/itemtypeLeft.html");//配置返回路徑
                  System.out.println(mavStr);
                  mav.addObject(
          "mavStr", mavStr.toString());
                  
          return mav;
              }
          DAO層:
          List<TreeBuilder.Node> findByItemtypeTree();

          html
          <!DOCTYPE html>
          <html xmlns:th="http://www.thymeleaf.org">
          <html lang="en">
          <head>
              
          <meta charset="UTF-8">
              
          <title></title>

              
          <!-- Required Stylesheets -->
              
          <link href="/oastyle/css/bootstrap.css" rel="stylesheet">
              
          <!-- Required Javascript -->
              
          <script src="/js/jquery.js"></script>
              
          <script src="/js//bootstrap-treeview.js"></script>
          </head>
          <body>
          <div id="tree"></div>
          <script th:inline="javascript">
          var tree = eval([[${mavStr}]]);
                   
          function getTree() {
                  
          // Some logic to retrieve, or generate tree structure
                  return tree;
              }

              $('#tree').treeview({
                  data: getTree(),
                  enableLinks: 
          true});

              $('#tree').on('nodeSelected',
          function(event, data) {
                    window.parent.itemtypeRight.location.href
          ="/itemtype/list?upcode="+data.value;
              });

          </script>

          </body>
          </html>

          posted @ 2019-05-21 19:08 半導體 閱讀(2072) | 評論 (0)編輯 收藏

          技巧

          layui
          可以做表格排序。

          posted @ 2019-05-16 21:14 半導體 閱讀(81) | 評論 (0)編輯 收藏

          分頁方式:

          前臺:
          <form   method="post" action = "/bbs/list"  id="queryform">
                  
          <input type="hidden" name="start" id="start"/>
                  
          <li>搜索:</li>
                          
          <input type="text" placeholder="請輸入公告名稱" name="title"  th:value ="${queryBbs.title}" />
                        
          <href="javascript:void(0)" class="button border-main icon-search" onclick="changesearch()" > 搜索</a>
              
          </form>
              //搜索
              function changesearch() {
                  $(
          "#queryform").submit();
              }
          通過page傳值
          <div class="pagelist" th:include="common/footer::page"/>
          包含頁面
          <!--fotter-->
          <div class="pagelist" th:fragment="page">
              
          <a th:onclick="javascript:page(0)">[首 頁]</a>
              
          <a th:onclick="javascript:page([[${page.pageNum}]]-1)">[上一頁]</a>
              
          <a th:onclick="javascript:page([[${page.pageNum}]]+1)">[下一頁]</a>
              
          <a th:onclick="javascript:page([[${page.pages}]])">[尾 頁]</a>
              共[[${page.total}]]條記錄
          </div>
          //分頁跳轉方法
          function page(pageNum) {
          $(
          "#start").val(pageNum);
          $(
          "#queryform").submit();
          }
          此種方法可以將搜索查詢框內容通過form表單的方式提交給controller,controller再分頁,但點“下一頁”事件多點二次很容易導致瀏覽器假死。

          第二種方式:直接通過href傳值,這種方式不死機。
                                  <div class="pagelist">
                                  
          <th:href="@{/bbs/list(start=0,title=${queryBbs.title})}">[首  頁]</a>
                                  
          <th:href="@{/bbs/list(start=${page.pageNum-1},title=${queryBbs.title})}">[上一頁]</a>
                                  
          <th:href="@{/bbs/list(start=${page.pageNum+1},title=${queryBbs.title})}">[下一頁]</a>
                                  
          <th:href="@{/bbs/list(start=${page.pages},title=${queryBbs.title})}">[尾  頁]</a>
                                      共[[${page.total}]]條記錄
                                  
          </div>

          posted @ 2019-05-15 15:21 半導體 閱讀(122) | 評論 (0)編輯 收藏

          org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing

               摘要: 錯誤如下:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->org.thymeleaf.exceptions.TemplateInputException: An error happened during&nbs...  閱讀全文

          posted @ 2019-05-12 15:15 半導體 閱讀(7838) | 評論 (0)編輯 收藏

          好看的界面

          windows風格
          https://www.toufu.xyz
          layui

          網頁模板素材
          http://www.htmlsucai.com/forum-78-1.html
          http://www.cssmoban.com/cssthemes/houtaimoban/
          http://www.16sucai.com/
          https://www.58pic.com/

          posted @ 2019-05-11 23:17 半導體 閱讀(101) | 評論 (0)編輯 收藏

          Spring+Mybatis 查詢所有數據時發生異常:org.apache.ibatis.reflection.ReflectionException: There is no getter for

          Spring+Mybatis框架整合時,根據條件查詢數據,發生異常
          Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'sname' in 'class java.lang.String'
          userinfoMapper.xml文件:
          <select id="findAll" parameterType="string" resultMap="userinfoMap">  select * from userinfo where sname like '%${sname}%' </select>
          UserinfoMapper接口:

          public List<Userinfo> findAll(String sname);
          解決方法:在參數前加@Param標簽
          public List<Userinfo> findAll(@Param("sname") String sname);

          posted @ 2019-05-11 16:05 半導體 閱讀(1605) | 評論 (0)編輯 收藏

          全選輸出checkbox的值

          $("input[name='a']").each(function () {
                      Aval 
          = $(this).val();
                      alert(Aval);
                  });

          解釋:取當前頁面所有name='a'的input元素,循環每一個取到的元素,將其value的值賦

          給Aval,并輸出。


          posted @ 2019-05-11 14:48 半導體 閱讀(99) | 評論 (0)編輯 收藏

          mysql8.0使用sqlyog無法連接時

           ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

           ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

          如果mysql只能本地連接,不能遠程 連接
          第一步:
           update user set host='%' where user='root';
          第二步:重啟服務

          posted @ 2019-05-06 10:14 半導體 閱讀(258) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 通城县| 福清市| 莱阳市| 南澳县| 永州市| 西青区| 固阳县| 汽车| 涞源县| 苍山县| 德令哈市| 汾阳市| 麦盖提县| 温州市| 阜宁县| 海南省| 磐石市| 宜阳县| 荥阳市| 日照市| 公安县| 平乐县| 安福县| 巴彦县| 通化市| 冕宁县| 巴林左旗| 河曲县| 日喀则市| 长兴县| 东源县| 水富县| 吉安市| 万山特区| 成武县| 沙雅县| 新营市| 清新县| 汝南县| 会昌县| 满洲里市|