package org.work.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DBUtil {
static {
try {
// 加载jdbc驱动程序
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConn() {
Connection conn = null;
try {
// 使用DriverManager建立数据库连接
conn = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;databaseName=school", "sa", "1");
} catch (SQLException e) {
System.err.println("连接失败");
}
return conn;
}
public static void getClose(PreparedStatement ps, ResultSet rs, Connection conn) {
// 关闭资源
try {
if (ps != null) {
ps.close();
}
if (rs != null) {
rs.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
package org.work.model;
public class Student {
private Integer id;
private String name;
private String sex;
private Integer age;
private String tel;
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", sex=" + sex + ", age=" + age + ", tel=" + tel + "]";
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public Student(Integer id, String name, String sex, Integer age, String tel) {
super();
this.id = id;
this.name = name;
this.sex = sex;
this.age = age;
this.tel = tel;
}
public Student() {
super();
}
public Student(String name, String sex, Integer age, String tel) {
super();
this.name = name;
this.sex = sex;
this.age = age;
this.tel = tel;
}
}
package org.work.test;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import org.work.model.Student;
import org.work.util.DBUtil;
public class SelectTest {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
// 1.调用util包下的DBUtil.getConn();加载驱动并和数据库建立连接
conn = DBUtil.getConn();
try {
// 2.准备一个sql语句
String sql = "SELECT * FROM student";
// 3.使用prepareStatement访问数据库
ps = conn.prepareStatement(sql);
// 5.使用ResultSet接收访问数据库的反馈结果
rs = ps.executeQuery();
ArrayList<Student> stuList = new ArrayList<Student>();
// 6.通过while循环把数据存储到ArrayList<Student>中,通过for each循环输出
while (rs.next()) {
Student stu = new Student();
stu.setId(rs.getInt("id"));
stu.setName(rs.getString("name"));
stu.setSex(rs.getString("sex"));
stu.setAge(rs.getInt("age"));
stu.setTel(rs.getString("tel"));
stuList.add(stu);
}
for (Student student : stuList) {
System.out.println("学生id:" + student.getId() + "\t姓名:" + student.getName() + "\t性别:" + student.getSex()
+ "\t年龄:" + student.getAge() + "\t电话:" + student.getTel());
}
} catch (SQLException e) {
e.printStackTrace();
}
// 7.调用util包下的getClose();方法关闭资源
DBUtil.getClose(ps, rs, conn);
}
}
package org.work.test;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
import org.work.util.DBUtil;
public class InsertTest {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement ps = null;
// 1.调用util包下的DBUtil.getConn();加载驱动并和数据库建立连接
conn = DBUtil.getConn();
// 2.准备一个sql语句
String sql = "INSERT INTO student VALUES(?,?,?,?)";
try {
// 3.使用prepareStatement访问数据库
ps = conn.prepareStatement(sql);
// 通过控制台接收用户输入的数据
System.out.println("新增一个学生");
Scanner sc = new Scanner(System.in);
System.out.print("姓名:");
String name = sc.nextLine();
System.out.print("性别:");
String sex = sc.nextLine();
System.out.print("年龄:");
String age = sc.nextLine();
System.out.print("电话:");
String tel = sc.nextLine();
// 数字1,2,3,4-->参数:第几个问号
// name,sex,age,te-->这个问号所对应的数据
ps.setString(1, name);
ps.setString(2, sex);
ps.setString(3, age);
ps.setString(4, tel);
// 5.使用int接收访问数据库的反馈结果
int count = ps.executeUpdate();
// 6.判断插入是否成功
if (count > 0) {
System.out.println("插入成功!");
} else {
System.out.println("插入失败!");
}
} catch (SQLException e) {
e.printStackTrace();
}
// 7.调用util包下的getClose();方法关闭资源
DBUtil.getClose(ps, null, conn);
// 输出学生信息表
SelectTest.main(null);
}
}
package org.work.test;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
import org.work.util.DBUtil;
public class UpdateTest {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement ps = null;
// 1.调用util包下的DBUtil.getConn();加载驱动并和数据库建立连接
conn = DBUtil.getConn();
// 输出学生信息表
SelectTest.main(null);
// 2.准备一个sql语句
String sql = "UPDATE student SET name=?,sex=?,age=?,tel=? WHERE id=?";
try {
// 3.使用prepareStatement访问数据库
ps = conn.prepareStatement(sql);
// 通过控制台接收用户输入的数据
System.out.println("修改一个学生信息");
Scanner sc = new Scanner(System.in);
System.out.print("输入想修改的学生id:");
int id = sc.nextInt();
System.out.print("姓名:");
String name = sc.next();
System.out.print("性别:");
String sex = sc.next();
System.out.print("年龄:");
int age = sc.nextInt();
System.out.print("电话:");
String tel = sc.next();
// 数字1,2,3,4-->参数:第几个问号
// name,sex,age,te-->这个问号所对应的数据
ps.setString(1, name);
ps.setString(2, sex);
ps.setInt(3, age);
ps.setString(4, tel);
ps.setInt(5, id);
// 5.使用int接收访问数据库的反馈结果
int count = ps.executeUpdate();
// 6.判断修改是否成功
if (count > 0) {
System.out.println("修改成功!");
} else {
System.out.println("修改失败!");
}
} catch (SQLException e) {
e.printStackTrace();
}
// 7.调用util包下的getClose();方法关闭资源
DBUtil.getClose(ps, null, conn);
// 输出学生信息表
SelectTest.main(null);
}
}
package org.work.test;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
import org.work.util.DBUtil;
public class DeleteTest {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement ps = null;
// 1.调用util包下的DBUtil.getConn();加载驱动并和数据库建立连接
conn = DBUtil.getConn();
// 输出学生信息表
SelectTest.main(null);
// 2.准备一个sql语句
String sql = "DELETE FROM student WHERE id=?";
try {
// 3.使用prepareStatement访问数据库
ps = conn.prepareStatement(sql);
// 通过控制台接收用户输入的数据
System.out.println("删除一个学生信息");
Scanner sc = new Scanner(System.in);
System.out.print("输入想删除的学生id:");
int id = sc.nextInt();
ps.setInt(1, id);
// 5.使用int接收访问数据库的反馈结果
int count = ps.executeUpdate();
// 6.判断删除是否成功
if (count > 0) {
System.out.println("删除成功!");
} else {
System.out.println("删除失败!");
}
} catch (SQLException e) {
e.printStackTrace();
}
// 7.调用util包下的getClose();方法关闭资源
DBUtil.getClose(ps, null, conn);
// 输出学生信息表
SelectTest.main(null);
}
}
package org.work.test;
import java.util.Scanner;
public class StudentInformation {
public static void main(String[] args) {
// 学生管理系统
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("----------请选择----------");
System.out.println("----------1:显示所有学生信息----------");
System.out.println("----------2:新增学生----------");
System.out.println("----------3:修改某个学生信息----------");
System.out.println("----------4:删除某个学生信息----------");
String select = sc.nextLine();
if (select.equals("end")) {
System.out.println("程序结束!");
break;
} else if (select.equals("1")) {
SelectTest.main(null);
} else if (select.equals("2")) {
InsertTest.main(null);
} else if (select.equals("3")) {
UpdateTest.main(null);
} else if (select.equals("4")) {
DeleteTest.main(null);
} else {
System.out.println("无其他操作!");
}
}
}
}
**
运行效果如下图
查询页面
**