JDBC Dao层连接步骤

创建一个数据库连接的基本步骤:


结构图:


第一步:将SQLServer2008的驱动(sqljdbc4.jar)加入到WebJava的项目中。
驱动是一个jar包,加入到WebRoot-WEB-INF-lib中。这样才能链接SQLServer。


第二步:创建一个数据库User的实体类,负责创建表的字段成员。

public class User{
	private int id;
	private String name;
	private String password;
	
		public int getId(){
		return id;
		}
		public void getId(int id){
		this.id=id;
		}
		public String getName(){
		return name;
		}
		public void setName(String name){
		this.name=name;
		}
		public String getPassword(){
		return password;
		}
		public void setPassword(String password){
		this.password=password;
		}
		
}	
第三步:创建BaseDao数据库连接类,此类负责完成数据库的连接。
public class DaseDao{
public static Connection getConnection(){
	Connection conn=null;

	Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

	String url="jdbc:sqlserver://127.0.0.1:1433;database=yun4";
	String name="sa";
	String password="123456";
	conn = DriveManager.getConnection(url,name,password);

}

public void colseAll(Connection conn,Statement stmt,ResultSet rs){

	if(rs!=null){
	re.close;
	}
	if(stmt!=null){
	stmt.close();
	}
	if(conn!=null){
	conn.close();
	}
}
}

第四步:创建一个具体数据库User的操作接口:负责创建增删改查的接口方法。
这些方法需要之后的实现类UserDaoImpl来具体实现这些方法。

public interface UserDao{

public int add(User user);
public int delete(int id);
public int update(User user);
public int findById(int id);
public int findAll(User user);

}
第五步:创建实现UserDao的实现类UserDaoImpl,负责具体操作数据库。
实现接口中的具体方法,同时继承了BaseDao的方法。
public class UserDaoImpl extends BaseDao implements UserDao{

Connection conn=null;
Statement stmt=null;
perpareStatement pstmt=null;
ResultSet rs=null;

public int add(User user){
	int i=0;
		conn=this.getConnection;
		String sql="insert into users values(?,?)";
		pstmt=conn.perpareStatement(sql);
		pstmt.setString(1,user.getName);
		pstmt.setString(2,user.getPassword);
		i=pstmt.executeUpdate();
		
		finally{
		this.closeAll(conn,pstmt,rs);
		}
		return i;
}

public int delete(int id){
	int i=0;
		conn=this.getConnection;
		String sql="delete from Users where id=?";
		pstmt=conn.prepareStatement(sql);
		pstmt.setString(1,user.getId);
		i=executeUpdate();
		
		finally{
		this.closeAll(conn,pstmt,rs);
		}
		return i;
}

public int Update(User user){
	int i=0;
		conn.getConnection();
		String sql="update Users set name=? where id=?";
		pstmt=conn.prepareStatement(sql);
		pstmt.setString(1,user.getName);
		pstmt.setString(2,user.getId);
		i=pstmt.executeUpdate();
		
		finally{
		this.closeAll(conn,pstmt,rs);
		}
		
public int findAll(){
	conn.getConnection();
	String="select * from Users";
	stmt=conn.createStatement();
	rs=stmt.executeQuery(sql);
	while(rs.next){
	int password=rs.getInt("password");
	String name=rs.getString("name");
	int id=rs.getInt("id");
	system.out.println(id+" "+name+" "+password);
	}
	
public int findById(int id){
	conn.getConnection;
	String sql="select * from Users where id=?";
	pstmt=conn.prepareStatement(sql);
	pstmt.setString(1,user.getId());
	rs.pstmt.executeQuery();
	while(rs.next()){
	int password=rs.getInt("password");
	String name=rs.getString("name");
	int id=rs.getInt("id");
	system.out.println(id+" "+name+" "+password);
	}
}
	
}
}

}


Statement和preparestatement的用法区别:

Statement:
String sql="insert into User values(1,'admin','123456')";
Statement stmt=conn.createStatement();
int i=stmt.executeUptate(sql);

PrepareStatement:
String sql="insert into User values(?,?,?)";
PrepareStatement pstmt=conn.prepareStatement();
pstmt.setString(1,"1");
pstmt.setString(2,"admin");
pstmt.setString(3,"123456");
int i=pstmt.executeUpdate();


















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值