请问asp.net core mvc怎么使用ef连接现有数据库

请问asp.net core mvc怎么使用ef连接现有数据库,第1张

查了一下,可以用命令行生成相应的文件:

Scaffold-DbContext "Server=\SQLExpress;Database=SchoolDB;Trusted_Connection=True;" MicrosoftEntityFrameworkCoreSqlServer -OutputDir Models

连接字符串放json里面

"ConnectionStrings": {

"MbkDbConstr": "Data Source=(localdb)\\MBK;Database=MbkTest;"

}

参考资料:

网页链接

最简单的方法是使用struts或jsf等mvc的框架,本身就是一个实现。如果自己实现,比较复杂的就是要自己写一个总控制器,接受所有用户的请求,进行分发给其他servlet或直接进行页面跳转。不建议自己实现,建议使用一个mvc框架,然后搞明白他的生命周期和原理,再去看框架总控制器的源代码,这样比较好。

原理:

jsp发展经历了两个模型时代,jsp模型一时代是把代码都写在jsp页面上,用户访问jsp页面时,jsp页面来对数据库进行 *** 作并返回值到jsp页面,这样第一不好维护,第二安全性不高,第三代码结构不清晰,第四重用性不高。于是就有了jsp模型二时代,人们将所有的页面请求交给一个servlet控制器来接受,然后进行分发,由该servlet来决定调用其他servlet访问数据库还是进行页面跳转,这个servelt就是MVC中的C,struts中好像叫ActionServlet,Jsf中叫FacesServelt,webxml中配置的就是总servlet控制器,为了更好的分层,重用,降低依赖性,就有了MVC,由M层接受和绑定用户的数据,V层进行展现,C层进行控制。

目前主流的开发模式是四层开发模式:界面层(page)+动作处理层(action)+业务逻辑层(service)+数据访问层(dao),page层用于展现页面,action层用于捕获用户事件并调用service层处理业务逻辑,service要处理业务逻辑肯定就要对数据库进行增删改查,拼接HQL语句,然后调用dao层对数据库进行 *** 作,hibernate完成的就是DAO层。但是这样一来action层对service层产生了依赖,因为要创建一个service接口的引用,service层对dao层产生了依赖,就是说实例化一个action层的对象,同时要至少实例化一个service层和至少实例化一个dao层,于是spring的IOC就可以起作用了,就可以降低各层之间的依赖。将各层做为接口对象实例配置到spring中,降低依赖。

package comkiwworqqbeans;

import javasqlConnection;

import javasqlDriverManager;

import javasqlResultSet;

import javasqlSQLException;

import javasqlStatement;

/

数据库 *** 作的JavaBean类,用于对数据库的查询与更新的实现;

该类默认的连接的数据库为本地数据库,连接数据库为"qq";

该类主要为用户一系列的数据 *** 作提供底层服务。

@author kiwwor

@see UserBean

/

