先看代码:
package jdbc;
import java.sql.*;
public class TestJDBC {
public static void main(String[] args) throws SQLException {
Connection conn=null;
Statement st=null;
ResultSet rs=null;
try {
//注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//2,获取和数据库的连接
//String url= "jdbc:mysql://localhost:3306/cgb2104?characterEncoding=utf8";//指定要连接哪个数据库
String url= "jdbc:mysql:///test?characterEncoding=utf8&serverTimezone=Asia/Shanghai";//指定要连接哪个数据库
String user= "root" ; //使用的用户名
String pwd= "root" ; //使用的密码
conn = DriverManager.getConnection(url, user, pwd);
//3,获取传输器,执行SQL
st = conn.createStatement();
//4,执行SQL
rs = st.executeQuery("select * from courses");
//5,解析结果集
while( rs.next() ){//next()判断结果集中是否有数据
/*System.out.println(
rs.getString("cno") + " "
+ rs.getString("cname") + " "
+ rs.getString("tno") );
*/
for (int i = 1; i <= 3; i++) {
//获取每列的值并打印
System.out.print( rs.getString(i)+" " );
}
System.out.println();
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}finally {
//6,释放资源
rs.close(); //关闭结果集
st.close();//关闭传输器
conn.close();//关闭连接
}
}
}
代码其实很好实现,网上一搜基本都有,但是这里主要有几个需要注意的地方。
1,
2,获取结果集的方式,
这个获取结果集的要注意一下,有些朋友可能对这个不明白,我刚开始也没看懂,重点说一下
首先得要知道它是怎么取的,知道怎么取你才能通过代码让表数据展示在控制台上,
xx.next()这个方法返回值是boolbean型,如果有数据就返回true,反之就返回flase,假设你查到了两条数据,例如:
当while(xx.next()),由于有数据,所以while括号里是真,执行{ }里的代码,这里有三个字段,通过
xx.getString("字段名"),获取一个字段值,类似获取第二第三个,当输出完这一条数据后继续
while(xx.next())判断,因为还有一条数据,所以判断为真,继续执行{ }中的代码,打印第二条数据,再去判断,因为内=没数据了,xx.next()返回flase,跳出循环,结束。
当然如果字段多的话可以用for循环,方式二,i代表字段的顺序,i=1就是第一个字段,i=2就是第二个字段,以此类推,如果有10个字段,就是for(int 1=1; i<=10;i++){ ....};
这是我的表:
这是我通过sql: select * from courses 查到的数据:
上述代码会造成sql注入,一般不这么使用,会用到另一个传输器,这个下次再说.......12点多了,睡觉