main方法连接mysql数据库测试

main方法连接mysql数据库测试

使用jdbc连接数据库

基础准备:

    JDK1.8 、 mysql8.0、  mysql-connector-java-8.0.16.jar

实现代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Test {

	public static void main(String[] args) {
		
		Connection conn = null ;
		List list = new ArrayList();  
		try{
		    //加载JDBC驱动程序:
		    Class.forName("com.mysql.cj.jdbc.Driver");
		    // 问号后面是解决中文乱码输入问题,UTC是统一标准世界时间
		    String url = "jdbc:mysql://localhost:3306/dbo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC";
		    String username = "abc123";
		    String password = "abc123";
		    // 创建与MySQL数据库的连接类的实例
		    conn = DriverManager.getConnection(url, username, password);
		    // 用conn创建Statement对象类实例
		    Statement sql_statement = conn.createStatement();
		    // sql拼装
//		    String sql = " insert into students (name, age, no) values ('张三', 20, '00001') " ;
		    String sql = " select * from students " ;
		    // 执行sql
		    ResultSet result = sql_statement.executeQuery(sql);
//		    int num = sql_statement.executeUpdate(sql);
//		    System.out.println("返回结果:"+num);
		    //处理结果
		    int column = result!=null? result.getMetaData().getColumnCount() : 0;  
		    // 一行数据  
            while (result.next()) {  
                // 对象数组,表示一行数据  
            	Map map = new HashMap();
				
				for (int i = 1; i <= column; i++) {
					// 获得列名
					String columnName = result.getMetaData().getColumnName(i);
					map.put(columnName, result.getObject(columnName));
				}
				list.add(map);  
            }  
          
		}
		catch (Exception e) {
		            e.printStackTrace();
		} 
		finally {
	        if (conn != null) {
	        	  // 关闭连接
                try {
                    conn.close();
                } 
                catch (Exception e) { 
                	  System.out.println("连接关闭异常");
                }
	        }
		}
		System.out.println(list);
	}

}

注意事项:

    一些特别处理过的语句返回多个结果,execute 方法处理这些复杂的语句;executeQuery 和 executeUpdate 处理形式更简单的语句。 
execute 方法返回一个 boolean 值,以指示第一个结果的形式。必须调用 getResultSet 或 getUpdateCount 方法来检索结果,并且必须调用 getMoreResults 移动到任何后面的结果。 
返回:
如果第一个结果是 ResultSet 对象,则返回 true;如果第一个结果是更新计数或者没有结果,则返回 false

意思就是如果是查询的话返回true,如果是更新或插入的话就返回false了;所以执行插入或更新语句应该使用executeUpdate。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值