Java连接mysql数据库利用了mysql-JDBC的jar包,查询操作用的是executeQuery()方法,除了查询操作外的增删改都是用executeUpdate()方法实现。
代码:
Student类
package test; public class Student { private int id; private String name; private int age; public Student(int id, String name, int age) { super(); this.id = id; this.name = name; this.age = age; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Student [id=" + id + ", name=" + name + ", age=" + age + "]"; } }
Sql类:
package test; import java.util.ArrayList; import java.util.List; import java.util.Scanner; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class Sql { Connection con; public Connection getConn() throws SQLException, ClassNotFoundException { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/school?useUnicode=true&characterEncoding=utf-8", "root", "helloworld"); System.out.println(con); return con; } public int addStu(Student st) throws SQLException, ClassNotFoundException { con=getConn(); try { con = getConn(); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } String sql_insert = "insert into student(id, name, age) values(?, ?, ?)"; PreparedStatement pst = con.prepareStatement(sql_insert); pst.setInt(1, st.getId()); pst.setString(2, st.getName()); pst.setInt(3, st.getAge()); int rest = pst.executeUpdate(); pst.close(); con.close(); return rest; } public int deleteStu(int id) throws ClassNotFoundException, SQLException { con=getConn(); String sql="delete from student where id=?"; PreparedStatement pst = con.prepareStatement(sql); pst = con.prepareStatement(sql); pst.setInt(1,id); int result=pst.executeUpdate(); pst.close(); con.close(); return result; } public int updateStu(int id, int flag) throws SQLException, ClassNotFoundException { con=getConn(); Scanner cin = new Scanner(System.in); String name; int age; String sql; int rst = 0; if(flag == 1) { name = cin.next(); sql = "update student set name = ? where id = ?"; PreparedStatement pst = con.prepareStatement(sql); pst.setString(1, name); pst.setInt(2, id); rst = pst.executeUpdate(); pst.close(); } else if(flag == 2) { age = cin.nextInt(); sql = "update student set age = ? where id = ?"; PreparedStatement pst = con.prepareStatement(sql); pst.setInt(1, age); pst.setInt(2, id); rst = pst.executeUpdate(); pst.close(); } else if(flag == 3) { age = cin.nextInt(); name = cin.next(); sql = "update student set name = ?, age = ? where id = ?"; PreparedStatement pst = con.prepareStatement(sql); pst.setString(1, name); pst.setInt(2, age); pst.setInt(3, id); rst = pst.executeUpdate(); pst.close(); } con.close(); return rst; } public List<Student> queryAll() throws SQLException, ClassNotFoundException { con=getConn(); List<Student> stu = new ArrayList<Student>(); String sql = "select * from student"; PreparedStatement pst = con.prepareStatement(sql); ResultSet rst = pst.executeQuery(); while (rst.next()) { int id = rst.getInt(1); String name = rst.getString(2); int age = rst.getInt(3); stu.add(new Student(id, name, age)); //System.out.println(id + "---" + name + "---" + age); } pst.close(); con.close(); return stu; } public void queryById(int id) throws SQLException, ClassNotFoundException { con=getConn(); String sql = "select name, age from student where id=?"; PreparedStatement pst = con.prepareStatement(sql); pst.setInt(1, id); ResultSet rst = pst.executeQuery(); if(rst.next()!= false) { String name = rst.getString("name"); int age = rst.getInt("age"); System.out.println("学号为"+id+"的学生:"+"\n"+"姓名: "+name+"\n"+"年龄: "+age+"\n"); } pst.close(); con.close(); } }
Main类;
package test; 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; import java.util.Scanner; public class Main { public static void main(String[] args) throws ClassNotFoundException, SQLException { Scanner cin = new Scanner(System.in); Sql mysql_obj = new Sql(); int order = 0; System.out.println("请输入指令来进行操作:"); System.out.println("输入1添加学生信息"); System.out.println("输入2删除学生信息"); System.out.println("输入3修改学生信息"); System.out.println("输入4根据学号查询"); System.out.println("输入5查询全部学生信息"); while(cin.hasNext()) { order = cin.nextInt(); if(order == 1) { System.out.println("输入学生信息id name age"); Student stu = new Student(cin.nextInt(), cin.next(), cin.nextInt()); int rst = mysql_obj.addStu(stu); if(rst == 1) { System.out.println("success!"); } else { System.out.println("failed!"); } } else if(order == 2) { System.out.println("输入学生id"); int id = cin.nextInt(); int rst = mysql_obj.deleteStu(id); if(rst == 1) { System.out.println("success!"); } else { System.out.println("failed!"); } } else if(order == 3) { System.out.println("输入学生id"); int id = cin.nextInt(); System.out.println("更改姓名输入1 更改年龄输入2 两者都更改输入3"); int flag = cin.nextInt(); int rst = mysql_obj.updateStu(id, flag); if(rst == 1) { System.out.println("success!"); } else { System.out.println("failed!"); } } else if(order == 4) { System.out.println("输入学生id"); int id = cin.nextInt(); mysql_obj.queryById(id); } else if(order == 5) { List<Student> stu = new ArrayList<Student>(); stu = mysql_obj.queryAll(); for(Student st: stu) { System.out.println(st.toString()); } } } } }