前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【MySQL集群】——Java程序连接MySQL集群

【MySQL集群】——Java程序连接MySQL集群

作者头像
DannyHoo
发布2018-09-13 11:50:59
3.4K0
发布2018-09-13 11:50:59
举报
文章被收录于专栏:Danny的专栏

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1337031

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

外部程序想要远程连接到mysql集群,还需要做的一个操作就是设置sql节点的mysql可以被远程连接。

具体操作为:

代码语言:javascript
复制
mysql> grant all privileges on MySQL_Cluster_Test.* to root@'%' identified by '';  
mysql> flush privileges;

表示将MySQL_Cluster_Test这个数据库中所有的表授权给所有机器,登录名为root,密码为空。如果只指定某台机器可以连接此数据节点,那把“%”换成相应IP即可。

UserDAO代码:

代码语言:javascript
复制
public class UserDAO{

    /**
     * 添加用户
     * @param name 用户名
     * @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集群配置好的话,就可以实现多个服务器上发布的外部程序都可以共享、操作整个集群中的数据。但此时的MySQL集群还无法实现负载均衡和读写分离的效果,只起到了数据备份的作用。后面将继续研究如何实现MySQL集群的负载均衡和读写分离。

(以上只是主要代码,如果需要整个项目,可以点击【下载地址】下载源码)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015年08月24日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档