UserDao.java
package com.hyg.dao;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.hyg.model.User;
public class UserDao extends BaseDao {
/**
* 用户登录
* @param userno 账号
* @param pwd 密码
* @return
*/
public User login(String userno,String pwd){
String sql ="select *from k_user where userno='"+userno+"' and pwd='"+pwd+"'";
//String sql ="select *from k_user where userno=? and pwd=?";
try {
//1、获得数据库连接
this.conn=this.getConn();
//2、命令执行对象
this.ps=conn.prepareStatement(sql);
//3、执行命令(查询、修改)
this.rs=ps.executeQuery();
//4、处理结果
if(rs.next()){//如果有下一条
//字符串类型用getString
String username=rs.getString("username");//username指的是表的列名
String position=rs.getString("position");//职位
//整数类型用getInt
int age=rs.getInt("age");//年龄
int id=rs.getInt("id");//用户id
User user=new User();
user.setId(id);
user.setUsername(username);
user.setUserno(userno);
user.setPwd(pwd);
user.setPosition(position);
user.setAge(age);
return user;
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll();
}
return null;
}
/**
* 查询用户列表
* @return 用户集合
*/
public List<User> findUserList() {
String sql ="SELECT u.*, d.DEPTNAME FROM k_user u,k_dept d WHERE u.DEPTNO = d.DEPTNO;";
try {
//1、获得数据库连接
this.conn=this.getConn();
//2、命令执行对象
this.ps=conn.prepareStatement(sql);
//3、执行命令(查询、修改)
this.rs=ps.executeQuery();
//4、处理结果
List<User> list=new ArrayList<User>();
while(rs.next()){//如果有下一条
//字符串类型用getString
String username=rs.getString("username");//username指的是表的列名
String position=rs.getString("position");//职位
//整数类型用getInt
int age=rs.getInt("age");//年龄
int id=rs.getInt("id");//用户id
String userno=rs.getString("userno");
String pwd=rs.getString("pwd");
String deptname=rs.getString("deptname");
User user=new User();
user.setId(id);
user.setUsername(username);
user.setUserno(userno);
user.setPwd(pwd);
user.setPosition(position);
user.setAge(age);
user.setDeptName(deptname);
list.add(user);
}
return list;
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll();
}
return null;
}
/**
* 添加用户
* @param u 用户对象
* @return true 添加成功 false 添加失败
*/
public Boolean addUser(User u) {
String sql ="insert into k_user(userno,pwd) values ('"+u.getUserno()+"','"+u.getPwd()+"')";//动态的
//String sql ="select *from k_user where userno=? and pwd=?";
try {
//1、获得数据库连接
this.conn=this.getConn();
//2、命令执行对象
this.ps=conn.prepareStatement(sql);
//3、执行命令(添加,修改、删除)更新命令
int result=ps.executeUpdate();//返回受影响的行数
if(result>0){
//执行成功
return true;
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll();
}
return false;
}
/**
* 修改用户
* @param u
* @return
*/
public Boolean deitUser(User u) {
//String sql ="update k_user set pwd='"+u.getPwd()+"',position='"+u.getPosition()+"' where id = "+u.getId()+"";
String sql ="update k_user set pwd=?,position=? where id =?";
try {
//1、获得数据库连接
this.conn=this.getConn();
//2、命令执行对象
this.ps=conn.prepareStatement(sql);
ps.setString(1, u.getPwd());
ps.setString(2, u.getPosition());
ps.setInt(3, u.getId());
//3、执行命令(添加,修改、删除)更新命令
int result=ps.executeUpdate();//返回受影响的行数
if(result>0){
//执行成功
return true;
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll();
}
return false;
}
public Boolean deleteUser(User u) {
String sql ="delete from k_user where id="+u.getId()+"" ;
try {
//1、获得数据库连接
this.conn=this.getConn();
//2、命令执行对象
this.ps=conn.prepareStatement(sql);
//3、执行命令(添加,修改、删除)更新命令
int result=ps.executeUpdate();//返回受影响的行数
if(result>0){
//执行成功
return true;
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll();
}
return false;
}
}
BaseDao
package com.hyg.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* 数据库访问基类
* @author Administrator
*
*/
public class BaseDao {
//数据库驱动
private String driver="com.mysql.jdbc.Driver";
//地址(IP、端口、数据库名称)
private String ur1="jdbc:mysql://localhost:3306/orcl";
//数据库连接的账号
private String name="root";
//数据库连接的密码
private String pass="root";
Connection conn;//数据库连接类
PreparedStatement ps;//执行命令类
ResultSet rs;//存储执行结果
/**
* 获取数据库连接
* @return 数据库连接对象
*/
public Connection getConn(){
try {
Class.forName(driver);//加载驱动
//得到数据库连接信息
Connection conn=DriverManager.getConnection(ur1,name,pass);
return conn;
} catch (Exception e) {
//写入日志文件
//向控制台打印异常
e.printStackTrace();
}
return null;
}
public void closeAll(){
try {
if(rs!=null){
rs.close();//关闭对象(释放资源)
rs=null;
}
if(ps!=null){
ps.close();//关闭对象(释放资源)
ps=null;
}
if(conn!=null){
conn.close();//关闭对象(释放资源)
conn=null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new BaseDao().getConn();
}
}