在MySQL中创建一个数据库company,在数据库中创建一个数据表emp,表格字段有:no,name,表示工号和姓名,在数据库中写入自己的学号和姓名
编写测试类Test,连接MySQL数据库,然后通过sql语句查询表emp的内容并打印出来
不会打出代码,需要大家帮忙
完成代码如下:
public static void main(String[] args) throws Exception {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/company?useUnicode=true&characterEncoding=utf8";
try (Connection connection = DriverManager.getConnection(url, "root", "123456")) {
ResultSet rs = connection.createStatement().executeQuery("select * from emp");
while(rs.next()) {
System.out.println("工号:" + rs.getString("no"));
System.out.println("姓名:" + rs.getString("name"));
}
}
}
如有帮助,请采纳,十分感谢!
注:
(1)我使用的是MySQL 8.0,一定要记得换以下用户名和密码,大家不一样
(2)不要忘记在pom.xml添加依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
1、数据库
create database company;
use company;
CREATE TABLE emp
(no Varchar(9) PRIMARY KEY,
name Varchar(20) UNIQUE
);
INSERT INTO emp(no,name)
VALUES('001','小桀同学');
2、java源代码
```java
import java.sql.*;
public class Student {
private static String Driver = "com.mysql.cj.jdbc.Driver";
private static final String User = "root";//换成自己的账户名
private static final String Pwd = "520710828guo";//换成自己的账户密码
private static final String Url = "jdbc:mysql://localhost:3306/company?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
public static void dispaly(){
Connection conn = null;
Statement stmt = null;
try{
// 注册 JDBC 驱动
Class.forName(Driver);
// 打开链接
conn = DriverManager.getConnection(Url, User, Pwd);
// 执行查询
stmt = conn.createStatement();
String sql;
sql = "SELECT no, name FROM emp";
ResultSet rs = stmt.executeQuery(sql);
// 展开结果集数据库
while(rs.next()){
// 通过字段检索
String no = rs.getString("no");
String name = rs.getString("name");
// 输出数据
System.out.print("no: " + no+" "+"name: " + name+"\n");
}
// 完成后关闭
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
// 处理 JDBC 错误
se.printStackTrace();
}catch(Exception e){
// 处理 Class.forName 错误
e.printStackTrace();
}finally{
// 关闭资源
try{
if(stmt!=null) stmt.close();
}catch(SQLException se2){
}// 什么都不做
try{
if(conn!=null) conn.close();
}catch(SQLException se){
se.printStackTrace();
}
}
}
public static void main(String[] args) {
dispaly();
}
}
3、结果展示
// 驱动
private static final String DRIVER = "com.mysql.jdbc.Driver";
// 地址
private static final String URL = "jdbc:mysql://localhost:3306/company";
//用户名
private static final String USER_NAME = "root";
// 密码
private static final String PSW = "123456";
/**
* 获取连接
*/
public static Connection getConnection(){
Connection conn = null;
try {
// 加载驱动
Class.forName(DRIVER);
// 数据库连接
conn = DriverManager.getConnection(URL,USER_NAME,PSW);
} catch (ClassNotFoundException e) {
System.out.println("加载驱动失败,请检查是否引入Jar包或者驱动名称是否正确");
throw new RuntimeException("加载驱动失败,请检查是否引入Jar包或者驱动名称是否正确",e);
} catch (SQLException throwables) {
System.out.println("连接数据库失败,请检查数据库地址,用户名,密码是否正确");
throw new RuntimeException("连接数据库失败,请检查数据库地址,用户名,密码是否正确",throwables);
}
return conn;
}
/**
* 关闭连接
* @param conn
*/
public static void close(Connection conn){
if(conn != null){
try {
conn.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
public static void doQuery(){
String sql = "select * from emp";
Connection conn = getConnection();
PreparedStatement statement = null;
ResultSet resultSet = null;
try {
statement = conn.prepareStatement(sql);
resultSet = statement.executeQuery();
// resultSet.next 方法 将光标向前移动一行,最初为第一行之前,第一次调用使得第一行为当前行
while (resultSet.next()){
int id = resultSet.getInt("no");
String name = resultSet.getString("name");
System.out.println("查询到no为"+no+",name为"+name+"的记录");
}
} catch (SQLException throwables) {
throwables.printStackTrace();
} finally {
if(resultSet != null){
try {
resultSet.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
close(conn,statement);
}
}
你可以参考我的文章,有数据库连接,测试的内容
这得看看你到底是mysql没连接上还是sql有问题查不出来
搜一下手动编写JDBC代码 多得很
可以看一下我的文章,之前做的小项目
初学者 自己去下载相应版本的jdbc驱动 然后写jdbc工具类
调用工具类做增删改查即可
jdbc示例不管是在网上还是课本上都有很多的,随便翻一个动手抄一遍也比在这里直接让别人写好复制粘贴强