原生模式数据库连接的相关总结、作业以及笔记

42 篇文章 0 订阅
8 篇文章 0 订阅

1、查询一个用户表,将所有用户封装到一个list 里面去展示

说明:所示的代码里面我要连接的数据库是 nz2001,所操作的表示的表示user_info表
其中的表设计如图
在这里插入图片描述

package com.qianfeng.ps.am.secend;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;


public class DemoList {
	public static void main(String[] args) {

	String url = "jdbc:mysql://127.0.0.1:3306/nz2001";
	String user = "root";
	String password ="123456";
	
	Connection con = null;
	PreparedStatement ps = null;
	ResultSet rs = null; //结果集
	
	
	try {
		Class.forName("com.mysql.jdbc.Driver"); //加载驱动use
		
		con = DriverManager.getConnection(url,user,password); //获取连接
		
		//从现在开始,养成良好的习惯; 不用*
		String sql = "select uid,uname,upass,uage from user_info";
		
		//获取预处理对象
		ps = con.prepareStatement(sql); //给了sql
		
		//执行查询 得到结果集
		rs = ps.executeQuery();
		
		//新建一个集合 ; 将结果集里面的数据, 封装到这个集合里面去
		List<UserInfo> list = new ArrayList<UserInfo>();
		UserInfo ui;
		
		//一次循环,是一行(条)数据
		while(rs.next()) { //遍历查询结果;每循环一次,就代表有一行数据
			
			//实例化一个UserInfo的对象;
			ui = new UserInfo(); // 每次都要实例化对象
			
			//要将这个数据保存到  ui对象里面去
			ui.setUid(rs.getInt("uid"));
			ui.setUname(rs.getString("uname"));
			ui.setUpass(rs.getString("upass"));
			ui.setUage(rs.getInt("uage"));
			
			//把这个ui对象,添加到集合里面去
			list.add(ui); //存进去的不是ui这个引用名称,存的是引用  x001x01   x002123   x1231231
		}
		
		//关闭连接
		rs.close();
		ps.close();
		con.close();
		
		for(UserInfo aa : list) {
			System.out.println(aa);
		}
		
		
	}catch (Exception e) {
		e.printStackTrace();
	}
	}

}

2、使用配置文件的方式封装DBtuil

package com.qianfeng.ps.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class DBUtils {

	// 不变
	static final String URL = "jdbc:mysql://127.0.0.1:3306/nz2001?rewriteBatchedStatements=true";
	static final String USER = "root";
	static final String PASS_WORD = "123456";

	// 1: 加载驱动,在我们整个项目里面,只需要跑一次;

	static {
		// 加载驱动;
		try {
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}

	// 提供静态方法获取数据库的连接;
	/**
	 * 返回一个数据库的连接
	 * 
	 * @return
	 */
	public static Connection getConnection() {
		try {
			return DriverManager.getConnection(URL, USER, PASS_WORD);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return null;
	}

	// 提供静态方法,关闭我们的结果集; 关闭我们的 ps对象; 关闭我们的连接对象;
	public static void close(Connection con, PreparedStatement ps, ResultSet rs) {

		closeResultSet(rs); // 关闭结果集

		closePreparedStatement(ps); //关闭操作数据库的对象
		
		closeConnection(con);//关闭连接
	}

	private static void closeResultSet(ResultSet rs) {

		if (rs != null) {

			try {
				rs.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}

		}

	}

	private static void closePreparedStatement(PreparedStatement ps) {
		if (ps != null) {

			try {
				ps.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}

		}
	}
	
	private static void closeConnection(Connection con) {
		if (con != null) {

			try {
				con.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}

		}
	}

}

3、java操作数据库的步骤和主要的接口类

**


步骤


  1. 导入JDBC驱动包:需要下载包含数据库编程所需的JDBC的jar包。

  2. 注册JDBC驱动程序:要求您初始化驱动程序,以便您可以打开与数据库的通信通道。

  3. 创建连接:需要使用 D riv e r M a n a g e r.g e t C o n n e c tio n ()
    方法创建一个Connection对象,该对象表示 与数据库的物理连接。

  4. 执行查询:需要使用类型为Statement的对象来构建和提交SQL语句到数据库。

  5. 从结果集中提取数据:需要使用相应的 R e s ult S e t .g e t X X X () 方法从结果集中检索数据。

  6. 释放资源:需要明确地关闭所有数据库资源,而不依赖于JVM的垃圾收集。

**

步骤详细操作

**
(1)导入jar包,在项目下创建lib目录,把mysql的jdbc包放入此目录,并添加到build path中(idea不 同)。
在这里插入图片描述
如图是数据库驱动
在这里插入图片描述
在这里插入图片描述
如图
在这里插入图片描述

(2)注册驱动

第一种方式(推荐写法):Class.forName()
注册驱动程序最常见的方法是使用Java的Class.forName()方法,将驱动程序的类文件动态加载到内 存中,并将其自动注册

try {  
 Class.forName("com.mysql.jdbc.Driver"); 
 } 
 catch(ClassNotFoundException ex) {
    System.out.println("Error: unable to load driver class!");   
    System.exit(1); 
    }


 

第二种方式:是使用静态DriverManager.registerDriver()方法。

try { 
  Driver myDriver = new com.mysql.jdbc.Driver();
     DriverManager.registerDriver( myDriver );
      } 
      catch(ClassNotFoundException ex) { 
        System.out.println("Error: unable to load driver class!"); 
          System.exit(1); 
          }

(3)获取连接
3.1数据库URL配置
加载驱动程序后,可以使用DriverManager.getConnection()方法建立连接。为了方便参考,让我列出 三个重载的DriverManager.getConnection()方法

  • getConnection(String url
    **
    getConnection(String url,Properties prop)
    **
  • getConnection(String url,String user,String password)

创建数据库连接对象

String URL = "jdbc:mysql://localhost:3306/emp"; 
String USER = "root"; 
String PASS = "root" Connection conn = DriverManager.getConnection(URL, USER, PASS);

主要的接口

Statement用于对数据库进行通用访问。在运行时使用静态SQL语句时很有用。 Statement接口不能接受参数。
PreparedStatement(推 荐使用)**当您计划多次使用SQL语句时使用。PreparedStatement接口在运行时接 受输入参数。
**
  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值