JAVA寒假11
BaseDao
package com.cc.dao;
import java.sql.Connection;
import com.cc.dbmanager.DBConnection;
public class BaseDao {
Connection conn =null;
public Connection getConn(){
DBConnection db = new DBConnection();
conn = db.getConn();
return conn;
}
}
IUserDao
package com.cc.dao;
import java.util.List;
import com.cc.entity.User;
public interface IUserDao {
//方法的接口
public int addOneUser(User user);//增加的方法接口
public int deleteOneUser(int userId);//删除的方法接口
public int updateOneUser(User user);//改的方法接口
public User findOneUser(int userId);//查一个用户的方法接口
public List<User> findAllUser();//查找所有用户的方法接口
}
UserDaoImpl
package com.cc.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import com.cc.dao.BaseDao;
import com.cc.dao.IUserDao;
import com.cc.entity.User;
public class UserDaoImpl extends BaseDao implements IUserDao {
public int addOneUser(User user) {
// 增加用户的详细操作
int i = 0;
String sql = "insert into users values(0,?,?,?,?,?,?,?)";
Connection conn = this.getConn();//不加this也可
try {
PreparedStatement preStmt = conn.prepareStatement(sql);
preStmt.setString(1, user.getUserName());
preStmt.setString(2, user.getUserPass());
preStmt.setString(3, user.getEmail());
preStmt.setInt(4, user.getAge());
preStmt.setString(5, user.getSex());
preStmt.setString(6, user.getRegisterDate());
preStmt.setString(7, user.getRecordDate());
i = preStmt.executeUpdate();//用来执行返回多个结果集的sql语句---Update适用于int类型
} catch (SQLException e) {
e.printStackTrace();
}
return i;
}
public int deleteOneUser(int userId) {
// 删除用户的详细操作
int i = 0;
String sql = "delete from users where userId =" + userId;
Connection cnn = this.getConn();
try {
Statement stmt = cnn.createStatement();
i = stmt.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return i ;
}
public int updateOneUser(User user) {
// 更改用户的详细操作
int i = 0;
String sql = "update users set userName=?,userPass=?,email=?,age=?,sex=?,recordDate=? where userId="
+ user.getUserId();
Connection cnn = this.getConn();
try {
PreparedStatement preStmt = cnn.prepareStatement(sql);
preStmt.setString(1, user.getUserName());
preStmt.setString(2, user.getUserPass());
preStmt.setString(3, user.getEmail());
preStmt.setInt(4, user.getAge());
preStmt.setString(5, user.getSex());
preStmt.setString(6, user.getRecordDate());
i = preStmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return i;
}
public User findOneUser(int userId) {
// 查找用户的详细操作
User user =null;
String sql = "select *from users where userId="+userId;
Connection cnn =this.getConn();
try {
Statement stmt = cnn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
//多个用户的时候需要用while,一个用户,只需要if
if(rs.next()){
String userName = rs.getString(2);
String userPass = rs.getString(3);
String email = rs.getString(3);
int age = rs.getInt(5);
String sex = rs.getString(6);
String loginDate = rs.getString(7);
String login2Date = rs.getString(8);
user = new User(userId,userName,userPass,email,age,sex,loginDate,login2Date);
}
} catch (SQLException e) {
e.printStackTrace();
}
return user;
}
public List<User> findAllUser() {
List<User> users = new ArrayList<User>();
String sql = "select *from users ";
Connection conn = this.getConn();
try {
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
int userid = rs.getInt(1);
String userName = rs.getString(2);
String userPass = rs.getString(3);
String email = rs.getString(4);
int age = rs.getInt(5);
String sex = rs.getString(6);
String loginDate = rs.getString(7);
String login2Date = rs.getString(8);
users.add(new User(userid,userName,userPass,email,age,sex,loginDate,login2Date));
}
} catch (SQLException e) {
e.printStackTrace();
}
return users;
}
}
DBConnection
public class DBConnection {
private Connection conn;// 数据库链接对象
private PreparedStatement stmt;// 预编译对象
private CallableStatement sc; //CallableStatement可以返回一个ResultSet对象或多个ResultSet对象。使用从Statement继承的操作处理多个ResultSet对象。
private ResultSet rs;// 结果集对象
private String dbDriver = "com.mysql.jdbc.Driver";
private String dbUrl = "jdbc:mysql://localhost:3306/ccymdb?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true";
private String dbUser ="root";
private String dbPass ="root";
public Connection getConn()
{
Connection conn = null;
try {
Class.forName(dbDriver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
conn = DriverManager.getConnection(dbUrl,dbUser,dbPass);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
}
TestDBConnection
package com.cc.dbmanager;
public class TestDBConnection {
public static void main(String[] args) {
//检验数据库连接
DBConnection DB = new DBConnection();
System.out.println(DB.getConn());
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步