发布网友 发布时间:2022-04-25 10:28
共5个回答
懂视网 时间:2022-05-02 03:04
/**
*seralizable序列化
*
/
public class Mas implements Serializable{
/**
* 私有化属性
*/
private static final long serialVersionUID = 1L;
private int id;
private String loginid;
private String password;
public Mas(){
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getLoginid() {
return loginid;
}
public void setLoginid(String loginid) {
this.loginid = loginid;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
utils(帮助类)
public class BaseDao {
public Connection getConnection(){
ResultSet rs=null;
PreparedStatement pst=null;
Connection conn=null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://localhost:1433;databasename=epet";
String uname = "sa";
String pwd = "123456";
conn = DriverManager.getConnection(url,uname,pwd);
} catch (ClassNotFoundException ee) {
ee.printStackTrace();
}catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
/* * 修改,删除,增加 */
public void exectue(String sql,Object [] param){
ResultSet rs=null;
PreparedStatement pst=null;
Connection conn=null;
try {
conn=getConnection();
pst=conn.prepareStatement(sql);
for(int i=0;i<param.length;i++){
pst.setObject(i+1, param[i]);
}
int num=pst.executeUpdate();
} catch (Exception ee) {
ee.printStackTrace();
}
}
/*
* 关闭数据库连接
* param conn 数据库连接
* param stmt Statement 对象
* param rs 结果集
*
*/
public void close(ResultSet rs, PreparedStatement pst, Connection conn) {
try{
if(rs!=null){
rs.close();
}
if(pst!=null){
pst.close();
}
if(conn!=null){
conn.close();
}
}catch(SQLException eee){
eee.printStackTrace();
}
}
}
Dao层
/*
* 接口
*/
public interface MasDao {
/*
* 登录
* @param m 注入对象 :主要是id和密码
* @return 主人对象
*/
public Mas login(Mas m);
}
/*
* 继承帮助类实现接口
*/
public class MasDaoImpl extends BaseDao implements MasDao {
public Mas login(Mas m) {
PreparedStatement pst =null;
ResultSet rs=null;
Connection conn=getConnection();
Mas ms=null;
String sql="select * from mas where loginid=? and password=?";
try{
pst=conn.prepareStatement(sql);
pst.setString(1, m.getLoginid());
pst.setString(2, m.getPassword());
rs=pst.executeQuery();
while(rs.next()){
ms=new Mas();
ms.setId(rs.getInt("id"));
ms.setLoginid(rs.getString("loginid"));
ms.setPassword(rs.getString("password"));
}
}catch(SQLException e){
e.printStackTrace();
}finally{
close(rs,pst,conn);
}
return m;
}
}
biz层
/*
* 接口
*/
public interface MasBiz {
/*
* 登陆
*/
public Mas login(Mas m);
}
/*
* 实现接口
*/
public class MasBizlmpl implements MasBiz{
MasDao dao=new MasDaoImpl();
//业务层:简单业务,一个sql
public Mas login(Mas m){
//访问层
Mas mm=dao.login(m);
return mm;
}
}
Controller(控制层)<web>
public class MasController {
//页面跳转,数据封装
public Mas login(String loginId ,String password){
MasBiz mb = new MasBizlmpl();
Mas m=new Mas();
m.setLoginid(loginId);
m.setPassword(password);
Mas mm=mb.login(m);
return mm;
}
数据库访问层一
标签:basename catch version exec long ring class end close
热心网友 时间:2022-05-02 00:12
从业务规则层接收请求,从数据服务获取数据或向其发送数据。 使用存储过程获取数据,并可选用 ADO.NET 向数据库发送数据,将数据库查询结果返回到业务规则层,作为ADO.NET 数据集。
数据数据访问层主要看数据层里面有没有包含逻辑处理,实际上各个函数主要完成各个对数据文件的操作。而不必管其他操作。业务逻辑层主要负责对数据层的操作。也就是说把一些数据层的操作进行组合。
扩展资料:
注意事项:
借鉴多种分布式数据库访问模式,基于MySQL开源协议,采用数据库代理方式,形成分布式数据库中间件解决方案,解决分布式系统数据库分库分表带来的数据透明访问难题。
在负载均衡的控制方面,通过LVS+zookeeper实现负载均衡、可设置权重实现灰度发布,通过keepalived+VIP消除单点故障隐患。
参考资料来源:百度百科-数据访问层
热心网友 时间:2022-05-02 01:30
三层结构中数据访问层的主要功能是实现数据的增加、删除、修改、查询等操作,并将操作结果反馈到业务逻辑层BBL。
在实际运行的过程中,数据访问层没有逻辑判断能力,为了实现代码编写的严谨性,提高代码阅读程度,一般软件开发人员会在该层中编写DataAccessCommon,保证数据访问层DAL数据处理功能。
扩展资料:
三层架构业务逻辑简单;没有真正的数据存储层,也就不需要数据访问层,这样简单的结构是不需要三层架构的。
但是当业务复杂到一定程度之后,当数据存储在相应的数据库或者的存储介质时,既有业务逻辑层,又有数据访问层时,把数据访问脱离开业务逻辑,把业务逻辑脱离开UI,UI是需要呼叫业务访问层,就可以实现与用户的交互。
热心网友 时间:2022-05-02 03:05
数据访问层,顾名思义,主要功能是程序于数据库之间的交互,按照程序的请求对数据库进行访问,并将所请求的数据结果返回给程序
热心网友 时间:2022-05-02 04:56
与数据库打交道,也就是访问数据库,一般命名为DBhelper 或者DBbase