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());
}
}

posted @   清谦  阅读(27)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
展开