精华内容
参与话题
问答
  • Scala JDBC 查询和更新MySQL

    千次阅读 2017-07-07 09:34:53
    Scala JDBC 查询和更新MySQL完整代码如下package com.biimport java.sql.{Connection, DriverManager, Timestamp} import java.util.Calendar /** * Created by gongzi on 2017/6/28. */ object MySqlConn { // ...
    package com.bi
    
    import java.sql.{Connection, DriverManager, Timestamp}
    import java.util.Calendar
    
    
    /**
      * Created by xxx on 2017/6/28.
      */
    object MySqlConn {
    
      // for test env
      val mysqlConfTest = collection.mutable.Map(
        "driver" -> "com.mysql.jdbc.Driver",
        "url" -> "jdbc:mysql://192.168.18.106:3306/rpt",
        "username" -> "test",
        "password" -> "test"
      )
    
      // for prod env
      val mysqlConfProd = collection.mutable.Map(
        "driver" -> "com.mysql.jdbc.Driver",
        "url" -> "jdbc:mysql://hostname:3306/rpt?autoReconnect=true",
        "username" -> "xxxx",
        "password" -> "xxxxx"
      )
    
      /**
        * 创建mysql连接
        * @return
        */
      def getMysqlConn(): Connection = {
        Class.forName(mysqlConfTest("driver"))
        DriverManager.getConnection(mysqlConfTest("url"), mysqlConfTest("username"), mysqlConfTest("password"))
      }
    
      /**
        * 查询所有漏斗
        * @return
        */
      def getFunnels(dateStr: String): collection.mutable.Map[Int, (String, Int, Int ,String ,String)] = {
        // connect to the database named "mysql" on the localhost
        val conn = getMysqlConn
    
        val funnels = collection.mutable.Map[Int, (String, Int, Int ,String ,String)]()
    
        try {
          // create the statement, and run the select query
          val statement = conn.createStatement()
          val sql = s"""select id,funnel_name,status,done,start_time,end_time
                      |from rpt_funnel_manage
                      |where status = 1
                      |and (done in (0,3) or (done = 2 and '$dateStr' <= end_time and '$dateStr' >= start_time))
                      |order by id""".stripMargin
          println(sql)
          val resultSet = statement.executeQuery(sql)
          while (resultSet.next()) {
            val fid = resultSet.getInt("id")
            val funnelName = resultSet.getString("funnel_name")
            val status = resultSet.getInt("status")
            val done = resultSet.getInt("done")
            val startTime = resultSet.getString("start_time")
            val endTime = resultSet.getString("end_time")
    
            funnels += (fid -> (funnelName, status, done, startTime, endTime))
          }
        } catch {
          case e:Throwable => {
            println("FunnelGO failed! Coursed by getFunnels error")
            e.printStackTrace()
            System.exit(1)
          }
        } finally {
          conn.close
        }
        funnels
      }
    
      def getFunnelLevels(funnelId: Int): collection.mutable.Map[Int, List[Int]] = {
        // connect to the database named "mysql" on the localhost
        val conn = getMysqlConn
    
        val funnel = collection.mutable.Map[Int, List[Int]]()
    
        try {
          // create the statement, and run the select query
          val statement = conn.createStatement()
          val sql = s"select * from rpt_funnel_manage_level where fid = $funnelId order by level desc"
          val resultSet = statement.executeQuery(sql)
          while (resultSet.next()) {
            val fid = resultSet.getInt("fid")
            val level = resultSet.getInt("level")
            val page_id = resultSet.getInt("page_id")
            val pageIds = List(page_id)
    
            // 实际调用的是contains(key)
            if(funnel.isDefinedAt(level)){
              val pages = funnel(level)
              // List 多种姿势
              funnel += (level -> pages.++(pageIds))
            } else {
              funnel += (level -> pageIds)
            }
            println("id, funnel_name, page_id = " + fid + ", " + level+ ", " + page_id)
          }
        } catch {
          case e:Throwable => e.printStackTrace()
        } finally {
          conn.close
        }
        funnel
      }
    
      /**
        * 更新运行状态至rpt_funnel_manage表的done字段
        * 0 未执行 1 执行中 2 执行完成 3 sql执行失败 4 dump执行失败
        * @param funnelId
        * @param runningStatus
        */
      def updateRunningStatus(funnelId: Int, runningStatus: Int): Unit = {
        // create database connection
        val conn = getMysqlConn
    
        try {
          val ps = conn.prepareStatement("UPDATE rpt_funnel_manage SET done = ? WHERE id = ?")
    
          // set the preparedstatement parameters
          ps.setInt(1, runningStatus)
          ps.setInt(2, funnelId)
    
          // call executeUpdate to execute our sql update statement
          val res = ps.executeUpdate()
          ps.close()
    
          if(res > 0) println(s"UPDATE rpt_funnel_manage SET done = $runningStatus WHERE id = $funnelId success!")
          else println(s"UPDATE rpt_funnel_manage SET done = $runningStatus WHERE id = $funnelId failed!")
        } catch {
          case e:Throwable => e.printStackTrace()
        } finally {
          conn.close
        }
      }
    
      /**
        * 将sql写入mysql表,同时将sql的运行状态done字段更新为1:运行中
        * @param funnelId
        * @param sqlString
        */
      def updateSql(funnelId: Int, sqlString: String): Unit = {
        // create database connection
        val conn = getMysqlConn
    
        try {
          val ps = conn.prepareStatement("UPDATE rpt_funnel_manage SET sqlstring = ?,done = 1 WHERE id = ?")
    
          // set the preparedstatement parameters
          ps.setString(1, sqlString)
          ps.setInt(2, funnelId)
    
          // call executeUpdate to execute our sql update statement
          val res = ps.executeUpdate()
          ps.close()
    
          if(res > 0) println(s"UPDATE rpt_funnel_manage SET sqlstring WHERE id = $funnelId success!")
          else println(s"UPDATE rpt_funnel_manage SET sqlstring WHERE id = $funnelId failed!")
        } catch {
          case e:Throwable => e.printStackTrace()
        } finally {
          conn.close
        }
      }
    
      private def deleteById(conn: Connection, funnelId: Int): Int = {
        var status = 0
        try {
          val sql = s"delete from rpt_funnel_sql where funnelId = $funnelId"
          System.out.println("sql=" + sql)
          val st = conn.createStatement()
          val result = st.executeUpdate(sql)
    
          //处理结果
          if (result > 0) println(s"delete from rpt_funnel_sql where funnelId = $funnelId success!")
          else println(s"delete from rpt_funnel_sql where funnelId = $funnelId failed!")
          status = result
        } catch {
          case e:Throwable => e.printStackTrace()
        } finally {
          conn.close
        }
        status
      }
    
      /**
        * 根据 funnelId 删除记录
        * @param funnelId
        */
      def deleteById(funnelId: Int): Int = {
        val connection = getMysqlConn
        val st = connection.createStatement
        var status = 0
        // do database insert
        try {
          val sql = s"delete from rpt_funnel_sql where funnelId = $funnelId"
          System.out.println("sql=" + sql)
          val result = st.executeUpdate(sql)
    
          //处理结果
          if (result > 0) println("操作成功") else println("操作失败")
          status = result
        } catch {
          case e:Throwable => e.printStackTrace()
        } finally {
          connection.close
        }
        status
      }
    
      /**
        * 日期
        * @return
        */
      private def getCurrentTimeStamp(): Timestamp = {
        val timeInMillis = Calendar.getInstance.getTimeInMillis
        new Timestamp(timeInMillis)
      }
    
      def main(args: Array[String]): Unit = {
        val funnelId = args(0).toInt
        MySqlConn.updateRunningStatus(funnelId,0)
      }
    }
    
    展开全文
  • WebSocket 实时更新mysql数据到页面

    万次阅读 2017-07-18 15:16:40
    使用websocket的初衷是,要实时更新mysql中的报警信息到web页面显示 没怎么碰过web,代码写的是真烂,不过也算是功能实现了,放在这里也是鞭策自己,web也要多下些功夫准备工作先看看mysql中数据的格式数据封装...

    使用websocket的初衷是,要实时更新mysql中的报警信息到web页面显示
    没怎么碰过web,代码写的是真烂,不过也算是功能实现了,放在这里也是鞭策自己,web也要多下些功夫

    准备

    引入依赖

        <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>5.1.38</version>
        </dependency>
        <dependency>
          <groupId>javax</groupId>
          <artifactId>javaee-api</artifactId>
          <version>7.0</version>
          <scope>provided</scope>
        </dependency>

    先看看mysql中数据的格式

    这里写图片描述

    数据封装

    public class AlarmMessage {
        private String fanNo;
        private String time;
        private String description;
    
        public AlarmMessage(String fanNo, String time, String description) {
            this.fanNo = fanNo;
            this.time = time;
            this.description = description;
        }
    
        public String getFanNo() {
            return fanNo;
        }
    
        public String getTime() {
            return time;
        }
    
        public String getDescription() {
            return description;
        }
    }

    jdbc从数据库中读取数据

    public class DBUtil {
    
        public List<AlarmMessage> getFromDB() throws SQLException, ClassNotFoundException, IllegalAccessException, InstantiationException {
            List<AlarmMessage> list=new ArrayList<AlarmMessage>();
    
            String dirver="com.mysql.jdbc.Driver";
            String user="root";
            String psd="root";
            String database="streamingproblem";
            String tablename="problem";
            String url="jdbc:mysql://172.17.11.120:3306/"+database+"?user="+user+"&password="+psd;
            Class.forName(dirver).newInstance();
            Connection conn= DriverManager.getConnection(url);
            Statement stat=conn.createStatement();
            String sql="select * from "+tablename;
            ResultSet rs=stat.executeQuery(sql);
            while (rs.next()){
                AlarmMessage alarmMessage=new AlarmMessage(rs.getString(2),rs.getString(3),rs.getString(4));
                list.add(alarmMessage);
            }
            rs.close();
            stat.close();
            conn.close();
            return list;
        }
    
    }

    开始写websocket

    写一个线程用于发送新数据到页面,run中开启无限循环,用一个变量 currentIndex 记录当前数据量,当有新数据时,发送新数据

    import javax.websocket.Session;
    
    public class OneThread extends Thread {
    
        private Session session;
        private List<AlarmMessage> currentMessage;
        private DBUtil dbUtil;
        private int currentIndex;
    
        public OneThread(Session session) {
            this.session = session;
            currentMessage = new ArrayList<AlarmMessage>();
            dbUtil = new DBUtil();
            currentIndex = 0;//此时是0条消息
        }
    
        @Override
        public void run() {
            while (true) {
                List<AlarmMessage> list = null;
                try {
                    try {
                        list = dbUtil.getFromDB();
                    } catch (ClassNotFoundException e) {
                        e.printStackTrace();
                    } catch (IllegalAccessException e) {
                        e.printStackTrace();
                    } catch (InstantiationException e) {
                        e.printStackTrace();
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
                if (list != null && currentIndex < list.size()) {
                    for (int i = currentIndex; i < list.size(); i++) {
                        try {
                            session.getBasicRemote().sendText(list.get(i).getFanNo()
                                    + "," + list.get(i).getTime()
                                    + "," + list.get(i).getDescription());
    //                            session.getBasicRemote().sendObject(list.get(i)); //No encoder specified for object of class [class AlarmMessage]
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                    currentIndex = list.size();
                }
                try {
                    //一秒刷新一次
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
    
            }
        }
    }

    在onopen中启动发送数据线程

    import javax.websocket.OnOpen;
    import javax.websocket.Session;
    import javax.websocket.server.ServerEndpoint;
    
    @ServerEndpoint("/websocket")
    public class websocket {
    
        @OnOpen
        public void onOpen(Session session){
            OneThread thread =null;
            thread=new OneThread(session);
            thread.start();
        }
    }

    js实现websocket客户端

    <%@ page import="java.sql.*" %>
    <html>
    <head>
        <script type="text/javascript">
            //先检验能不能运行起来,能不能连上,自动推送数据,先不做数据显示
            //客户端就会与服务器进行连接
            var webSocket = new WebSocket("ws://localhost:8081/websocket");
    
            //这里只是调试用
            //连接失败时回调
            webSocket.onerror = function (event) {
                makeDataOnWeb("error");
            };
    
            //这里只是调试用
            //连接成功时回调,真的会执行括号中的代码!
            webSocket.onopen = function (event) {
                makeDataOnWeb("conn success");
            };
    
            webSocket.onmessage = function (event) {
                makeDataOnWeb(event.data);
    
            };
    
            //这里只是调试用
            webSocket.onclose = function (event) {
                makeDataOnWeb("conn close");
            };
    
            function makeDataOnWeb(data) {
                var a = data;
                var divNode = document.getElementById("view");
                var liNode = document.createElement("li");
                liNode.innerHTML = a;
                divNode.appendChild(liNode);
    //            divNode.insertBefore(liNode, divNode.children[0]);
                //不能用insertAfter,好像不是这么用的
    
                //            var divNode = document.getElementById("view");
    //            var trNode = document.createElement("tr");
    //            var td1 = document.createElement("td");
    //            var td2 = document.createElement("td");
    //            var td3 = document.createElement("td");
    //            td1.innerHTML = a;
    //            td2.innerHTML = a;
    //            td3.innerHTML = a;
    //            trNode.appendChild(td1)
    //            trNode.appendChild(td2)
    //            trNode.appendChild(td3)
                //            var head = document.getElementById("head");
    
    //            document.write(a+"<br>");//直接写
    //            document.getElementsById("a").innerHTML="fadfadfa";//不输出任何内容
    
            };
    
        </script>
    </head>
    
    <body>
    
    <%@page contentType="text/html; utf8" %>
    <%@page language="java" %>
    <%@page import="java.sql.*" %>
    <%@page pageEncoding="UTF-8" %><!--解决中文乱码-->
    
    <div id="view">
    
    </div>
    
    </body>
    
    </html>

    web运行结果

    这里写图片描述

    展开全文
  • Spark2.0 插入/更新mysql数据(scala)

    千次阅读 2019-05-06 14:05:54
    Spark2.0 插入/更新mysql数据(scala) 特别强调楼主使用spark2.3.2版本 1.准备工作 在pom.xml文件中要添加 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</...

    @羲凡——只为了更好的活着

    Spark2.0 插入/更新mysql数据(scala)

    特别强调楼主使用spark2.3.2版本

    1.准备工作

    pom.xml文件中要添加

    <dependency>
    	<groupId>mysql</groupId>
    	<artifactId>mysql-connector-java</artifactId>
    	<version>5.1.38</version>
    </dependency>
    
    2.注意事项

    a.向mysql中插入或更新数据,循环时要使用foreachPartition,可以大幅减少mysql的连接数
    b.代码中最好加上 classOf[com.mysql.jdbc.Driver] ,不加有时会报错

    3.不啰嗦直接上代码
    package csdn
    
    import java.sql.{Connection, DriverManager}
    import java.util.Properties
    
    import org.apache.spark.sql.SparkSession
    
    object SparkCURDMysql {
    
      case class StuInfo(name: String, age: Int)
    
      def main(args: Array[String]): Unit = {
        val spark = SparkSession.builder()
          .appName("SparkCURDMysql")
          .master("local[*]")
          .enableHiveSupport()
          .getOrCreate()
        //mysql的参数设置
        val url = "jdbc:mysql://deptest20:3306/test_data"
        val user = "root"
        val password = "123456"
        val props = new Properties()
        props.put("user", user)
        props.put("password", password)
        props.setProperty("useSSL", "false")
        props.setProperty("useUnicode", "true")
        props.setProperty("characterEncoding", "utf8")
        var connection: Connection = null
    
        import spark.implicits._
        // 插入mysql的dataframe(减少分区数)
        val insertDF = Seq(StuInfo("盖伦", 18), StuInfo("扎克", 27)
        ).toDF().coalesce(1)
        // 按分区插入到mysql中
        insertDF.foreachPartition(iter => {
          try {
            classOf[com.mysql.jdbc.Driver]
            connection = DriverManager.getConnection(url, props)
            while (iter.hasNext) {
              val row = iter.next()
              val name = row.getAs[String]("name")
              val age = row.getAs[Int]("age")
              val sql = s"insert into test_data.mysql_stu_info(name,age) values('$name',$age)"
              connection.createStatement().executeUpdate(sql)
              println(s"=====$name insert succeed !======")
            }
          } catch {
            case e: Exception => println(e.printStackTrace())
          } finally {
            connection.close()
          }
        })
    
        println("=============线程等待3秒=============")
        Thread.sleep(3000)
        // 更新mysql的dataframe(减少分区数)
        val updateDF = Seq(StuInfo("盖伦", 188), StuInfo("扎克", 227)
        ).toDF().coalesce(1)
        // 按分区更新到mysql中
        updateDF.foreachPartition(iter => {
          try {
            classOf[com.mysql.jdbc.Driver]
            connection = DriverManager.getConnection(url, props)
            while (iter.hasNext) {
              val row = iter.next()
              val name = row.getAs[String]("name")
              val age = row.getAs[Int]("age")
              val sql = s"update test_data.mysql_stu_info set age = $age where name='$name'"
              connection.createStatement().executeUpdate(sql)
              println(s"=====$name update succeed !======")
            }
          } catch {
            case e: Exception => println(e.printStackTrace())
          } finally {
            connection.close()
          }
        })
    
        spark.stop()
      }
    }
    
    
    4.结果展示

    在这里插入图片描述

    ====================================================================
    @羲凡——只为了更好的活着

    若对博客中有任何问题,欢迎留言交流

    展开全文
  • MyBatis批量更新Mysql数据

    万次阅读 2018-11-12 20:40:39
    MyBatis 批量更新数据 1. 数据库语句 #使用SQL一次批量更新多条记录 UPDATE rba_house_status SET audit_status = ( CASE WHEN house_id = 100023 then 3 END ), audit_desc = ( CASE WHEN house_id = 100010 ...

    之前写的代码,批量更新的操作都是使用for循环语句进行集合的遍历,一次次调用单条更新的接口,代码既不美观,性能也不好,就想使用MyBatis在一个方法里批量更新数据,我一共想到两种思路,分享一下:

    1. 第一种就是使用MyBatis的 <foreach> 去循环创建多条完整的 update 语句,然后交由Mysql数据库一条一条去执行(这个和之前的性能差不多,都是一条一条去更新)
    2. 第二种就是使用数据库支持的case when函数,根据不同的条件去更新对应符合条件的数据

    我们先来看看第一种方法吧:

    1.使用 <foreach> 循环创建多条完整update语句

    此处是将需要修改的参数放入一个 List 中,然后遍历list集合,创建多条 update 语句,最终的结果如下:

    1.1 MyBatis 的XML语句

    <!--批量更新 -->
    	<update id="updateListByHouseId" parameterType="java.util.ArrayList">
    		<foreach close=";" collection="list" index="index" item="item" open="" separator=";">
    			update house_status
    			<trim prefix="set" suffixOverrides=",">
    				last_push_time = now(),
    				<if test="item.pushStatus != null">push_status = #{item.pushStatus},</if>
    				<if test="item.createStatus != null">create_status = #{item.createStatus},</if>
    				<if test="item.houseCreateTime != null">house_create_time = #{item.houseCreateTime},</if>
    				<if test="item.updateStatus != null">update_status = #{item.updateStatus},</if>
    				update_time = now(),
    				<if test="item.auditStatus != null">audit_status = #{item.auditStatus},</if>
    				<if test="item.auditDesc != null">audit_desc = #{item.auditDesc},</if>
    				<if test="item.hotelId != null">hotel_id = #{item.hotelId},</if>
    			</trim>
    			<where>house_id = #{item.houseId}</where>
    		</foreach>
    	</update>
    

    1.2 MyBatis最终生成的SQL

    update rba_house_status set last_push_time = now(), push_status = ?, create_status = ?, house_create_time = ?, update_status = ?, update_time = now(), audit_status = ?, audit_desc = ?, hotel_id = ? WHERE house_id = ? ; 
    update rba_house_status set last_push_time = now(), push_status = ?, create_status = ?, house_create_time = ?, update_status = ?, update_time = now(), audit_status = ?, audit_desc = ?, hotel_id = ? WHERE house_id = ? ; 
    

    上脚本中的 “?” 对应参数对象中各个对应字段的值
    写到这里,本以为第一种方法就可以执行了,直接去进行测试了,就在这时,服务器跟我闹别扭,扭扭捏捏不执行,一直报一个错误: multi-statement not allow
    一脸懵逼一脸懵逼 icon为啥还不让执行了?
    查了半天资料发现,原来MyBatis想要一次执行多条语句是需要进行额外的配置,配置在数据库链接串里面,就是在链接串最后面加一个: &allowMultiQueries=true ,如下所示:

    jdbc:mysql://127.0.0.1:3306/test_db?characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&allowMultiQueries=true
    

    加完以后信誓旦旦开始了第二次测试执行,按理来说应该到这里就可以,结果执行还是报错,难道是我执行的姿势不对?清除之前编译的文件,再试,还是不行在这里插入图片描述好吧,继续google and 百度…
    最后历经千辛万苦,还是没结果,看来还是只能自己找答案了,最后偶然间发现在数据源的配置文件里有一个 com.alibaba.druid.wall.WallFilter 的配置,这个filter里面有个一配置项 com.alibaba.druid.wall.WallConfig ,这个配置项里面有个一 multiStatementAllow ,这个配置默认是false,果断改掉配置,添加一个 multiStatementAllow 的配置,如下:

    <bean id="wall-filter-config" class="com.alibaba.druid.wall.WallConfig" init-method="init">
       	 	<property name="dir" value="META-INF/druid/wall/mysql" />
            <property name="selectWhereAlwayTrueCheck" value="false" />
            <property name="selectHavingAlwayTrueCheck" value="false" />
            <property name="multiStatementAllow" value="true" />
        </bean>
    

    配置完成,再次执行测试代码!
    在这里插入图片描述

    下面说一下第二种方式,使用mysql自己的函数执行:

    2.使用数据库支持的case when函数

    这种方式比较简单,就是使用 MyBatisXML 去构建数据库SQL,然后交由数据库执行。原理比较简单,直接上代码给大家看一下:

    2.1 需要构建的数据库语句
    #使用SQL一次批量更新多条记录
    UPDATE rba_house_status 
    SET 
    audit_status = (
    CASE 
    WHEN house_id = 100023 then 3 
    END
    ),
    audit_desc = (
    CASE 
    WHEN house_id = 100010 then '111' 
    END
    ),
    last_push_time = now()
    WHERE house_id IN (100023,100010)
    

    2.2 MyBatis 的xml

    <!--批量多字段更新-->
    	<update id="updateListByHouseId" parameterType="java.util.ArrayList">
    			update rba_house_status
    			<trim prefix="set" suffixOverrides=",">
    				<trim prefix="push_status =(case" suffix="end),">
    					<foreach collection="list" item="item">
    						<if test="item.pushStatus != null">
    							when house_id = #{item.houseId} then #{item.pushStatus}
    						</if>
    					</foreach>
    				</trim>
    
    				<trim prefix="create_status =(case" suffix="end),">
    					<foreach collection="list" item="item">
    						<if test="item.createStatus != null">
    							when house_id = #{item.houseId} then #{item.createStatus}
    						</if>
    					</foreach>
    				</trim>
    
    				<trim prefix="house_create_time =(case" suffix="end),">
    					<foreach collection="list" item="item">
    						<if test="item.houseCreateTime != null">
    							when house_id = #{item.houseId} then #{item.houseCreateTime}
    						</if>
    					</foreach>
    				</trim>
    
    				update_time = now(),
    		</trim>
    		<where>
    			house_id in
    			<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
    				#{item.houseId}
    			</foreach>
    		</where>
    	</update>
    

    至此,两种方式就介绍完毕,大家还有什么其他方法,欢迎交流!

    展开全文
  • 使用Python定时更新Mysql数据

    千次阅读 2013-03-21 18:06:15
    使用Python定时更新Mysql数据 先描述一下这个需求: 服务器端有两张表,album_item和album_item_inc,一张是全量表,每天凌晨生成一次,一张是增量表。实时更新,我这边需要保留一份全量表,然后将每分钟的增量...
  • 更新mysql访问权限

    2019-05-08 14:43:55
    use mysql; update user set host=’%’ where user=‘root’ limit 1; flush privileges;
  • CentOS-7.2 更新Mysql5.6 到 Mysql5.7

    千次阅读 2018-03-07 18:27:21
    1. 因为用的是nginx , ... 卸载Mysql5.6 ,一共有三个包 要卸载: (1)先卸载mysql-server包 : 执行命令 yum remove mysql mysql-server (2)再卸载mysql-client包 : 执行命令 yum remove msyql-client ...
  • 更新Mysql数据库的数据

    千次阅读 2017-12-13 19:02:57
    学习任务  用sql语句修改第一条记录...2. 熟悉对MySql数据库的更新操作 能力目标 1.能够编写sql更新语句 2.学会对MySql数据库的修改操作     更新语句 update 【表名】set【修改的值】 where 【查询条件】
  • java 更新mysql数据库的某个记录后当前程序无法查找到刚刚添加的记录,需要重新运行程序后才能看到上一次更新的结果。求大神解救~~~
  • 我在使用mybatis批量更新mysql数据库的时候,更新不了,我怀疑是集合没有传进foreach但是list里面确实有值 ;"> UPDATE tb_ml3_operate_center SET retutn_fee_money = retutn_fee_money + #{it.totalFee}, ...
  • 本文主要描述,Springboot-mybatis框架下上传excel,并将之导入mysql数据库的过程,如果用户id已存在,则进行更新修改数据库中该项信息,由于用到的是前后端分离技术,这里记录的主要是后端java部分,通过与前端接口...
  • Linux下更新Mysql数据库数据

    千次阅读 2018-10-23 15:02:33
    进入数据库mysql -uroot -p输入root密码进去即可查看。 1,显示数据库 show databases; 2.退出 exit;   3.导出一个数据库的结构以及数据 mysqldump dbname -uroot -p&gt; dbname.sql   使用XSHELL来...
  • linux更新mysql8.0的心酸史

    万次阅读 2018-03-15 10:45:52
    本文完全是个人实践经验,包含了mysql8.0升级的全过程以及中间遇到的问题及解决方法。整个过程中参考的有价值的文档均有标注。欢迎收藏,欢迎转发,但希望注明出处...
  • PHP如何批量更新MYSQL中的数据

    千次阅读 2017-03-17 18:59:24
    最近一直忙着做公司的项目,重构完前台接着重构后台,以至于没有太多时间大理博客的内容,以后会定期更新自己的博客。 在做公司后台的时候,同事遇到了一个问题,就是产品规划里面有一个一键批量更新数据,在这个...
  • 更新MySQL 8.0后踩过的那些坑

    万次阅读 多人点赞 2018-06-19 00:55:03
    1、Establishing SSL connection without server’s identity verification is not ... According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if e...
  • 更新mysql表结构,同步数据库表结构

    千次阅读 2019-07-04 14:33:03
    按照某个库的表结构,更新其他库的表结构 ...master_db=($(mysql -h 127.0.0.1 -uroot -p12345678 -N -s -e "show databases"|grep my_db)) #或者master_db=[my_db1,my_db2,my_db3] #根据这个库更...
  • 场景:根据消息号code和状态位status更新所有满足条件的字段值为"T"。怎么批量更新?如果是单个条件的话直接用iterate标签把值放到in('xxx','yyy')循环就行了,where后面跟多个条件的时候mysql怎么处理呢?
  • (Python)批量更新MySQL 42万条数据

    千次阅读 2019-04-01 21:20:56
    今天在编写Python程序进行数据库的Update操作时,发现更新一条数据...MySQL自带的批量插入 存储过程 建立索引 对于存储过程和索引我用的比较少,所以这里我用了第一种方法。 以表nine_tuple(包含列N_T_ID和...
  • 更新MySQL 8.0需要注意的异常问题

    千次阅读 2018-07-31 20:11:44
    1.启动异常报错: java.sql.SQLException: Unknown character set index for field '255' received from server. 原因: MYSQL 5.5 之前, UTF8 编码只支持1-3个字节;... mysql-connector-java.jar 的版本问题...
  • sql语句: public static void deleteUser(String loginName){ String sql = "update user set flag=3 where loginName= "+ loginName ; DBUtil.getInstance().delete(sql); } 错误信息: ...
  • Centos下卸载、重装、更新mysql

    千次阅读 2017-12-15 13:37:29
    1、卸载mysql (1)、查看已装的mysql版本 [root@localhost ~]# yum list installed | grep mysql mysql.x86_64 5.1.73-8.el6_8 @base mysql-devel.x86_64
  • 用的formview绑定数据源,可以检索数据但是无法更新更新命令这样写对吗? UpdateCommand="update class set scname=?scname,teacher=?teacher where id=?id" 执行更新时提示sql语句错误,将?改成@...
  • ADO更新MYSQL BLOB字段备注

    千次阅读 2014-09-17 11:26:59
    项目中不乏使用MYSQL数据库,但是操作BLOB
  • solr6.6.0实时更新mysql数据

    千次阅读 2017-08-11 17:33:19
    mac环境 从官网下载solr6.6.0 solr-6.6.0/bin下执行 ./solr start ... 下面创建我们自己的core 在solr-6.6.0/server/solr/下新建文件夹search_node,将solr-6.6.0/example/example-DIH/solr/solr下
  • 定时更新mysql的表数据

    千次阅读 2014-02-25 15:33:15
    用到的知识:spring mybatis quartz mysql mysql存储过程 首先,当然是在applicationContext里面引入定时器文件:applicationContext-quartz.xml文件了。 然后看看applicationContext-quartz.xml文件的内容,...

空空如也

1 2 3 4 5 ... 20
收藏数 45,204
精华内容 18,081
关键字:

更新mysql

mysql 订阅