Java连接数据库,从数据库中获取信息输出到控制台,按值查找信息输出到控制台


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;




public class JDBC {
	private static Connection cn =null;
	private Statement stm=null;
	private ResultSet res=null;
	String url="jdbc:mysql://localhost:3306/mydb";
	String user="root";
	String pwd="123456";
	
	
	
	public JDBC()
	{
		try {
			Class.forName("com.mysql.jdbc.Driver");
			System.out.println("加载成功");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("加载失败");
		}
		try {
			cn=DriverManager.getConnection(url,user,pwd);
			System.out.println("连接成功");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("连接失败");
		}	
		
	}
	public JDBC(String url,String user,String pwd)
	{
		try {
			Class.forName("com.mysql.jdbc.Driver");
			System.out.println("加载成功");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("加载失败");
		}
		try {
			cn=DriverManager.getConnection(url,user,pwd);
			System.out.println("连接成功");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("连接失败");
		}	
	}
	public ArrayList<Student>getstudent()
	{   	
	ArrayList<Student>stlist=new ArrayList<>();
	try {
		stm=cn.createStatement();
		res=stm.executeQuery("select * from student");
		while(res.next())
		{
			stlist.add(new Student(res.getString(1),res.getString(2),res.getString(3)));
		}
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	
		return stlist;
	}
	public Student getStudentById(String id)
	{   Student student=null;
		try {
			stm=cn.createStatement();
			res=stm.executeQuery("select * from student where st_id='"+id+"';");
			while(res.next()) 
			{
			student=new Student(res.getString(1),res.getString(2),res.getString(3));
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return student;    
		
	}
public void  close()
{
	 
		try {
			if(stm!=null)
			stm.close();
			if(res!=null)
			res.close();
			if(cn!=null)
		    cn.close();
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	
	
}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
//     JDBC jd=new JDBC();
//     ArrayList<Student> stlist=jd.getstudent();
//     if(stlist!=null)	 
//     {
//     for(Student st:stlist)
//     {
//    	 st.print();
//     }
//         
//	}
//     System.out.println("******************************");
//     jd.getStudentById("4210114002001").print();
     
     System.out.println("************************************");
     String url="jdbc:mysql://localhost:3306/mydb";
     String user="root";
     String pwd="123456";
     JDBC db=new JDBC(url,user,pwd);
     ArrayList<Student> stlists=db.getstudent();
     if(stlists!=null)	 
     {
     for(Student st:stlists)
     {
    	 st.print();
     }
         
	}
     System.out.println("******************************");
     db.getStudentById("4210114002001").print();
     
     

}
	
}
class Student{
	private String st_id;
	private String st_name;
	private String st_tel;
	public void print()
	{
		System.out.println("st_id="+this.st_id+"; st_name="+this.st_name+"; st_tel="+this.st_tel);
		
	}
	public Student(String id, String name,String tel)
	{
		st_id=id;
		st_name=name;
		st_tel=tel;
	}
	public String getSt_id() {
		return st_id;
	}
	public void setSt_id(String st_id) {
		this.st_id = st_id;
	}
	public String getSt_name() {
		return st_name;
	}
	public void setSt_name(String st_name) {
		this.st_name = st_name;
	}
	public String getSt_tel() {
		return st_tel;
	}
	public void setSt_tel(String st_tel) {
		this.st_tel = st_tel;
	}
	
	}
	
	
	

数据库内容:

输出结果:

 

作者为初学者水平有限,写得不好请见谅!

我个人感觉阿,此代码还是比较简单易懂的,我估计难的地方就是结果集那(res;resultset),这里的解释是:

  1. 通过调用ResultSet对象res的next()方法迭代查询结果集,每次迭代都会返回下一条记录,并将结果集指针指向该记录。

  2. 调用ResultSet对象res的getString()方法,根据列索引(1、2、3)获取当前记录的每个字段的值,并将这些值作为参数创建一个新的Student对象。

如果有什么不懂的地方还是可以私聊我的,我会尽力解答。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

monkey mam

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值