1.测试SQL数据
DROP DATABASE IF EXISTS user
CREATE TABLE user(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
sex VARCHAR(2) DEFAULT '男' CHECK(sex IN('男', '女')),
age INT
)
2.封装连接操作
import com.microsoft.sqlserver.jdbc.SQLServerDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DBUtil {
private static final String URL = "jdbc:sqlserver://127.0.0.1:1433/test?characterEncoding=utf8&useSSL=false";
private static final String USERNAME = "root";
private static final String PASSWORD = "0x11223344";
private static DataSource dataSource = new SQLServerDataSource();
static {
((SQLServerDataSource) dataSource).setURL(URL);
((SQLServerDataSource) dataSource).setUser(USERNAME);
((SQLServerDataSource) dataSource).setPassword(PASSWORD);
}
public static Connection getConnection() throws SQLException {
return dataSource.getConnection();
}
public static void close(Connection connection, PreparedStatement statement, ResultSet resultSet) {
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
3.测试的一个简单的UserDAO类
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
public class UserDAO {
private static final Scanner scanner = new Scanner(System.in);
public static void Create() {
System.out.println("新用户注册操作:");
Connection connection = null;
PreparedStatement statement = null;
ResultSet resultSet = null;
try {
connection = DBUtil.getConnection();
String sql = "INSERT INTO user VALUES(null,?,?,?)";
System.out.print("用户名:");
String name = scanner.nextLine();
System.out.print("性别:");
String sex = scanner.nextLine();
System.out.print("年龄:");
int age = scanner.nextInt();
statement = connection.prepareStatement(sql);
statement.setString(1, name);
statement.setString(2, sex);
statement.setInt(3, age);
int ret = statement.executeUpdate();
if (ret == 1) {
System.out.println("注册成功");
} else {
System.out.println("注册失败");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(connection, statement, resultSet);
}
}
public static void Delete() {
System.out.println("销户操作:");
Connection connection = null;
PreparedStatement statement = null;
ResultSet resultSet = null;
try {
connection = DBUtil.getConnection();
System.out.print("输入销户ID:");
int id = scanner.nextInt();
String sql = "DELETE FROM user WHERE id=?";
statement = connection.prepareStatement(sql);
statement.setInt(1, id);
int ret = statement.executeUpdate();
if (ret == 1) {
System.out.println("销户成功成功");
} else {
System.out.println("销户失败");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(connection, statement, resultSet);
}
}
public static void Update() {
System.out.println("更新用户信息操作:");
Connection connection = null;
PreparedStatement statement = null;
ResultSet resultSet = null;
try {
connection = DBUtil.getConnection();
System.out.print("输入修改的的用户ID:");
int id = scanner.nextInt();
System.out.print("新的用户名:");
String name = scanner.nextLine();
System.out.print("新的性别:");
String sex = scanner.nextLine();
System.out.print("新的年龄:");
int age = scanner.nextInt();
String sql = "UPDATE user SET name=?, sex=?, age=? WHERE id=?";
statement = connection.prepareStatement(sql);
statement.setString(1, name);
statement.setString(2, sex);
statement.setInt(3, age);
statement.setInt(4, id);
int ret = statement.executeUpdate();
if (ret == 1) {
System.out.println("修改成功");
} else {
System.out.println("修改失败");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(connection, statement, resultSet);
}
}
public static void Retrieve() {
System.out.println("销户操作:");
Connection connection = null;
PreparedStatement statement = null;
ResultSet resultSet = null;
try {
connection = DBUtil.getConnection();
System.out.print("输入查询的用户ID:");
int id = scanner.nextInt();
String sql = "SELECT * FROM user WHERE id=?";
statement = connection.prepareStatement(sql);
statement.setInt(1, id);
resultSet = statement.executeQuery();
if (resultSet.next()) {
String name = resultSet.getString("name");
String sex = resultSet.getString("sex");
int age = resultSet.getInt("age");
System.out.println(
"姓名:" + name +
"性别:" + sex +
"年龄:" + age
);
} else {
System.out.println("没有次用户ID");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(connection, statement, resultSet);
}
}
public static void main(String[] args) {
Create();
Delete();
Update();
Retrieve();
}
}