zoukankan      html  css  js  c++  java
  • 【MySQL集群】——Java程序连接MySQL集群

    上篇简介了怎样在Windows环境下建立配置MySQL集群,这里用一个实现注冊功能的小Demo通过jdbc的方式连接到MySQL集群中。

    外部程序想要远程连接到mysql集群,还须要做的一个操作就是设置sql节点的mysql能够被远程连接。
    详细操作为:

    mysql> grant all privileges on MySQL_Cluster_Test.* to root@'%' identified by '';  
    mysql> flush privileges;
    

    表示将MySQL_Cluster_Test这个数据库中全部的表授权给全部机器,登录名为root。password为空。假设仅仅指定某台机器能够连接此数据节点。那把“%”换成对应IP就可以。

    UserDAO代码:

    public class UserDAO{
    
        /**
         * 加入用户
         * @param name username
         * @param age 用户年龄
         * @return
         */
        public boolean AddUser(String name,int age){
    
            boolean result=false;//返回值默觉得false
    
            Connection conn=null;//创建数据库连接对象Connection
            PreparedStatement pstmt=null;//创建预处理对象PreparedStatement
            try {
                //注冊驱动
                Class.forName("com.mysql.jdbc.Driver");
                //建立连接
                conn=DriverManager.getConnection("jdbc:mysql://192.168.25.48:3306/MySQL_Cluster_Test","root","");       
            }catch (Exception e){
                e.printStackTrace();
            }
    
            try{            
                String sql="insert into T_User (Name,Age) values(?,?)";
                pstmt=conn.prepareStatement(sql);
                pstmt.setString(1, name);          
                pstmt.setInt(2, age);
    
                int count=pstmt.executeUpdate();   //更新数据库并返回受影响行数
                if(count>0){
                    result=true;
                }
            }catch(Exception e){
                e.printStackTrace();
            }
            return result;
        }
    
        /**
         * 查询全部用户
         * @return List<User>
         */
        public List<User> QueryAllUsers(){
            List<User> userList=new ArrayList<User>();
    
            Connection conn=null;
            Statement stmt=null;
            try {
                //注冊驱动
                Class.forName("com.mysql.jdbc.Driver");
                //建立连接
                conn=DriverManager.getConnection("jdbc:mysql://192.168.25.48:3306/MySQL_Cluster_Test","root","");       
            }catch (Exception e){
                e.printStackTrace();
            }
            try {
                String sql = "select * from T_User";
                stmt=conn.createStatement();
                ResultSet rs =stmt.executeQuery(sql);
                while(rs.next()){
                    User tmpUser=new User();
                    tmpUser.setName(rs.getString("Name"));
                    tmpUser.setAge(rs.getInt("Age"));
                    userList.add(tmpUser);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return userList;
        }
    }

    假设前面的MySQL集群配置好的话,就能够实现多个server上公布的外部程序都能够共享、操作整个集群中的数据。

    但此时的MySQL集群还无法实现负载均衡和读写分离的效果,仅仅起到了数据备份的作用。

    后面将继续研究怎样实现MySQL集群的负载均衡和读写分离。

    (以上仅仅是主要代码,假设须要整个项目,能够点击【下载地址】下载源代码)

  • 相关阅读:
    一个让echarts中国地图包含省市轮廓的技巧
    安装MySql for Visual Studio的坑
    EasyUI文档学习心得
    《Node.js+MongoDB+AngularJS Web开发》读书笔记及联想
    U3D自定义Inspector项未触发保存事件的解决方案
    ANT自动打包U3D安卓项目研究笔记
    HipChat上传文件报未知错误解决方案
    Unity3D读取模型文件自动生成AnimatorController简单实例
    较友好的Web文件下载用户体验实例
    Cocos2dx 3.x包含ext库报错解决
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/6985866.html
Copyright © 2011-2022 走看看