1.entity包放的是实体类,也就是实体类的属性与数据库中的表中的字段名(就是所谓的列名),进行映射的关系。
create database test02 default character set gbk;
use test02
create table person(
id int primary key auto_increment,
name varchar(20),
salary varchar(20),
age varchar(2)
);
insert into person (name,salary,age) values("猪八戒","12321","12");
jdbc:mysql://localhost:3306/test02?useUnicode=true&characterEncoding=gbk
package com.entity;
/**
* 项目名称:web04
* 类名称:Person
* 类描述: 存储数据库中的信息,实体类中的属性对应数据库值的字段
* 创建人:Administrator
* 创建时间:2017年5月30日 下午12:38:12
* 修改人:Administrator
* 修改时间:2017年5月30日 下午12:38:12
* 修改备注:
* @version
*
*/
public class Person {
private int id;
private String name;
private String salary;
private String age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSalary() {
return salary;
}
public void setSalary(String salary) {
this.salary = salary;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((age == null) ? 0 : age.hashCode());
result = prime * result + id;
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result + ((salary == null) ? 0 : salary.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Person other = (Person) obj;
if (age == null) {
if (other.age != null)
return false;
} else if (!age.equals(other.age))
return false;
if (id != other.id)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (salary == null) {
if (other.salary != null)
return false;
} else if (!salary.equals(other.salary))
return false;
return true;
}
@Override
public String toString() {
return "Person [id=" + id + ", name=" + name + ", salary=" + salary + ", age=" + age + "]";
}
}
2.dao层有关数据库操作的接口和实现类
package com.dao;
import java.sql.SQLException;
import java.util.List;
import com.entity.Person;
/**
* 项目名称:web04
* 类名称:PersonDao
* 类描述:完成数据库操作的业务处理
* 创建人:Administrator
* 创建时间:2017年5月30日 下午12:51:48
* 修改人:Administrator
* 修改时间:2017年5月30日 下午12:51:48
* 修改备注:
* @version
*/
public interface PersonDao {
//查看
public List<Person> findAll() throws ClassNotFoundException, SQLException;
//添加
public void Save(Person p) throws ClassNotFoundException, SQLException;
//根据用户id查找用户
public Person findById(int id) throws ClassNotFoundException, SQLException;
//根据用户id修改用户
public void update(Person p) throws ClassNotFoundException, SQLException;
//删除
public void delete(int id) throws ClassNotFoundException, SQLException;
}
package com.dao;
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.entity.Person;
import com.util.DBUtils;
public class PersonDaoImpl implements PersonDao {
@Override
public List<Person> findAll() {
// TODO Auto-generated method stub
//构造集合建立数据库链接
List<Person> lists=new ArrayList<Person>();
Connection conn = null;
try {
conn = DBUtils.getConn();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String sql="select id,name,salary,age from person";
Statement st=null;
try {
st = conn.createStatement();
ResultSet rs=st.executeQuery(sql);
while(rs.next()){
Person p=new Person();
p.setId(rs.getInt(1));
p.setName(rs.getString(2));
p.setSalary(rs.getString(3));
p.setAge(rs.getString(4));
lists.add(p);
}
DBUtils.closeConn(conn);
} catch (SQLExceptio