2022/11/11 00:23 完成第11周作业题1
This commit is contained in:
commit
ffdf7dd1cd
8
.idea/.gitignore
generated
vendored
Normal file
8
.idea/.gitignore
generated
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# 默认忽略的文件
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
||||||
|
# 基于编辑器的 HTTP 客户端请求
|
||||||
|
/httpRequests/
|
||||||
|
# Datasource local storage ignored files
|
||||||
|
/dataSources/
|
||||||
|
/dataSources.local.xml
|
14
.idea/compiler.xml
generated
Normal file
14
.idea/compiler.xml
generated
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="CompilerConfiguration">
|
||||||
|
<annotationProcessing>
|
||||||
|
<profile default="true" name="Default" enabled="true" />
|
||||||
|
<profile name="Maven default annotation processors profile" enabled="true">
|
||||||
|
<sourceOutputDir name="target/generated-sources/annotations" />
|
||||||
|
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
|
||||||
|
<outputRelativeToContentRoot value="true" />
|
||||||
|
<module name="week11-work1" />
|
||||||
|
</profile>
|
||||||
|
</annotationProcessing>
|
||||||
|
</component>
|
||||||
|
</project>
|
7
.idea/encodings.xml
generated
Normal file
7
.idea/encodings.xml
generated
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="Encoding">
|
||||||
|
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
|
||||||
|
</component>
|
||||||
|
</project>
|
20
.idea/jarRepositories.xml
generated
Normal file
20
.idea/jarRepositories.xml
generated
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="RemoteRepositoriesConfiguration">
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="central" />
|
||||||
|
<option name="name" value="Maven Central repository" />
|
||||||
|
<option name="url" value="https://repo1.maven.org/maven2" />
|
||||||
|
</remote-repository>
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="jboss.community" />
|
||||||
|
<option name="name" value="JBoss Community repository" />
|
||||||
|
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
|
||||||
|
</remote-repository>
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="central" />
|
||||||
|
<option name="name" value="Central Repository" />
|
||||||
|
<option name="url" value="https://maven.aliyun.com/repository/public" />
|
||||||
|
</remote-repository>
|
||||||
|
</component>
|
||||||
|
</project>
|
14
.idea/misc.xml
generated
Normal file
14
.idea/misc.xml
generated
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||||
|
<component name="MavenProjectsManager">
|
||||||
|
<option name="originalFiles">
|
||||||
|
<list>
|
||||||
|
<option value="$PROJECT_DIR$/pom.xml" />
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||||
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
|
</component>
|
||||||
|
</project>
|
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
30
pom.xml
Normal file
30
pom.xml
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<groupId>cn.czyx007.week11</groupId>
|
||||||
|
<artifactId>week11-work1</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<maven.compiler.source>8</maven.compiler.source>
|
||||||
|
<maven.compiler.target>8</maven.compiler.target>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>mysql</groupId>
|
||||||
|
<artifactId>mysql-connector-java</artifactId>
|
||||||
|
<version>8.0.30</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
<version>1.18.20</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
</project>
|
49
src/main/java/cn/czyx007/week11/Driver.java
Normal file
49
src/main/java/cn/czyx007/week11/Driver.java
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
package cn.czyx007.week11;
|
||||||
|
|
||||||
|
import cn.czyx007.week11.bean.Student;
|
||||||
|
import cn.czyx007.week11.dao.impl.StudentDAOImpl;
|
||||||
|
import cn.czyx007.week11.utils.DBUtil;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author : 张宇轩
|
||||||
|
* @createTime : 2022/11/10
|
||||||
|
*/
|
||||||
|
public class Driver {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Scanner scanner = new Scanner(System.in);
|
||||||
|
StudentDAOImpl studentDAO = new StudentDAOImpl();
|
||||||
|
Connection connection = null;
|
||||||
|
try {
|
||||||
|
connection = DBUtil.getConnection();
|
||||||
|
connection.setAutoCommit(false);
|
||||||
|
connection.commit();
|
||||||
|
//输入学生各项信息,保存到数据库
|
||||||
|
System.out.print("请输入待添加学生的学号:");
|
||||||
|
String id = scanner.nextLine();
|
||||||
|
System.out.print("请输入待添加学生的姓名:");
|
||||||
|
String name = scanner.nextLine();
|
||||||
|
System.out.print("请输入待添加学生的性别:");
|
||||||
|
String gender = scanner.nextLine();
|
||||||
|
System.out.print("请输入待添加学生的出生年月日(yyyy-MM-dd):");
|
||||||
|
Date birth = new SimpleDateFormat("yyyy-MM-dd").parse(scanner.nextLine());
|
||||||
|
System.out.print("请输入待添加学生的成绩:");
|
||||||
|
Double score = Double.valueOf(scanner.nextLine());
|
||||||
|
studentDAO.insert(new Student(id, name, gender, birth, score));
|
||||||
|
System.out.println("添加成功!");
|
||||||
|
|
||||||
|
// 输入学生学号,查询显示该学号学生的所有记录
|
||||||
|
System.out.println("请输入待查询学生的学号:");
|
||||||
|
id = scanner.nextLine();
|
||||||
|
System.out.println(studentDAO.selectById(id));
|
||||||
|
} catch (Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
DBUtil.close(connection, null, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
22
src/main/java/cn/czyx007/week11/bean/Student.java
Normal file
22
src/main/java/cn/czyx007/week11/bean/Student.java
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
package cn.czyx007.week11.bean;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author : 张宇轩
|
||||||
|
* @createTime : 2022/11/9
|
||||||
|
*/
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Data
|
||||||
|
public class Student {
|
||||||
|
private String id;
|
||||||
|
private String name;
|
||||||
|
private String gender;
|
||||||
|
private Date birth;
|
||||||
|
private Double score;
|
||||||
|
}
|
13
src/main/java/cn/czyx007/week11/dao/StudentDAO.java
Normal file
13
src/main/java/cn/czyx007/week11/dao/StudentDAO.java
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
package cn.czyx007.week11.dao;
|
||||||
|
|
||||||
|
import cn.czyx007.week11.bean.Student;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author : 张宇轩
|
||||||
|
* @createTime : 2022/11/9
|
||||||
|
*/
|
||||||
|
public interface StudentDAO {
|
||||||
|
int insert(Student student);
|
||||||
|
|
||||||
|
Student selectById(String id);
|
||||||
|
}
|
66
src/main/java/cn/czyx007/week11/dao/impl/StudentDAOImpl.java
Normal file
66
src/main/java/cn/czyx007/week11/dao/impl/StudentDAOImpl.java
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
package cn.czyx007.week11.dao.impl;
|
||||||
|
|
||||||
|
import cn.czyx007.week11.bean.Student;
|
||||||
|
import cn.czyx007.week11.dao.StudentDAO;
|
||||||
|
import cn.czyx007.week11.utils.DBUtil;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.Date;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author : 张宇轩
|
||||||
|
* @createTime : 2022/11/9
|
||||||
|
*/
|
||||||
|
public class StudentDAOImpl implements StudentDAO {
|
||||||
|
@Override
|
||||||
|
public int insert(Student student) {
|
||||||
|
Connection connection = null;
|
||||||
|
PreparedStatement ps = null;
|
||||||
|
int count = 0;
|
||||||
|
try {
|
||||||
|
connection = DBUtil.getConnection();
|
||||||
|
String sql = "insert into tstudent values(?,?,?,?,?)";
|
||||||
|
ps = connection.prepareStatement(sql);
|
||||||
|
ps.setObject(1, student.getId());
|
||||||
|
ps.setObject(2, student.getName());
|
||||||
|
ps.setObject(3, student.getGender());
|
||||||
|
ps.setObject(4, student.getBirth());
|
||||||
|
ps.setObject(5, student.getScore());
|
||||||
|
count = ps.executeUpdate();
|
||||||
|
} catch (Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
DBUtil.close(null, ps, null);
|
||||||
|
}
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Student selectById(String id) {
|
||||||
|
Connection connection = null;
|
||||||
|
PreparedStatement ps = null;
|
||||||
|
ResultSet rs = null;
|
||||||
|
Student student = null;
|
||||||
|
try {
|
||||||
|
connection = DBUtil.getConnection();
|
||||||
|
String sql = "select * from tstudent where id = ?";
|
||||||
|
ps = connection.prepareStatement(sql);
|
||||||
|
ps.setObject(1, id);
|
||||||
|
rs = ps.executeQuery();
|
||||||
|
if(rs.next()){
|
||||||
|
String name = rs.getString("name");
|
||||||
|
String gender = rs.getString("gender");
|
||||||
|
Date birth = rs.getDate("birth");
|
||||||
|
double score = rs.getDouble("score");
|
||||||
|
student = new Student(id, name, gender, birth, score);
|
||||||
|
}
|
||||||
|
} catch (Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
DBUtil.close(null, ps, rs);
|
||||||
|
}
|
||||||
|
return student;
|
||||||
|
}
|
||||||
|
}
|
70
src/main/java/cn/czyx007/week11/utils/DBUtil.java
Normal file
70
src/main/java/cn/czyx007/week11/utils/DBUtil.java
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
package cn.czyx007.week11.utils;
|
||||||
|
|
||||||
|
import java.sql.*;
|
||||||
|
import java.util.ResourceBundle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author : 张宇轩
|
||||||
|
* @createTime : 2022/11/9
|
||||||
|
*/
|
||||||
|
public class DBUtil {
|
||||||
|
//服务器上只会有一个ThreadLocal,每个线程向其中绑定自己的数据(连接对象)
|
||||||
|
private static ThreadLocal<Connection> local = new ThreadLocal<>();
|
||||||
|
|
||||||
|
private static ResourceBundle bundle = ResourceBundle.getBundle("jdbc");
|
||||||
|
private static String driver = bundle.getString("driver");
|
||||||
|
private static String url = bundle.getString("url");
|
||||||
|
private static String username = bundle.getString("username");
|
||||||
|
private static String password = bundle.getString("password");
|
||||||
|
|
||||||
|
//不让创建对象,因为工具类中的方法都是静态的,不需要创建对象
|
||||||
|
private DBUtil(){}
|
||||||
|
|
||||||
|
//DBUtil类加载时注册驱动
|
||||||
|
static {
|
||||||
|
try {
|
||||||
|
Class.forName(driver);
|
||||||
|
} catch (ClassNotFoundException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 没有使用数据库连接池,直接创建连接对象
|
||||||
|
* @return 连接对象
|
||||||
|
* @throws SQLException
|
||||||
|
*/
|
||||||
|
public static Connection getConnection() throws SQLException {
|
||||||
|
Connection connection = local.get();
|
||||||
|
if (connection == null) {
|
||||||
|
connection = DriverManager.getConnection(url,username,password);
|
||||||
|
local.set(connection);
|
||||||
|
}
|
||||||
|
return connection;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void close(Connection connection, PreparedStatement ps, ResultSet rs){
|
||||||
|
if (connection != null) {
|
||||||
|
try {
|
||||||
|
connection.close();
|
||||||
|
local.remove();
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ps != null) {
|
||||||
|
try {
|
||||||
|
ps.close();
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (rs != null) {
|
||||||
|
try {
|
||||||
|
rs.close();
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
4
src/main/resources/jdbc.properties
Normal file
4
src/main/resources/jdbc.properties
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
driver=com.mysql.cj.jdbc.Driver
|
||||||
|
url=jdbc:mysql://localhost:3306/mis?serverTimezone=UTC
|
||||||
|
username=root
|
||||||
|
password=123456
|
Loading…
x
Reference in New Issue
Block a user