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),这里的解释是:
-
通过调用ResultSet对象res的next()方法迭代查询结果集,每次迭代都会返回下一条记录,并将结果集指针指向该记录。
-
调用ResultSet对象res的getString()方法,根据列索引(1、2、3)获取当前记录的每个字段的值,并将这些值作为参数创建一个新的Student对象。
如果有什么不懂的地方还是可以私聊我的,我会尽力解答。