最新消息:关注【太平洋学习网】微信公众号,可以获取全套资料,【全套Java基础27天】【JavaEE就业视频4个月】【Android就业视频4个月】

java jdbc连接mysql数据库操作

Java基础 太平洋学习网 浏览 评论

java jdbc提供了一个连接mysql的接口,用于操作mysql数据库,连接mysql数据库需要在项目中导入mysql-connector-java-5.1.32.jar包,下面开始做一个jdbc操作数据库的案例。

1.首先在数据库中创建一个测试表,插入一条测试数据,如下。

CREATE TABLE comments (
        id INT NOT NULL AUTO_INCREMENT,
        myuser VARCHAR(30) NOT NULL,
        email VARCHAR(30),
        weburl VARCHAR(100) NOT NULL,
        date DATE NOT NULL,
        summary VARCHAR(40) NOT NULL,
        comments VARCHAR(400) NOT NULL,
        PRIMARY KEY (ID)
);
INSERT INTO comments values (defaultId, 'lars', 'myemail@gmail.com','http://www.vogella.com', '2017-05-06 10:33:11', '摘要','一条评论' );

2.创建一个JdbcDemo类,来操作mysql数据库,代码如下。

package com.baidu;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;

public class JdbcDemo {
    private Connection connect = null;
    private Statement statement = null;
    private PreparedStatement preparedStatement = null;
    private ResultSet resultSet = null;

    public void readDataBase() throws Exception {
        try {
			//加载数据库驱动
			Class.forName("com.mysql.jdbc.Driver");
			//创建数据库连接
			connect = DriverManager.getConnection("jdbc:mysql://localhost/feedback?"+ "user=sqluser&password=sqlupw");
			//创建statement对象用于操作数据库
			statement = connect.createStatement();
			//查询数据返回结果集
			resultSet = statement.executeQuery("select * from comments");
			//输出查询的数据
			writeResultSet(resultSet);
			//PreparedStatements对象用来做增加或修改数据比statement对象更安全有效,虽然作用一样
			//前面创建表时id是自增长的,所以这里就给一个默认的表id如defaultId,起到占位符的作用,并不会真的插入到表中
			preparedStatement = connect.prepareStatement("insert into  comments values (defaultId, ?, ?, ?, ? , ?, ?)");
			//第一个问号就是从1开始设置数据表字段
			preparedStatement.setString(1, "zhangsan");
			preparedStatement.setString(2, "TestEmail");
			preparedStatement.setString(3, "Testweburl");
			preparedStatement.setDate(4, (java.sql.Date) new Date());
			preparedStatement.setString(5, "TestSummary");
			preparedStatement.setString(6, "TestComment");
			//执行插入语句
			preparedStatement.executeUpdate();
			
			//查询一条数据,只查询部分字段
			preparedStatement = connect .prepareStatement("SELECT myuser, email from comments");
			//执行查询语句
			resultSet = preparedStatement.executeQuery();
			writeResultSet(resultSet);

			//删除一条叫zhangsan的数据
			preparedStatement = connect
			.prepareStatement("delete from comments where myuser= ?");
			preparedStatement.setString(1, "zhangsan");
			//执行删除语句
			preparedStatement.executeUpdate();

			resultSet = statement.executeQuery("select * from comments");
			//输出结果集所在的表名和类名称
			writeMetaData(resultSet);

        } catch (Exception e) {
            throw e;
        } finally {
        	//操作完关闭
            close();
        }

    }

    private void writeMetaData(ResultSet resultSet) throws SQLException {
        System.out.println("输出此结果所在的表: ");
        System.out.println("Table: " + resultSet.getMetaData().getTableName(1));
        for  (int i = 1; i<= resultSet.getMetaData().getColumnCount(); i++){
        	//返回表字段名称
            System.out.println("Column:"+i+" "+ resultSet.getMetaData().getColumnName(i));
        }
    }

    private void writeResultSet(ResultSet resultSet) throws SQLException {
        //遍历结果集并输出
        while (resultSet.next()) {
			String user = resultSet.getString("myuser");
			String website = resultSet.getString("weburl");
			String summary = resultSet.getString("summary");
			Date date = resultSet.getDate("date");
			String comment = resultSet.getString("comments");
			System.out.println("User: " + user);
			System.out.println("Website: " + website);
			System.out.println("summary: " + summary);
			System.out.println("Date: " + date);
			System.out.println("Comment: " + comment);
        }
    }

    // 关闭数据库连接
    private void close() {
        try {
            if (resultSet != null) {
              resultSet.close();
            }
            if (statement != null) {
              statement.close();
            }
            if (connect != null) {
              connect.close();
            }
        } catch (Exception e) {
        }
    }

}

3.创建一个main方法来测试jdbc类。

package com.baidu;
public class JdbcTest {
	public static void main(String[] args) throws Exception {
		JdbcDemo dao = new JdbcDemo();
		dao.readDataBase();
	}
}


来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/java/2017/0506/104.html

    与本文相关的文章

    发表我的评论
    取消评论

    表情

    您的回复是我们的动力!

    • 昵称 (必填)

    网友最新评论