怎样用java连接mysql
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用java连接mysql相关的知识,希望对你有一定的参考价值。
Java MySQL 连接
Java 连接 mysql 需要驱动包,百度就有自行下载,解压后得到jar库文件,然后在对应的项目中导入该库文件。
本实例使用的是 Eclipse,导入 jar 包:
创建测试数据
接下来我们在 MySQL 中创建 RUNOOB 数据库,并创建 websites 数据表,表结构如下:
CREATE TABLE `websites` (`id` int(11) NOT NULL AUTO_INCREMENT,
`name` char(20) NOT NULL DEFAULT '' COMMENT '站点名称',
`url` varchar(255) NOT NULL DEFAULT '',
`alexa` int(11) NOT NULL DEFAULT '0' COMMENT 'Alexa 排名',
`country` char(10) NOT NULL DEFAULT '' COMMENT '国家',
PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
数据表显示如下:
连接数据库
以下实例使用了 JDBC 连接 MySQL 数据库,注意一些数据如用户名,密码需要根据你的开发环境来配置:
MySQLDemo.java 文件代码:
package com.runoob.test;import java.sql.*;
public class MySQLDemo
// JDBC 驱动名及数据库 URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/RUNOOB";
// 数据库的用户名与密码,需要根据自己的设置
static final String USER = "root";
static final String PASS = "123456";
public static void main(String[] args)
Connection conn = null;
Statement stmt = null;
try
// 注册 JDBC 驱动
Class.forName("com.mysql.jdbc.Driver");
// 打开链接
System.out.println("连接数据库...");
conn = DriverManager.getConnection(DB_URL,USER,PASS);
// 执行查询
System.out.println(" 实例化Statement对...");
stmt = conn.createStatement();
String sql;
sql = "SELECT id, name, url FROM websites";
ResultSet rs = stmt.executeQuery(sql);
// 展开结果集数据库
while(rs.next())
// 通过字段检索
int id = rs.getInt("id");
String name = rs.getString("name");
String url = rs.getString("url");
// 输出数据
System.out.print("ID: " + id);
System.out.print(", 站点名称: " + name);
System.out.print(", 站点 URL: " + url);
System.out.print("\\n");
// 完成后关闭
rs.close();
stmt.close();
conn.close();
catch(SQLException se)
// 处理 JDBC 错误
se.printStackTrace();
catch(Exception e)
// 处理 Class.forName 错误
e.printStackTrace();
finally
// 关闭资源
try
if(stmt!=null) stmt.close();
catch(SQLException se2)
// 什么都不做
try
if(conn!=null) conn.close();
catch(SQLException se)
se.printStackTrace();
System.out.println("Goodbye!");
以上实例执行输出结果如下:
我有一个微信公众号,经常会分享一些Java技术相关的干货,还有一些学习资源。如果你喜欢我的分享,可以用微信搜索“Java团长”或者“javatuanzhang”关注。 参考技术A 百度jdbc,或者用配置文件,必须要有MySQL的驱动包 参考技术B 看你是使用JDBC连接,还是使用Hibernate、Mybatis连接了,不同的框架方法有点区别。
MySQL集群——Java程序连接MySQL集群
上篇简介了怎样在Windows环境下建立配置MySQL集群,这里用一个实现注冊功能的小Demo通过jdbc的方式连接到MySQL集群中。
外部程序想要远程连接到mysql集群,还须要做的一个操作就是设置sql节点的mysql能够被远程连接。
详细操作为:
mysql> grant all privileges on MySQL_Cluster_Test.* to [email protected]‘%‘ 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集群的负载均衡和读写分离。
(以上仅仅是主要代码,假设须要整个项目,能够点击【下载地址】下载源代码)
以上是关于怎样用java连接mysql的主要内容,如果未能解决你的问题,请参考以下文章