我将teacher给的代码运行之后查询student表异常
package sql;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
public class StudentInfo {
static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";// "com.microsoft.sqlserver.jdbc.SQLServerDriver"
static final String DB_URL = "jdbc:mysql://localhost:3306/mysql?useSSL=false";
static final String USER = "root";
static final String PASS = "fjchg556";//Lab: "000000"
public static void main(String[] args) {
try {
// 加载驱动
Class.forName(JDBC_DRIVER);
// 建立和数据库的连接
Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
// 创建Statement对象
Statement stmt = conn.createStatement();
// 定义SQL语句
String sql = "select * from student";
// (1)访问数据表student并输出所有学生信息
System.out.println("(1)访问表student并输出所有学生信息");
ResultSet rs = stmt.executeQuery(sql);// executeQuery()返回值为结果集对象,用于查询获取结果集
// 处理结果集
System.out.println("id\tname\tclass_id\tsubject\tsex\tage\taddr");
while (rs.next()) {
System.out.println(rs.getString(1) + "\t"
+ rs.getString(2) + "\t" + rs.getString(3) + "\t" + rs.getString(4) + "\t" + rs.getString(5) + "\t" + rs.getString(6) + "\t" + rs.getString(7));
}
// (2)向数据表student中插入一条新的学生信息
System.out.println("(2)向数据表student中插入一条新的学生信息");
sql = "insert into student(id,name,class_id,subject,sex,age,addr) values(?,?,?,?,?,?,?)";//"INSERT into student VALUES('ffff','4','123')"
// 预编译SQL语句
PreparedStatement ps = conn.prepareStatement(sql);
// 为参数赋值
ps.setString(1, "2107");
ps.setString(2, "Zhang");
ps.setString(3, "02");
ps.setString(4, "English");
ps.setString(5, "W");
ps.setString(6, "27");
ps.setString(7, "Shanghai");
// 执行插入
int i = ps.executeUpdate();// executeUpdate()返回值为int类型,返回的是修改更新(INSERT、UPDATE或 DELETE)的数据数量
// 根据插入情况给出提示信息
if (i == 1) {
System.out.println("插入成功!");
} else {
System.out.println("未插入成功!");
}
// 关闭连接
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```java
运行结果如下
你的数据库名是 sys,你现在连接上写的是myql。url换成这个 jdbc:mysql://localhost:3306/sys?useSSL=false
数据库名不对啊
作为一名服务端开发人员,跟数据库打交道是无法避免的,所以也是需要把数据库中的表生成实体,也就是逆向工程,本文章主要是基于MySQL数据库和Mybatis框架。
现在Mybatis官网也提供了一套自动生成的框架,对于一般的开发来说已经够用,但是我们有时候需要添加一些自定义的属性或者其他功能,就显得十分鸡肋,IntelliJ IDEA真的强大,它已经为我们提供了一套非常强大的逆向工程工具,让我们可以随心所欲去生成自己需要的实体。