JDBC的eclipse的环境配置
首先我们要有mysql-java的压缩包,我以8.0的来做演示。
首先建立一个和src文件夹平级的文件夹,并将我们的压缩包复制进去,
随后我们右击文件夹TestJdbc去找到build path,并点击最后一个configure build path,
找到这个Libraries下的压缩包,随后点击右边的Add JARs,最后点击OK和Apply and Close;就算配置好了。
mysql-connector-java-5
在5版本8版本做过大调整,我们先来说5版本
//注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//获取访问数据库链接,和数据库创建了一个通道
String url = "jdbc:mysql://localhost:3306/py-school-db"
+ "?characterEncoding=utf8";
String user = "root"; //用户名
String password = "root"; //密码
Connection cn = DriverManager.getConnection(url, user, password);
//创建Statement对象,进行sql语句的查询,并获取查询结果
Statement stat = cn.createStatement();
String sql = "select * from teachers";
ResultSet rs = stat.executeQuery(sql);
//从元数据(修饰表) MetaData元数据,getColumnCount获取列(字段)个数
int cols = rs.getMetaData().getColumnCount();//字段个数
//获取字段名称
for(int i=1; i<=cols; i++) {
//从元数据中获取列名,数据库的列是从1开始,ColumnName列名
System.out.print( rs.getMetaData().getColumnName(i) +"\t" );
}
//获取每一行的数据
while( rs.next() ) {
System.out.println(); //换行
//获取某个字段值,获取结果集中第一列,返回字符串类型
//System.out.println( rs.getString(2));
//通过for循环获取每个列
for(int i=1; i<=cols; i++) {
System.out.print( rs.getString(i)+"\t" );
}
}
mysql-connector-java-8
Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/py-school-db"
+ "?characterEncoding=utf8"
+ "&serverTimezone=Asia/Shanghai";
注意注册和连接路径就好。
注意
我们首先要知道如果说我们什么都通过用户输入,错误输入情况太多,如果我们仅仅让用户输入基本查询条件剩下自行输入,维护成本又过高,这也是PreparedStatement 的重要性,它讲我们的前一部分的语句封装后放入ps,后续我们仅仅接受用户输入的信息就可以完成查询,易于维护。
String scanner = "陈冰";
String sql = "select * from teachers where tname=?";
PreparedStatement ps = cn.prepareStatement(sql);
ps.setString(1, scanner);
ResultSet rs = ps.executeQuery();
int cols = rs.getMetaData().getColumnCount();
for(int i=1;i<=cols;i++) {
System.out.println(rs.getMetaData().getColumnName(i));
}
while(rs.next()) {
for(int i=1;i<cols;i++)
System.out.println(rs.getString(i));
}