【MySQL集群】——Java程序连接MySQL集群
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/details/47856645
上篇简单介绍了如何在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,密码为空。如果只指定某台机器可以连接此数据节点,那把“%”换成相应IP即可。
UserDAO代码:
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集群的负载均衡和读写分离。
(以上只是主要代码,如果需要整个项目,可以点击【下载地址】下载源码)
优质内容筛选与推荐>>