JDBC简单练习
今天先说一下简单的利用jdbc来增删查改一些基本操作。
一般就是五步走
1:注册驱动
2:数据库连接
3:获取执行sql语句对象
4:写sql语句
5:释放资源
下面是一些代码
package cn.zhao.Demo;
public class Student {
private int sno;
private String sname;
private String ssex;
private int sage;
private String sdept;
public int getSno() {
return sno;
}
public void setSno(int sno) {
this.sno = sno;
}
public String getSname() {
return sname;
}
public String getSsex() {
return ssex;
}
public void setSsex(String ssex) {
this.ssex = ssex;
}
public int getSage() {
return sage;
}
public void setSage(int sage) {
this.sage = sage;
}
public String getSdept() {
return sdept;
}
public void setSdept(String sdept) {
this.sdept = sdept;
}
public void setSname(String sname) {
this.sname = sname;
}
@Override
public String toString() {
return "Student{" +
"sno=" + sno +
", sname='" + sname + '\'' +
", ssex='" + ssex + '\'' +
", sage=" + sage +
", sdept='" + sdept + '\'' +
'}';
}
}
以上是我建了一个学生类,根据学生类里面的属性一会对应数据库里面的列实现增删查改操作。
package cn.zhao.Demo;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class Demo1 {
public static void main(String[] args) {
Demo1 demo1=new Demo1();
//demo1.insert();
List<Student> list= demo1.select();
System.out.println(list);
}
public void insert(){
Connection conn=null;
Statement stml=null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection
("jdbc:mysql:///java13","root","root");
stml=conn.createStatement();
String sql="insert into student values(125,'赵代猛','男',20,'物理系')";
int count=stml.executeUpdate(sql);
System.out.println(count);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}catch (SQLException e){
e.printStackTrace();
}finally {
if(stml!=null){
try {
stml.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
public List<Student> select(){
List<Student> list=new ArrayList<>();
Connection conn=null;
Statement stml=null;
ResultSet rs=null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection
("jdbc:mysql:///java13","root","root");
String sql="select * from student";
stml=conn.createStatement();
rs=stml.executeQuery(sql);
Student student=null;
while (rs.next()){
int sno=rs.getInt("sno");
String sname=rs.getString("sname");
String ssex=rs.getString("ssex");
int sage=rs.getInt("sage");
String sdept=rs.getString("sdept");
//创建学生对象,并赋值
student=new Student();
student.setSage(sage);
student.setSdept(sdept);
student.setSname(sname);
student.setSno(sno);
student.setSsex(ssex);
//装载集合
list.add(student);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}catch (SQLException e){
e.printStackTrace();
}finally {
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(stml!=null){
try {
stml.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return list;
}
}
这就是增加和查找操作,以下是查找的结果
**[Student{sno=124, sname='郭导', ssex='男', sage=22, sdept='土木工程'}, Student{sno=125, sname='赵代猛', ssex='男', sage=20, sdept='物理系'}, Student{sno=126, sname='李鑫庆', ssex='男', sage=22, sdept='计算机学院'}]
**
其他的操作和这个大同小异,肯定有更好的办法完成这些操作,工具类,文件的形式存储重复的代码会更加的省事,这里就不一一阐述了,下次再说。