【实现】Java连接MySQL数据库

参考:java访问MySQL(http://blog.csdn.net/cxwen78/article/details/6863696)


package db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.mysql.jdbc.DatabaseMetaData;

public class JDBC_Test {
	// 创建静态全局变量
	static Connection conn;

	static Statement st;

	public static void main(String[] args) throws SQLException {
		if(isTableExist("staff")==false){
			create();	//创建表格
		}		
		insert();	//插入添加记录
		update();	//更新记录数据
		delete();	//删除记录
		query();	//查询记录并显示
	}

	/* 判断表Table是否存在,参考:http://sjsky.iteye.com/blog/1119394  */
	public static boolean isTableExist(String tableName) throws SQLException {
		conn = getConnection();
		
		DatabaseMetaData meta = (DatabaseMetaData) conn.getMetaData();  
		  
        // 第一个参数catalog在MySQL中对应数据库名: 
        ResultSet rsTables = meta.getTables("dyz", null, tableName,  
                new String[] { "TABLE" }); 
        
        while (rsTables.next()) {  
            System.out.println(rsTables.getString("TABLE_CAT") + "\t"  
                    + rsTables.getString("TABLE_SCHEM") + "\t"  
                    + rsTables.getString("TABLE_NAME") + "\t"  
                    + rsTables.getString("TABLE_TYPE"));  
            return true;
        } 
        conn.close();
		return false;
	}
	/* 创建staff表格  */
	public static void create() throws SQLException {
		conn = getConnection();
		
		String sql = "CREATE TABLE staff(name varchar(50), age int(3), sex varchar(5),address varchar(50),"
				+ " depart varchar(50), worklen int(3),wage int(8))";		
		st = (Statement) conn.createStatement();
		int count = st.executeUpdate(sql);
		
		System.out.println("create 语句"+count);
		conn.close();
	}
	
	/* 插入数据记录,并输出插入的数据记录数*/
	public static void insert() {

		conn = getConnection();	// 首先要获取连接,即连接到数据库

		try {
			String sql = "INSERT INTO staff(name, age, sex,address, depart, worklen,wage)"
					+ " VALUES ('Tom1', 32, 'M', 'china','Personnel','3','3000')";	// 插入数据的sql语句

			st = (Statement) conn.createStatement();	// 创建用于执行静态sql语句的Statement对象

			int count = st.executeUpdate(sql);	// 执行插入操作的sql语句,并返回插入数据的个数

			System.out.println("向staff表中插入 " + count + " 条数据");	//输出插入操作的处理结果

			conn.close();	//关闭数据库连接

		} catch (SQLException e) {
			System.out.println("插入数据失败" + e.getMessage());
		}
	}

	/* 更新符合要求的记录,并返回更新的记录数目*/
	public static void update() {
		conn = getConnection();	//同样先要获取连接,即连接到数据库
		try {
			String sql = "update staff set wage='2200' where name = 'lucy'";// 更新数据的sql语句

			st = (Statement) conn.createStatement();	//创建用于执行静态sql语句的Statement对象,st属局部变量

			int count = st.executeUpdate(sql);// 执行更新操作的sql语句,返回更新数据的个数

			System.out.println("staff表中更新 " + count + " 条数据");		//输出更新操作的处理结果

			conn.close();	//关闭数据库连接

		} catch (SQLException e) {
			System.out.println("更新数据失败");
		}
	}

	/* 查询数据库,输出符合要求的记录的情况*/
	public static void query() {

		conn = getConnection();	//同样先要获取连接,即连接到数据库
		try {
			String sql = "select * from staff";		// 查询数据的sql语句
			st = (Statement) conn.createStatement();	//创建用于执行静态sql语句的Statement对象,st属局部变量

			ResultSet rs = st.executeQuery(sql);	//执行sql查询语句,返回查询数据的结果集
			System.out.println("最后的查询结果为:");
			while (rs.next()) {	// 判断是否还有下一个数据

				// 根据字段名获取相应的值
				String name = rs.getString("name");
				int age = rs.getInt("age");
				String sex = rs.getString("sex");
				String address = rs.getString("address");
				String depart = rs.getString("depart");
				String worklen = rs.getString("worklen");
				String wage = rs.getString("wage");

				//输出查到的记录的各个字段的值
				System.out.println(name + " " + age + " " + sex + " " + address
						+ " " + depart + " " + worklen + " " + wage);

			}
			conn.close();	//关闭数据库连接

		} catch (SQLException e) {
			System.out.println("查询数据失败");
		}
	}

	/* 删除符合要求的记录,输出情况*/
	public static void delete() {

		conn = getConnection();	//同样先要获取连接,即连接到数据库
		try {
			String sql = "delete from staff  where name = 'lili'";// 删除数据的sql语句
			st = (Statement) conn.createStatement();	//创建用于执行静态sql语句的Statement对象,st属局部变量

			int count = st.executeUpdate(sql);// 执行sql删除语句,返回删除数据的数量

			System.out.println("staff表中删除 " + count + " 条数据\n");	//输出删除操作的处理结果

			conn.close();	//关闭数据库连接

		} catch (SQLException e) {
			System.out.println("删除数据失败");
		}

	}

	/* 获取数据库连接的函数*/
	public static Connection getConnection() {
		Connection con = null;	//创建用于连接数据库的Connection对象
		try {
			Class.forName("com.mysql.jdbc.Driver");// 加载Mysql数据驱动

			con = DriverManager.getConnection(
					"jdbc:mysql://localhost:3306/dyz", "root", "00110801");// 创建数据连接

		} catch (Exception e) {
			System.out.println("数据库连接失败" + e.getMessage());
		}
		return con;	//返回所建立的数据库连接
	}
}

运行结果

【实现】Java连接MySQL数据库_第1张图片

你可能感兴趣的:(java,mysql,数据库)