Dao-jdvd封装
一个典型的Dao模式主要由以下几部分组成
Dao接口:把对数据库的所有操作定义成抽象方法,可以提供多种实现
Dao接口:针对不同数据库给出的Dao接口定义方法的具体实现
实体类:用于存放于存放与传输对象数据
数据库链接和关闭工具类:避免了数据库链接和关闭代码的重复性使用,方便代码修改..
//与数据库建立链接
public Connection lianjie(){
Connection connection=null;
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/ren","root","root");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return connection;
}
//实现数据 添加 删除 修改功能
public int tianjiashangchuxiugai(String sql,Object[]objects){
conn=lianjie();
PreparedStatement preparedStatement=null;
int an = 0;
try {
preparedStatement=conn.prepareStatement(sql);
if (objects!=null) {
for (int i = 0; i < objects.length; i++) {
preparedStatement.setObject(i+1, objects[i]);
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
an=preparedStatement.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return an;
}
//查询功能
public ResultSet chaxun(String sql){
conn=lianjie();
ResultSet an = null;
PreparedStatement preparedStatement=null;
try {
preparedStatement=conn.prepareStatement(sql);
an=preparedStatement.executeQuery();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return an;
}
//关闭资源管理器
public void guanbi(Connection connection,PreparedStatement preparedStatement,ResultSet resultSet){
if (resultSet!=null) {
try {
resultSet.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (preparedStatement!=null) {
try {
preparedStatement.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (connection!=null) {
try {
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//创建一个类 字段=建立链接数据库要执行某张表的属性
public class Fenzhuan implements Serializable {
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 getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public Fenzhuan(int id, String name, String age, String sex) {
super();
this.id = id;
this.name = name;
this.age = age;
this.sex = sex;
}
public Fenzhuan() {
super();
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
private int id;
private String name;
private String age;
private String sex;
}
//创建一个接口 实现里面的方法
public interface Moban {
int tianjia(Fenzhuan fenzhuan);
int shangchu(Fenzhuan fenzhuan);
int xiugai(Fenzhuan fenzhuan);
List<Fenzhuan> chaxun();
}
//实现里面的方法
public class shixianlei extends Dao implements Moban{
//添加
public int tianjia(Fenzhuan fenzhuan) {
String sql="insert into renlei(`name`,age,sex)values(?,?,?)";
Object [] objects=new Object[]{fenzhuan.getName(),fenzhuan.getAge(),fenzhuan.getSex()};
int an=this.tianjiashangchuxiugai(sql, objects);
return an;
}
//删除
public int shangchu(Fenzhuan fenzhuan) {
String sql="DELETE FROM renlei WHERE id=? ";
Object [] objects=new Object[]{fenzhuan.getId()};
int an=this.tianjiashangchuxiugai(sql, objects);
return an;
}
//修改
public int xiugai(Fenzhuan fenzhuan) {
String sql="UPDATE renlei SET `name`=? WHERE id=?";
Object [] objects=new Object[]{fenzhuan.getName(),fenzhuan.getId()};
int an=this.tianjiashangchuxiugai(sql, objects);
return an;
}
//查询
public List<Fenzhuan> chaxun() {
String sql="SELECT * FROM renlei";
ResultSet an=this.chaxun(sql);
List<Fenzhuan> list =new ArrayList<Fenzhuan>();
try {
while (an.next()) {
Fenzhuan fenzhuan=new Fenzhuan();
fenzhuan.setId(an.getInt("id"));
fenzhuan.setName(an.getString("name"));
fenzhuan.setAge(an.getString("age"));
fenzhuan.setSex(an.getString("sex"));
l
list.add(fenzhuan);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
}
Properties类
properies类它可以实现读取Java配置文件,这样我们就可以把常用的配置信息写在配置文件中方便维护和修改
添加文件内容 database.properties配置文件中有:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/数据库名
username=用户名
password=用户密码
public class BaseDao{
private static String driver=""; //数据库驱动字符串
private static String url=""; //链接URl字符串
private static String user=""; //用户登陆用户名
private static String passwrod=""; //用户密码
static{
init();
}
public static void init(){
Propers params=new Properties();
String configFile="database.properties";
InputStream is=BaseDao.Class.getClassLoader().getResourceAsStream(configFile);
try{
//从输入流中读取属性列表
params.load(is);
}catch(IOExceptipn e){
e.printStackTrace();
}
driver=params.getProperty("driver");
url=params.getProperty("url");
userr=params.getProperty("user");
passwrodr=params.getProperty("passwrod");
}
}
数据库注意sex是char类型 但myeclipse 必须是String类型才行否者添加的时候会报错!