package cn.test.lxh.dao.impl ;
import java.sql.* ;
import java.util.* ;
import cn.test.lxh.vo.* ;
import cn.test.lxh.dbc.* ;
import cn.test.lxh.dao.* ;// 此类需要完成具体的数据库操作,需要JDB代码
public class PersonDAOTest implements PersonDAO
{
// 增加操作
public void insert(Person person) throws Exception
{
String sql = "INSERT INTO person (id,name,password,age,email) VALUES (?,?,?,?,?)" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ; // 下面是针对数据库的具体操作
try
{
// 连接数据库
dbc = new DataBaseConnection() ;
pstmt = dbc.getConnection().preparedStatement(sql) ;
pstmt.setString(1,person.getId()) ;
pstmt.setString(2,person.getName()) ;
pstmt.setString(3,person.getPassword()) ;
pstmt.setInt(4,person.getAge()) ;
pstmt.setString(5,person.getEmail()) ;
// 进行数据库更新操作
pstmt.executeUpdate() ;
pstmt.close() ;
}
catch (Exception e)
{
throw new Exception("操作出现异常") ;
}
finally
{
// 关闭数据库连接
dbc.close() ;
}
}
// 修改操作
public void update(Person person) throws Exception
{
String sql = "UPDATE person SET name=?,password=?,age=?,email=? WHERE id=?" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ; // 下面是针对数据库的具体操作
try
{
// 连接数据库
dbc = new DataBaseConnection() ;
pstmt = dbc.getConnection().preparedStatement(sql) ;
pstmt.setString(1,person.getName()) ;
pstmt.setString(2,person.getPassword()) ;
pstmt.setInt(3,person.getAge()) ;
pstmt.setString(4,person.getEmail()) ;
pstmt.setString(5,person.getId()) ;
// 进行数据库更新操作
pstmt.executeUpdate() ;
pstmt.close() ;
}
catch (Exception e)
{
throw new Exception("操作出现异常") ;
}
finally
{
// 关闭数据库连接
dbc.close() ;
}
}
// 删除操作
public void delete(String id) throws Exception
{
String sql = "DELETE FROM person WHERE id=?" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ; // 下面是针对数据库的具体操作
try
{
// 连接数据库
dbc = new DataBaseConnection() ;
pstmt = dbc.getConnection().preparedStatement(sql) ;
pstmt.setString(1,id) ;
// 进行数据库更新操作
pstmt.executeUpdate() ;
pstmt.close() ;
}
catch (Exception e)
{
throw new Exception("操作出现异常") ;
}
finally
{
// 关闭数据库连接
dbc.close() ;
}
}
// 按ID查询操作
public Person queryById(String id) throws Exception
{
Person person = null ;
String sql = "SELECT id,name,password,age,email FROM person WHERE id=?" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ; // 下面是针对数据库的具体操作
try
{
// 连接数据库
dbc = new DataBaseConnection() ;
pstmt = dbc.getConnection().preparedStatement(sql) ;
pstmt.setString(1,id) ;
// 进行数据库查询操作
ResultSet rs = pstmt.executeQuery() ;
if(rs.next())
{
// 查询出内容,之后将查询出的内容赋值给person对象
person = new Person() ;
person.setId(rs.getString(1)) ;
person.setName(rs.getString(2)) ;
person.setPassword(rs.getString(3)) ;
person.setAge(rs.getInt(4)) ;
person.setEmail(rs.getString(5)) ;
}
rs.close() ;
pstmt.close() ;
}
catch (Exception e)
{
throw new Exception("操作出现异常") ;
}
finally
{
// 关闭数据库连接
dbc.close() ;
}
return person ;
}
// 查询全部
public List queryAll() throws Exception
{
List all = new ArrayList() ;
String sql = "SELECT id,name,password,age,email FROM person" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ; // 下面是针对数据库的具体操作
try
{
// 连接数据库
dbc = new DataBaseConnection() ;
pstmt = dbc.getConnection().preparedStatement(sql) ;
// 进行数据库查询操作
ResultSet rs = pstmt.executeQuery() ;
while(rs.next())
{
// 查询出内容,之后将查询出的内容赋值给person对象
Person person = new Person() ;
person.setId(rs.getString(1)) ;
person.setName(rs.getString(2)) ;
person.setPassword(rs.getString(3)) ;
person.setAge(rs.getInt(4)) ;
person.setEmail(rs.getString(5)) ; // 将查询出来的数据加入到List对象之中
all.add(person) ;
}
rs.close() ;
pstmt.close() ;
}
catch (Exception e)
{
throw new Exception("操作出现异常") ;
}
finally
{
// 关闭数据库连接
dbc.close() ;
}
return all ;
}
// 模糊查询
public List queryByLike(String cond) throws Exception
{
List all = new ArrayList() ;
String sql = "SELECT id,name,password,age,email FROM person WHERE name LIKE ? or email LIKE ?" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ; // 下面是针对数据库的具体操作
try
{
// 连接数据库
dbc = new DataBaseConnection() ;
pstmt = dbc.getConnection().preparedStatement(sql) ;
// 设置模糊查询条件
pstmt.setString(1,"%"+cond+"%") ;
pstmt.setString(2,"%"+cond+"%") ;
// 进行数据库查询操作
ResultSet rs = pstmt.executeQuery() ;
while(rs.next())
{
// 查询出内容,之后将查询出的内容赋值给person对象
Person person = new Person() ;
person.setId(rs.getString(1)) ;
person.setName(rs.getString(2)) ;
person.setPassword(rs.getString(3)) ;
person.setAge(rs.getInt(4)) ;
person.setEmail(rs.getString(5)) ; // 将查询出来的数据加入到List对象之中
all.add(person) ;
}
rs.close() ;
pstmt.close() ;
}
catch (Exception e)
{
throw new Exception("操作出现异常") ;
}
finally
{
// 关闭数据库连接
dbc.close() ;
}
return all ;
}
}出现的错误:在23、26、55、57、87、116、157、200这些行出现——PersonDAOTest.java:157:找不到符号
符号:  方法preparedStatement(java.lang.String)
位置:  借口 java.sql.Connection
                             pstmt=dbc.getConnection().preraredStatement(sql);