实验步骤:根据教材和老师课堂的讲解。
1)创建Java Project test3
2)在test3中创建Folder lib 用来存储资源
3)将mysql-connector-j-8.0.31.jar拖动到lib目录下
4)右击mysql-connector-j-8.0.31.jar点击Build Path->Add to Build Path
5)配置系统环境变量,配置本地数据库和网络数据库
6)编写Java应用程序实现连接本地数据库和网络数据库的功能
7)对数据库进行数据查询的数据访问操作
设计思路:先创建Java Project test3,然后在test3中创建Folder lib 用来存储资源,将mysql-connector-j-8.0.31.jar拖动到lib目录下,右击mysql-connector-j-8.0.31.jar点击Build Path->Add to Build Path,然后创建Demo类,连接数据库,先加载数据库驱动类,和数据库建立连接,然后通过链接创建一个sql预处理命令发送器PreparedStatement,设置参数,使用sql命令发送器向数据库发送sql命令,执行预处理语句,然后打印出处理结果,最后关闭资源。(数据查询的结果是database cwn的table teacher表 的 sex=‘女’的信息)
实验结果与分析
1.查询teacher表中sex=’女’的信息,原表如图4-1,结果如图4-2:
图4-1 教师表
图4-2 结果
实验分析:
1.实验遇到的问题:
1)mysql新建连接提示Can't connect to MySQL server on localhost (0)
2.问题解决的方法:
1)打开任务管理器(ctrl+alt+del)->选择服务->找到mysql8,右键点击打开服务,如图4-3->进入到下面第二个页面如图4-4,找到mysql8,右键点击启动。重新打开mysql,进行连接即可。
图4-3 任务管理器
图4-4 找到服务里的mysql8
附源程序:
package Demo;
import java.sql.*;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
public class Demo {
public static void main(String[] args) throws SQLException{
// TODO Auto-generated method stub
//加载驱动
String driverName="com.mysql.cj.jdbc.Driver";
try {
Class.forName(driverName);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
//和数据库建立连接 ip port deptnme
Connection con=null;
String url="jdbc:mysql://localhost:3306/cwn?characterEncoding=utf-8";
String user="root";
String password="111111";//这里仅作示例,自己操作时输入自己设定的密码即可
try {
con=DriverManager.getConnection(url,user,password);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
//通过链接创建一个sql命令发送器PreparedStatement
PreparedStatement sql=con.prepareStatement("SELECT * FROM teacher where sex=?");
sql.setString(1, "女");//设置参数
//使用sql命令发送器向数据库发送sql命令
ResultSet rs=sql.executeQuery();//执行预处理语句
//处理结果
System.out.println("查询sex=女的信息:");
System.out.println("tno"+"\t"+"tname"+"\t"+"sex"+"\t"
+"title"+"\t"+"birthday");
while(rs.next()) {
String tno=rs.getString(1);
String tname=rs.getString(2);
String sex=rs.getString(3);
String title=rs.getString(4);
Date birthday=rs.getDate(5);
System.out.printf("%s\t",tno);
System.out.printf("%s\t",tname);
System.out.printf("%s\t",sex);
System.out.printf("%s\t",title);
System.out.printf("%s\n",birthday);
}
//关闭资源
rs.close();
sql.close();
con.close();
}
}