public class Access {

//驱动程序类

private String driver = "commicrosoftsqlserverjdbcSQLServerDriver";

//连接数据库url

private String connectionUrl="jdbc:sqlserver://localhost:1433;DatabaseName=qq";

//用户名

private String user = "qq";

//用户密码

private String password = "123258741";

//数据库连接对象

private Connection connection = null;

//数据库对象

private Statement statement = null;

//数据集对象

private ResultSet resultSet = null;

public String getDriver() {

return driver;

}

public void setDriver(String driver) {

thisdriver = driver;

}

public String getConnectionUrl() {

return connectionUrl;

}

public void setConnectionUrl(String connectionUrl) {

thisconnectionUrl = connectionUrl;

}

public String getUser() {

return user;

}

public void setUser(String user) {

thisuser = user;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

thispassword = password;

}

public Connection getConnection() {

return connection;

}

public void setConnection(Connection connection) {

thisconnection = connection;

}

public Statement getStatement() {

return statement;

}

public void setStatement(Statement statement) {

thisstatement = statement;

}

public ResultSet getResultSet() {

return resultSet;

}

public void setResultSet(ResultSet resultSet) {

thisresultSet = resultSet;

}

/

获取一个连接对象,默认连接对象本地数据库qq。

@return 连接是否成功

/

public boolean createConnection() {

boolean b = false;

try {

ClassforName(driver);

connection = DriverManagergetConnection(connectionUrl, user, password);

b = true;

} catch (Exception e) {

eprintStackTrace();

}

return b;

}

/

更新数据库

@param sql 更新的sql语句

@return 更新是否成功

/

public boolean update(String sql) {

boolean b =false;

try {

statement = connectioncreateStatement();

statementexecute(sql);

b = true;

} catch (Exception e) {

eprintStackTrace();

}

return b;

}

/

执行查询,将查询的结果集给resultmentSet。

@param sql 查询的sql语句

/

public void query(String sql) {

try {

statement = connectioncreateStatement();

resultSet = statementexecuteQuery(sql);

} catch (Exception e) {

eprintStackTrace();

}

}

/

检测结果集是否为空

@return true为存在记录

/

public boolean next() {

boolean b = false;

try {

if (resultSetnext()) b = true;

} catch (Exception e) {

eprintStackTrace();

}

return b;

}

/

获得结果集中当前行columnLabel的记录

@param columnLabel

@return 值记录

/

public String getValue(String columnLabel) {

String value = null;

try {

if (resultSet != null) value = resultSetgetString(columnLabel);

} catch (Exception e) {

eprintStackTrace();

}

return value;

}

/

关闭连接对象

/

public void closeConnection() {

try {

if (connection != null) connectionclose();

} catch (SQLException e) {

eprintStackTrace();

}

}

/

关闭数据库对象

/

public void closeStatement() {

try {

if (statement != null) statementclose();

} catch (SQLException e) {

eprintStackTrace();

}

}

/

关闭结果集

/

public void closeResultSet() {

try {

if (resultSet != null) resultSetclose();

} catch (SQLException e) {

eprintStackTrace();

}

}

/

关闭数据连接对象,数据库对象和数据结果集对象。

/

public void closeAll() {

closeResultSet();

closeStatement();

closeConnection();

}

/

测试该类函数。

@param args

/

public static void main(String[] args) {

Access db = new Access();

if (dbcreateConnection()) {

Systemoutprintln("测试数据库连接成功");

String sql = "select id from [user]";

dbquery(sql);

int i = 1;

while (dbnext()) {

String s = dbgetValue("id");

Systemoutprintln("查询用户" + i + ": " + s);

i++;

}

dbcloseResultSet();

dbcloseStatement();

dbcloseConnection();

}

}

}

第二个:

package comkiwworqqbeans;

/

这是一个对用户的数据查询和更新的JavaBean类;

该类提供了对用户的密码认证,用户注册等方法。

@author kiwwor

@see Access

/

public class UserBean {

/

对用户的登录认证

@param id 用户名

@param password 密码

@return 认证结果

/

public boolean isValid(String id, String password) {

boolean b = false;

Access db =new Access();

if (dbcreateConnection()) {

String sql = "select from [user] where id=" + id +"and password=" + password;

dbquery(sql);

if (dbnext()) {

b = true;

}

}

dbcloseAll();

return b;

}

/

用来查询该用户在服务器中是否存在

@param id 用户名

@return 确认是否存在

/

public boolean isExit(String id) {

boolean b = false;

Access db =new Access();

if (dbcreateConnection()) {

String sql = "select from [user] where id=" + id;

dbquery(sql);

if (dbnext()) {

b = true;

}

}

dbcloseAll();

return b;

}

/

添加用户,该方法必须在<code>isExit(String id)</code>确认的前提下使用,否则可能出现异常

@param id 新增用户名

@param password 密码

@return 确认添加是否成功

/

public boolean add(String id, String password) {

boolean b = false;

Access db =new Access();

if (dbcreateConnection()) {

String sql = "insert into [user] (id, password) values (" + id + "," + password + ")";

b = dbupdate(sql);

}

dbcloseAll();

return b;

}

}

以上就是关于请问asp.net core mvc怎么使用ef连接现有数据库全部的内容,包括:请问asp.net core mvc怎么使用ef连接现有数据库、如何实现MVC模式、MVC中,Controller如何从数据库调用单个数据给一个变量等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10167989.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存